Fix a bunch more bindings errors.
diff --git a/Android.v8.mk b/Android.v8.mk
index bd7673f..ed88874 100644
--- a/Android.v8.mk
+++ b/Android.v8.mk
@@ -168,6 +168,7 @@
 	$(BINDING_C_INCLUDES) \
 	$(base_intermediates)/WebCore/ \
 	$(base_intermediates)/WebCore/bindings \
+	$(base_intermediates)/WebCore/css \
 	$(base_intermediates)/JavaScriptCore
 
 ifeq ($(ENABLE_SVG), true)
diff --git a/V8Binding/V8Binding.derived.mk b/V8Binding/V8Binding.derived.mk
index bc5d5ad..b639b8b 100644
--- a/V8Binding/V8Binding.derived.mk
+++ b/V8Binding/V8Binding.derived.mk
@@ -374,7 +374,20 @@
 
 $(GEN): PRIVATE_CUSTOM_TOOL = SOURCE_ROOT=$(WEBCORE_PATH) perl -I$(WEBCORE_PATH)/bindings/scripts $(WEBCORE_PATH)/bindings/scripts/generate-bindings.pl --defines "$(FEATURE_DEFINES) LANGUAGE_JAVASCRIPT" --generator V8 --include dom --include html --include html/canvas --outputdir $(dir $@) $<
 $(GEN): $(intermediates)/bindings/V8%.h : $(WEBCORE_PATH)/html/canvas/%.idl $(js_binding_scripts)
-        $(transform-generated-source)
+	$(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN) $(GEN:%.h=%.cpp)
+
+# We also need the .cpp files, which are generated as side effects of the
+# above rules.  Specifying this explicitly makes -j2 work.
+$(patsubst %.h,%.cpp,$(GEN)): $(intermediates)/bindings/%.cpp : $(intermediates)/bindings/%.h
+
+GEN := \
+    $(intermediates)/bindings/V8InspectorBackend.h \
+    $(intermediates)/bindings/V8JavaScriptCallFrame.h
+
+$(GEN): PRIVATE_CUSTOM_TOOL = SOURCE_ROOT=$(WEBCORE_PATH) perl -I$(WEBCORE_PATH)/bindings/scripts $(WEBCORE_PATH)/bindings/scripts/generate-bindings.pl --defines "$(FEATURE_DEFINES) LANGUAGE_JAVASCRIPT" --generator V8 --include dom --outputdir $(dir $@) $<
+$(GEN): $(intermediates)/bindings/V8%.h : $(WEBCORE_PATH)/inspector/%.idl $(js_binding_scripts)
+	$(transform-generated-source)
 LOCAL_GENERATED_SOURCES += $(GEN) $(GEN:%.h=%.cpp)
 
 # We also need the .cpp files, which are generated as side effects of the
diff --git a/WebCore/Android.v8.mk b/WebCore/Android.v8.mk
index 210a352..f257618 100644
--- a/WebCore/Android.v8.mk
+++ b/WebCore/Android.v8.mk
@@ -540,8 +540,7 @@
 	platform/graphics/transforms/TransformationMatrix.cpp \
 	platform/graphics/transforms/TranslateTransformOperation.cpp \
 	\
-	platform/image-decoders/skia/GIFImageDecoder.cpp \
-	platform/image-decoders/skia/GIFImageReader.cpp \
+	platform/image-decoders/skia/ImageDecoderSkia.cpp \
 	\
 	platform/network/AuthenticationChallengeBase.cpp \
 	platform/network/Credential.cpp \
diff --git a/WebCore/bindings/v8/ChildThreadDOMData.h b/WebCore/bindings/v8/ChildThreadDOMData.h
index 5097c86..ab90e5b 100644
--- a/WebCore/bindings/v8/ChildThreadDOMData.h
+++ b/WebCore/bindings/v8/ChildThreadDOMData.h
@@ -39,6 +39,8 @@
     class ChildThreadDOMData : public DOMData {
     public:
         ChildThreadDOMData();
+        virtual ~ChildThreadDOMData() { }
+
         DOMDataStore& getStore();
 
     private:
diff --git a/WebCore/bindings/v8/DOMData.h b/WebCore/bindings/v8/DOMData.h
index 5effe7c..07e14e5 100644
--- a/WebCore/bindings/v8/DOMData.h
+++ b/WebCore/bindings/v8/DOMData.h
@@ -45,6 +45,7 @@
     class DOMData : public Noncopyable {
     public:
         DOMData();
+        virtual ~DOMData() { }
 
         static DOMData* getCurrent();
         static DOMData* getCurrentMainThread(); // Caller must be on the main thread.
diff --git a/WebCore/bindings/v8/DerivedSourcesAllInOne.cpp b/WebCore/bindings/v8/DerivedSourcesAllInOne.cpp
index 4962a92..e84a71b 100644
--- a/WebCore/bindings/v8/DerivedSourcesAllInOne.cpp
+++ b/WebCore/bindings/v8/DerivedSourcesAllInOne.cpp
@@ -28,10 +28,9 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-// This source file coalesces the HTML elements into a single object file to
+// This source file coalesces the V8 derived sources into a single object file to
 // reduce bloat and allow us to link release builds on 32-bit Windows.
 
-#include "bindings/V8AbstractWorker.cpp"
 #include "bindings/V8Attr.cpp"
 #include "bindings/V8BarInfo.cpp"
 #include "bindings/V8CanvasGradient.cpp"
@@ -61,16 +60,11 @@
 #include "bindings/V8CSSValueList.cpp"
 #include "bindings/V8CSSVariablesDeclaration.cpp"
 #include "bindings/V8CSSVariablesRule.cpp"
-#include "bindings/V8Database.cpp"
 #include "bindings/V8DataGridColumn.cpp"
 #include "bindings/V8DataGridColumnList.cpp"
-#include "bindings/V8DedicatedWorkerContext.cpp"
 #include "bindings/V8Document.cpp"
 #include "bindings/V8DocumentFragment.cpp"
 #include "bindings/V8DocumentType.cpp"
-#if ENABLE(OFFLINE_WEB_APPLICATIONS)
-#include "bindings/V8DOMApplicationCache.cpp"
-#endif
 #include "bindings/V8DOMCoreException.cpp"
 #include "bindings/V8DOMImplementation.cpp"
 #include "bindings/V8DOMParser.cpp"
@@ -185,17 +179,49 @@
 #include "bindings/V8Rect.cpp"
 #include "bindings/V8RGBColor.cpp"
 #include "bindings/V8Screen.cpp"
-#include "bindings/V8SharedWorker.cpp"
+#include "bindings/V8StyleSheet.cpp"
+#include "bindings/V8StyleSheetList.cpp"
+#include "bindings/V8Text.cpp"
+#include "bindings/V8TextEvent.cpp"
+#include "bindings/V8TextMetrics.cpp"
+#include "bindings/V8TimeRanges.cpp"
+#include "bindings/V8TreeWalker.cpp"
+#include "bindings/V8UIEvent.cpp"
+#include "bindings/V8ValidityState.cpp"
+#include "bindings/V8WebKitAnimationEvent.cpp"
+#include "bindings/V8WebKitCSSKeyframeRule.cpp"
+#include "bindings/V8WebKitCSSKeyframesRule.cpp"
+#include "bindings/V8WebKitCSSMatrix.cpp"
+#include "bindings/V8WebKitCSSTransformValue.cpp"
+#include "bindings/V8WebKitPoint.cpp"
+#include "bindings/V8WebKitTransitionEvent.cpp"
+#include "bindings/V8WheelEvent.cpp"
+#include "bindings/V8XMLHttpRequest.cpp"
+#include "bindings/V8XMLHttpRequestException.cpp"
+#include "bindings/V8XMLHttpRequestProgressEvent.cpp"
+#include "bindings/V8XMLHttpRequestUpload.cpp"
+#include "bindings/V8XMLSerializer.cpp"
+
+
+#if ENABLE(DATABASE)
+#include "bindings/V8Database.cpp"
 #include "bindings/V8SQLError.cpp"
 #include "bindings/V8SQLResultSet.cpp"
 #include "bindings/V8SQLResultSetRowList.cpp"
 #include "bindings/V8SQLTransaction.cpp"
+#endif
+
+
+#if ENABLE(OFFLINE_WEB_APPLICATIONS)
+#include "bindings/V8DOMApplicationCache.cpp"
+#endif
+
 #if ENABLE(DOM_STORAGE)
 #include "bindings/V8Storage.cpp"
 #include "bindings/V8StorageEvent.cpp"
 #endif
-#include "bindings/V8StyleSheet.cpp"
-#include "bindings/V8StyleSheetList.cpp"
+
+#if ENABLE(SVG)
 #include "bindings/V8SVGAElement.cpp"
 #include "bindings/V8SVGAltGlyphElement.cpp"
 #include "bindings/V8SVGAngle.cpp"
@@ -306,33 +332,26 @@
 #include "bindings/V8SVGUseElement.cpp"
 #include "bindings/V8SVGViewElement.cpp"
 #include "bindings/V8SVGZoomEvent.cpp"
-#include "bindings/V8Text.cpp"
-#include "bindings/V8TextEvent.cpp"
-#include "bindings/V8TextMetrics.cpp"
-#include "bindings/V8TimeRanges.cpp"
-#include "bindings/V8TreeWalker.cpp"
-#include "bindings/V8UIEvent.cpp"
-#include "bindings/V8ValidityState.cpp"
-#include "bindings/V8WebKitAnimationEvent.cpp"
-#include "bindings/V8WebKitCSSKeyframeRule.cpp"
-#include "bindings/V8WebKitCSSKeyframesRule.cpp"
-#include "bindings/V8WebKitCSSMatrix.cpp"
-#include "bindings/V8WebKitCSSTransformValue.cpp"
-#include "bindings/V8WebKitPoint.cpp"
-#include "bindings/V8WebKitTransitionEvent.cpp"
-#include "bindings/V8WheelEvent.cpp"
+#endif
+
+#if ENABLE(WORKERS)
+#include "bindings/V8AbstractWorker.cpp"
+#include "bindings/V8DedicatedWorkerContext.cpp"
+#include "bindings/V8SharedWorker.cpp"
 #include "bindings/V8Worker.cpp"
 #include "bindings/V8WorkerContext.cpp"
 #include "bindings/V8WorkerLocation.cpp"
 #include "bindings/V8WorkerNavigator.cpp"
-#include "bindings/V8XMLHttpRequest.cpp"
-#include "bindings/V8XMLHttpRequestException.cpp"
-#include "bindings/V8XMLHttpRequestProgressEvent.cpp"
-#include "bindings/V8XMLHttpRequestUpload.cpp"
-#include "bindings/V8XMLSerializer.cpp"
+#endif
+
+#if ENABLE(XPATH)
 #include "bindings/V8XPathEvaluator.cpp"
 #include "bindings/V8XPathException.cpp"
 #include "bindings/V8XPathExpression.cpp"
 #include "bindings/V8XPathNSResolver.cpp"
 #include "bindings/V8XPathResult.cpp"
+#endif
+
+#if ENABLE(XSLT)
 #include "bindings/V8XSLTProcessor.cpp"
+#endif
diff --git a/WebCore/bindings/v8/V8Index.cpp b/WebCore/bindings/v8/V8Index.cpp
index 05d4a3a..6e65d92 100644
--- a/WebCore/bindings/v8/V8Index.cpp
+++ b/WebCore/bindings/v8/V8Index.cpp
@@ -62,7 +62,6 @@
 #include "V8CSSVariablesRule.h"
 #include "V8DataGridColumn.h"
 #include "V8DataGridColumnList.h"
-#include "V8Database.h"
 #include "V8Document.h"
 #include "V8DocumentFragment.h"
 #include "V8DocumentType.h"
@@ -186,26 +185,16 @@
 #include "V8Range.h"
 #include "V8RangeException.h"
 #include "V8Rect.h"
-#include "V8SQLError.h"
-#include "V8SQLResultSet.h"
-#include "V8SQLResultSetRowList.h"
-#include "V8SQLTransaction.h"
-#include "V8NodeIterator.h"
+#iinclude "V8NodeIterator.h"
 #include "V8TextMetrics.h"
 #include "V8TreeWalker.h"
 #include "V8StyleSheetList.h"
 #include "V8DOMImplementation.h"
-#include "V8XPathResult.h"
-#include "V8XPathException.h"
-#include "V8XPathExpression.h"
-#include "V8XPathNSResolver.h"
 #include "V8XMLHttpRequest.h"
 #include "V8XMLHttpRequestException.h"
 #include "V8XMLHttpRequestProgressEvent.h"
 #include "V8XMLHttpRequestUpload.h"
 #include "V8XMLSerializer.h"
-#include "V8XPathEvaluator.h"
-#include "V8XSLTProcessor.h"
 #include "V8RGBColor.h"
 #include "V8VoidCallback.h"
 
@@ -213,6 +202,14 @@
 #include "V8DOMApplicationCache.h"
 #endif
 
+#if ENABLE(DATABASE)
+#include "V8Database.h"
+#include "V8SQLError.h"
+#include "V8SQLResultSet.h"
+#include "V8SQLResultSetRowList.h"
+#include "V8SQLTransaction.h"
+#endif
+
 #if ENABLE(DOM_STORAGE)
 #include "V8Storage.h"
 #include "V8StorageEvent.h"
@@ -403,6 +400,18 @@
 #include "V8TouchEvent.h"
 #endif
 
+#if ENABLE(XPATH)
+#include "V8XPathResult.h"
+#include "V8XPathException.h"
+#include "V8XPathExpression.h"
+#include "V8XPathEvaluator.h"
+#include "V8XPathNSResolver.h"
+#endif
+
+#if ENABLE(XSLT)
+#include "V8XSLTProcessor.h"
+#endif
+
 namespace WebCore {
 
 FunctionTemplateFactory V8ClassIndex::GetFactory(V8WrapperType type)
diff --git a/WebCore/bindings/v8/V8Index.h b/WebCore/bindings/v8/V8Index.h
index 1df015f..711a704 100644
--- a/WebCore/bindings/v8/V8Index.h
+++ b/WebCore/bindings/v8/V8Index.h
@@ -388,12 +388,6 @@
     V(XMLHTTPREQUESTEXCEPTION, XMLHttpRequestException)                 \
     V(XMLHTTPREQUESTPROGRESSEVENT, XMLHttpRequestProgressEvent)         \
     V(XMLSERIALIZER, XMLSerializer)                                     \
-    V(XPATHEVALUATOR, XPathEvaluator)                                   \
-    V(XPATHEXCEPTION, XPathException)                                   \
-    V(XPATHEXPRESSION, XPathExpression)                                 \
-    V(XPATHNSRESOLVER, XPathNSResolver)                                 \
-    V(XPATHRESULT, XPathResult)                                         \
-    V(XSLTPROCESSOR, XSLTProcessor)                                     \
     ACTIVE_DOM_OBJECT_TYPES(V)                                          \
     APPLICATIONCACHE_NONNODE_WRAPPER_TYPES(V)                           \
     DATAGRID_NONNODE_TYPES(V)                                           \
@@ -401,6 +395,24 @@
     SHARED_WORKER_NONNODE_WRAPPER_TYPES(V)                              \
     WORKER_NONNODE_WRAPPER_TYPES(V)
 
+#if ENABLE(XPATH)
+#define DOM_OBJECT_XPATH_TYPES(V)                                       \
+    V(XPATHEVALUATOR, XPathEvaluator)                                   \
+    V(XPATHEXCEPTION, XPathException)                                   \
+    V(XPATHEXPRESSION, XPathExpression)                                 \
+    V(XPATHNSRESOLVER, XPathNSResolver)                                 \
+    V(XPATHRESULT, XPathResult)
+#else
+#define DOM_OBJECT_XPATH_TYPES(V)
+#endif
+
+#if ENABLE(XSLT)
+#define DOM_OBJECT_XSLT_TYPES(V)                                        \
+    V(XSLTPROCESSOR, XSLTProcessor)
+#else
+#define DOM_OBJECT_XSLT_TYPES(V)
+#endif
+ 
 #if ENABLE(DATABASE)
 #define DOM_OBJECT_DATABASE_TYPES(V)                                    \
     V(DATABASE, Database)                                               \
@@ -452,7 +464,9 @@
     DOM_OBJECT_TYPES_2(V)                                               \
     DOM_OBJECT_DATABASE_TYPES(V)                                        \
     DOM_OBJECT_STORAGE_TYPES(V)                                         \
-    DOM_OBJECT_WORKERS_TYPES(V)
+    DOM_OBJECT_WORKERS_TYPES(V)                                         \
+    DOM_OBJECT_XPATH_TYPES(V)                                           \
+    DOM_OBJECT_XSLT_TYPES(V)
 #elif PLATFORM(ANDROID)
 #define DOM_OBJECT_TYPES(V)                                             \
     DOM_OBJECT_TYPES_1(V)                                               \
diff --git a/WebCore/bindings/v8/V8Proxy.cpp b/WebCore/bindings/v8/V8Proxy.cpp
index 1e0658f..b13fc77 100644
--- a/WebCore/bindings/v8/V8Proxy.cpp
+++ b/WebCore/bindings/v8/V8Proxy.cpp
@@ -46,8 +46,6 @@
 #include "V8Index.h"
 #include "V8IsolatedWorld.h"
 
-#include <algorithm>
-#include <utility>
 #include <v8.h>
 #include <v8-debug.h>
 #include <wtf/Assertions.h>
diff --git a/WebCore/bindings/v8/V8Proxy.h b/WebCore/bindings/v8/V8Proxy.h
index 66a788e..d2c0181 100644
--- a/WebCore/bindings/v8/V8Proxy.h
+++ b/WebCore/bindings/v8/V8Proxy.h
@@ -48,10 +48,7 @@
 #include <wtf/PassRefPtr.h> // so generated bindings don't have to
 #include <wtf/Vector.h>
 
-#include <iterator>
-#include <list>
-
-#ifdef ENABLE_DOM_STATS_COUNTERS && PLATFORM(CHROMIUM)
+#if defined(ENABLE_DOM_STATS_COUNTERS) && PLATFORM(CHROMIUM)
 #include "ChromiumBridge.h"
 #define INC_STATS(name) ChromiumBridge::incrementStatsCounter(name)
 #else
@@ -148,7 +145,7 @@
         int group;
         v8::Extension* extension;
     };
-    typedef std::list<V8ExtensionInfo> V8ExtensionList;
+    typedef WTF::Vector<V8ExtensionInfo> V8ExtensionList;
 
     class V8Proxy {
     public: