Upgrade to 3.29

Update V8 to 3.29.88.17 and update makefiles to support building on
all the relevant platforms.

Bug: 17370214

Change-Id: Ia3407c157fd8d72a93e23d8318ccaf6ecf77fa4e
diff --git a/Android.d8.mk b/Android.d8.mk
index f512e75..7cd679d 100644
--- a/Android.d8.mk
+++ b/Android.d8.mk
@@ -1,23 +1,51 @@
 LOCAL_PATH:= $(call my-dir)
 include $(CLEAR_VARS)
 
-LOCAL_SHARED_LIBRARIES := libstlport
-include external/stlport/libstlport.mk
+LOCAL_MODULE := d8
+LOCAL_MODULE_CLASS := EXECUTABLES
+
+generated_sources := $(call local-generated-sources-dir)
+
+LOCAL_CXX_STL := libc++
 
 LOCAL_SRC_FILES := \
     src/d8.cc \
+    src/d8-debug.cc \
     src/d8-posix.cc
 
-LOCAL_MODULE := d8
+LOCAL_JS_D8_FILES := \
+	$(LOCAL_PATH)/src/d8.js \
+	$(LOCAL_PATH)/src/macros.py
+
+# Copy js2c.py to generated sources directory and invoke there to avoid
+# generating jsmin.pyc in the source directory
+JS2C_PY := $(generated_sources)/js2c.py $(generated_sources)/jsmin.py
+$(JS2C_PY): $(generated_sources)/%.py : $(LOCAL_PATH)/tools/%.py | $(ACP)
+	@echo "Copying $@"
+	$(copy-file-to-target)
+
+# Generate d8-js.cc
+D8_GEN := $(generated_sources)/d8-js.cc
+$(D8_GEN): SCRIPT := $(generated_sources)/js2c.py
+$(D8_GEN): $(LOCAL_JS_D8_FILES) $(JS2C_PY)
+	@echo "Generating d8-js.cc"
+	@mkdir -p $(dir $@)
+	python $(SCRIPT) $@ D8 off $(LOCAL_JS_D8_FILES)
+LOCAL_GENERATED_SOURCES += $(D8_GEN)
 
 LOCAL_CPP_EXTENSION := .cc
 
 LOCAL_STATIC_LIBRARIES := libv8
-LOCAL_SHARED_LIBRARIES += liblog
+LOCAL_SHARED_LIBRARIES += liblog libicuuc libicui18n
 
 LOCAL_MODULE_TAGS := optional
 
-LOCAL_C_INCLUDES += $(LOCAL_PATH)/include
+LOCAL_C_INCLUDES += \
+	external/icu/icu4c/source/common
+
+LOCAL_CFLAGS := \
+	-Wno-unused-parameter \
+	-std=gnu++0x
 
 LOCAL_MODULE_TARGET_ARCH_WARN := $(V8_SUPPORTED_ARCH)