Enable workers w/JSC.
diff --git a/Android.jsc.mk b/Android.jsc.mk
index bfcd6b6..4fc6156 100644
--- a/Android.jsc.mk
+++ b/Android.jsc.mk
@@ -180,6 +180,7 @@
 	$(base_intermediates)/WebCore/platform \
 	$(base_intermediates)/WebCore/plugins \
 	$(base_intermediates)/WebCore/storage \
+	$(base_intermediates)/WebCore/workers \
 	$(base_intermediates)/WebCore/xml
 
 ifeq ($(ENABLE_SVG), true)
diff --git a/WebCore/Android.derived.mk b/WebCore/Android.derived.mk
index a28bbd2..c8a2651 100644
--- a/WebCore/Android.derived.mk
+++ b/WebCore/Android.derived.mk
@@ -23,11 +23,9 @@
 #	css/RGBColor.idl \
 #	dom/EventListener.idl \
 #	dom/EventTarget.idl \
-#	dom/Worker*.idl \
 #	html/CanvasPixelArray.idl \
 #	page/AbstractView.idl \
 #	page/PositionCallback.idl \
-#	page/Worker*.idl \
 #	svg/ElementTimeControl.idl \
 #	svg/SVGAnimatedPathData.idl \
 #	svg/SVGAnimatedPoints.idl \
@@ -48,7 +46,6 @@
 #
 # The following files are intentionally not generated
 # LOCAL_GENERATED_FILES_EXCLUDED := \
-#	JSWorkerContextBase.lut.h \
 #	WMLElementFactory.cpp \
 #	WMLNames.cpp \
 #	XLinkNames.cpp \
@@ -59,8 +56,8 @@
 # The following directory wildcard matches are intentionally not included
 # If an entry starts with '/', any subdirectory may match
 # If an entry starts with '^', the first directory must match
-# LOCAL_DIR_WILDCARD_EXCLUDED := \
-#	^workers/* \
+# LOCAL_DIR_WILDCARD_EXCLUDED :=
+#
 
 # This comment block is read by tools/webkitsync/diff.cpp
 # Don't remove it or move it. 
@@ -214,7 +211,7 @@
 			bindings/scripts/generate-bindings.pl \
 		)
 
-FEATURE_DEFINES := ANDROID_ORIENTATION_SUPPORT ENABLE_TOUCH_EVENTS=1 ENABLE_DATABASE=1 ENABLE_OFFLINE_WEB_APPLICATIONS=1 ENABLE_DOM_STORAGE=1 ENABLE_VIDEO=1
+FEATURE_DEFINES := ANDROID_ORIENTATION_SUPPORT ENABLE_TOUCH_EVENTS=1 ENABLE_DATABASE=1 ENABLE_OFFLINE_WEB_APPLICATIONS=1 ENABLE_DOM_STORAGE=1 ENABLE_VIDEO=1 ENABLE_WORKERS=1
 
 GEN := \
     $(intermediates)/css/JSCSSCharsetRule.h \
@@ -454,7 +451,9 @@
     $(intermediates)/page/JSPositionError.h \
     $(intermediates)/page/JSPositionErrorCallback.h \
     $(intermediates)/page/JSScreen.h \
-	$(intermediates)/page/JSWebKitPoint.h
+    $(intermediates)/page/JSWebKitPoint.h \
+    $(intermediates)/page/JSWorkerNavigator.h
+
 $(GEN): PRIVATE_PATH := $(LOCAL_PATH)
 $(GEN): PRIVATE_CUSTOM_TOOL = perl -I$(PRIVATE_PATH)/bindings/scripts $(PRIVATE_PATH)/bindings/scripts/generate-bindings.pl --defines "$(FEATURE_DEFINES) LANGUAGE_JAVASCRIPT" --generator JS --include dom --include html --outputdir $(dir $@) $<
 $(GEN): $(intermediates)/page/JS%.h : $(LOCAL_PATH)/page/%.idl $(js_binding_scripts)
@@ -661,6 +660,22 @@
 $(patsubst %.h,%.cpp,$(GEN)): $(intermediates)/svg/%.cpp : $(intermediates)/svg/%.h
 endif
 
+# new section for Workers
+GEN := \
+    $(intermediates)/workers/JSWorker.h \
+    $(intermediates)/workers/JSWorkerContext.h \
+    $(intermediates)/workers/JSWorkerLocation.h
+
+$(GEN): PRIVATE_PATH := $(LOCAL_PATH)
+$(GEN): PRIVATE_CUSTOM_TOOL = perl -I$(PRIVATE_PATH)/bindings/scripts $(PRIVATE_PATH)/bindings/scripts/generate-bindings.pl --defines "$(FEATURE_DEFINES) LANGUAGE_JAVASCRIPT" --generator JS --include dom --include html --outputdir $(dir $@) $<
+$(GEN): $(intermediates)/workers/JS%.h : $(LOCAL_PATH)/workers/%.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
+# above rules.  Specifying this explicitly makes -j2 work.
+$(patsubst %.h,%.cpp,$(GEN)): $(intermediates)/workers/%.cpp : $(intermediates)/workers/%.h
+
 #new section for xml/DOMParser.idl
 GEN := \
     $(intermediates)/xml/JSDOMParser.h \
diff --git a/WebCore/Android.mk b/WebCore/Android.mk
index 182c0a7..f02dfa3 100644
--- a/WebCore/Android.mk
+++ b/WebCore/Android.mk
@@ -26,8 +26,6 @@
 #	bindings/js/JSCustomVersionChangeCallback.cpp \
 #	bindings/js/JSInspectorControllerCustom.cpp \
 #	bindings/js/JSXSLTProcessor*.cpp \
-#	bindings/js/JSWorker*.cpp \
-#	bindings/js/Worker*.cpp \
 #	bindings/js/*Gtk.cpp \
 #	bindings/js/*Qt.cpp \
 #	bindings/js/*Win.cpp \
@@ -45,13 +43,11 @@
 #	loader/CachedXSLStyleSheet.cpp \
 #	loader/FTP*.cpp \
 #	loader/UserStyleSheetLoader.cpp \
-#	loader/WorkerThreadableLoader.cpp \
 #	loader/icon/IconDatabaseNone.cpp \
 #	page/AXObjectCache.cpp \
 #	page/Accessibility*.cpp \
 #	page/InspectorController.cpp \
 #	page/JavaScript*.cpp \
-#	page/WorkerNavigator.cpp \
 #	platform/ThreadingNone.cpp \
 #	platform/graphics/FloatPoint3D.cpp \
 #	rendering/RenderThemeChromium*.cpp \
@@ -90,7 +86,6 @@
 #	/symbian/* \
 #	/v8/* \
 #	/win/* \
-#	^workers/* \
 #	^wml/* \
 #	/wx/* \
 
@@ -203,6 +198,10 @@
 	bindings/js/JSTreeWalkerCustom.cpp \
 	bindings/js/JSWebKitCSSMatrixConstructor.cpp \
 	bindings/js/JSWebKitPointConstructor.cpp \
+	bindings/js/JSWorkerConstructor.cpp \
+	bindings/js/JSWorkerContextBase.cpp \
+	bindings/js/JSWorkerContextCustom.cpp \
+	bindings/js/JSWorkerCustom.cpp \
 	bindings/js/JSXMLHttpRequestConstructor.cpp \
 	bindings/js/JSXMLHttpRequestCustom.cpp \
 	bindings/js/JSXMLHttpRequestUploadCustom.cpp \
@@ -218,6 +217,7 @@
   bindings/js/ScriptObjectQuarantine.cpp \
   bindings/js/ScriptState.cpp \
 	bindings/js/ScriptValue.cpp \
+	bindings/js/WorkerScriptController.cpp \
 	\
 	bridge/IdentifierRep.cpp \
 	bridge/NP_jsobject.cpp \
@@ -578,6 +578,7 @@
 	loader/icon/PageURLRecord.cpp \
 	\
 	loader/loader.cpp \
+	loader/WorkerThreadableLoader.cpp \
 	\
 	page/BarInfo.cpp \
 	page/Chrome.cpp \
@@ -608,6 +609,7 @@
 	page/SecurityOrigin.cpp \
 	page/Settings.cpp \
 	page/WindowFeatures.cpp \
+	page/WorkerNavigator.cpp \
 	\
 	page/android/DragControllerAndroid.cpp \
 	page/android/EventHandlerAndroid.cpp \
@@ -1144,6 +1146,13 @@
 endif
 
 LOCAL_SRC_FILES := $(LOCAL_SRC_FILES) \
+	workers/Worker.cpp \
+	workers/WorkerContext.cpp \
+	workers/WorkerImportScriptsClient.cpp \
+	workers/WorkerLocation.cpp \
+	workers/WorkerMessagingProxy.cpp \
+	workers/WorkerRunLoop.cpp \
+	workers/WorkerThread.cpp \
 	xml/DOMParser.cpp \
 	xml/XMLHttpRequest.cpp \
 	xml/XMLHttpRequestUpload.cpp \
diff --git a/WebCore/config.h b/WebCore/config.h
index 247384f..0611287 100644
--- a/WebCore/config.h
+++ b/WebCore/config.h
@@ -101,6 +101,8 @@
 #define ENABLE_DOM_STORAGE 1
 #undef ENABLE_FTPDIR
 #define ENABLE_FTPDIR 0
+#undef ENABLE_WORKERS
+#define ENABLE_WORKERS 1
 #ifndef ENABLE_SVG
 #define ENABLE_SVG 0
 #endif