.: Add ENABLE guards for Promises
https://bugs.webkit.org/show_bug.cgi?id=120488

Reviewed by Andreas Kling.

* Source/autotools/SetupWebKitFeatures.m4:
* Source/cmake/WebKitFeatures.cmake:
* Source/cmakeconfig.h.cmake:

Source/JavaScriptCore: Add ENABLE guards for Promises
https://bugs.webkit.org/show_bug.cgi?id=120488

Reviewed by Andreas Kling.

* Configurations/FeatureDefines.xcconfig:
* runtime/JSGlobalObject.cpp:
* runtime/JSGlobalObject.h:
* runtime/JSPromise.cpp:
* runtime/JSPromise.h:
* runtime/JSPromiseCallback.cpp:
* runtime/JSPromiseCallback.h:
* runtime/JSPromiseConstructor.cpp:
* runtime/JSPromiseConstructor.h:
* runtime/JSPromisePrototype.cpp:
* runtime/JSPromisePrototype.h:
* runtime/JSPromiseResolver.cpp:
* runtime/JSPromiseResolver.h:
* runtime/JSPromiseResolverConstructor.cpp:
* runtime/JSPromiseResolverConstructor.h:
* runtime/JSPromiseResolverPrototype.cpp:
* runtime/JSPromiseResolverPrototype.h:

Source/WebCore: Add ENABLE guards for Promises
https://bugs.webkit.org/show_bug.cgi?id=120488

Reviewed by Andreas Kling.

* Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac: Add ENABLE gaurds for Promises
https://bugs.webkit.org/show_bug.cgi?id=120488

Reviewed by Andreas Kling.

* Configurations/FeatureDefines.xcconfig:

Source/WebKit2: Add ENABLE gaurds for Promises
https://bugs.webkit.org/show_bug.cgi?id=120488

Reviewed by Andreas Kling.

* Configurations/FeatureDefines.xcconfig:

Source/WTF: Add ENABLE guards for Promises
https://bugs.webkit.org/show_bug.cgi?id=120488

Reviewed by Andreas Kling.

* wtf/FeatureDefines.h:

Tools: Add ENABLE guards for Promises
https://bugs.webkit.org/show_bug.cgi?id=120488

Reviewed by Andreas Kling.

* Scripts/webkitperl/FeatureList.pm:
* qmake/mkspecs/features/features.pri:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154847 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/JavaScriptCore/ChangeLog b/Source/JavaScriptCore/ChangeLog
index c176d1d..4f35a73 100644
--- a/Source/JavaScriptCore/ChangeLog
+++ b/Source/JavaScriptCore/ChangeLog
@@ -1,3 +1,28 @@
+2013-08-29  Sam Weinig  <sam@webkit.org>
+
+        Add ENABLE guards for Promises
+        https://bugs.webkit.org/show_bug.cgi?id=120488
+
+        Reviewed by Andreas Kling.
+
+        * Configurations/FeatureDefines.xcconfig:
+        * runtime/JSGlobalObject.cpp:
+        * runtime/JSGlobalObject.h:
+        * runtime/JSPromise.cpp:
+        * runtime/JSPromise.h:
+        * runtime/JSPromiseCallback.cpp:
+        * runtime/JSPromiseCallback.h:
+        * runtime/JSPromiseConstructor.cpp:
+        * runtime/JSPromiseConstructor.h:
+        * runtime/JSPromisePrototype.cpp:
+        * runtime/JSPromisePrototype.h:
+        * runtime/JSPromiseResolver.cpp:
+        * runtime/JSPromiseResolver.h:
+        * runtime/JSPromiseResolverConstructor.cpp:
+        * runtime/JSPromiseResolverConstructor.h:
+        * runtime/JSPromiseResolverPrototype.cpp:
+        * runtime/JSPromiseResolverPrototype.h:
+
 2013-08-29  Filip Pizlo  <fpizlo@apple.com>
 
         Unreviewed, fix FTL build.
diff --git a/Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig b/Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig
index b1e787b..76fcd20 100644
--- a/Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig
+++ b/Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig
@@ -148,6 +148,7 @@
 ENABLE_PLUGIN_PROXY_FOR_VIDEO_iphoneos = ENABLE_PLUGIN_PROXY_FOR_VIDEO;
 ENABLE_PLUGIN_PROXY_FOR_VIDEO_iphonesimulator = $(ENABLE_PLUGIN_PROXY_FOR_VIDEO_iphoneos);
 ENABLE_PROGRESS_ELEMENT = ENABLE_PROGRESS_ELEMENT;
+ENABLE_PROMISES = ENABLE_PROMISES;
 ENABLE_PROXIMITY_EVENTS = ;
 ENABLE_PUBLIC_SUFFIX_LIST = $(ENABLE_PUBLIC_SUFFIX_LIST_$(PLATFORM_NAME));
 ENABLE_PUBLIC_SUFFIX_LIST_macosx = $(ENABLE_PUBLIC_SUFFIX_LIST_macosx_$(TARGET_MAC_OS_X_VERSION_MAJOR));
@@ -186,4 +187,4 @@
 
 ENABLE_FTL_JIT = ;
 
-FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_BLOB) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_EXCLUSIONS) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SHADERS) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_STICKY_POSITION) $(ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED) $(ENABLE_CSS_VARIABLES) $(ENABLE_CSS3_CONDITIONAL_RULES) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS3_TEXT_LINE_BREAK) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIALOG_ELEMENT) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_DRAGGABLE_REGION) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FILE_SYSTEM) $(ENABLE_FILTERS) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING) $(ENABLE_HIGH_DPI_CANVAS) $(ENABLE_ICONDATABASE) $(ENABLE_IFRAME_SEAMLESS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_SPEECH) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LINK_PREFETCH) $(ENABLE_MATHML) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_PLUGIN_PROXY_FOR_VIDEO) $(ENABLE_PROGRESS_ELEMENT) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_SCRIPTED_SPEECH) $(ENABLE_SHADOW_DOM) $(ENABLE_SHARED_WORKERS) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_SQL_DATABASE) $(ENABLE_STYLE_SCOPED) $(ENABLE_SUBPIXEL_LAYOUT) $(ENABLE_SVG) $(ENABLE_SVG_FONTS) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_THREADED_HTML_PARSER) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBGL) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WORKERS) $(ENABLE_XHR_TIMEOUT) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(FEATURE_DEFINES_$(PLATFORM_NAME));
+FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_BLOB) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_EXCLUSIONS) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SHADERS) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_STICKY_POSITION) $(ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED) $(ENABLE_CSS_VARIABLES) $(ENABLE_CSS3_CONDITIONAL_RULES) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS3_TEXT_LINE_BREAK) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIALOG_ELEMENT) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_DRAGGABLE_REGION) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FILE_SYSTEM) $(ENABLE_FILTERS) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING) $(ENABLE_HIGH_DPI_CANVAS) $(ENABLE_ICONDATABASE) $(ENABLE_IFRAME_SEAMLESS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_SPEECH) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LINK_PREFETCH) $(ENABLE_MATHML) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_PLUGIN_PROXY_FOR_VIDEO) $(ENABLE_PROGRESS_ELEMENT) $(ENABLE_PROMISES) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_SCRIPTED_SPEECH) $(ENABLE_SHADOW_DOM) $(ENABLE_SHARED_WORKERS) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_SQL_DATABASE) $(ENABLE_STYLE_SCOPED) $(ENABLE_SUBPIXEL_LAYOUT) $(ENABLE_SVG) $(ENABLE_SVG_FONTS) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_THREADED_HTML_PARSER) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBGL) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WORKERS) $(ENABLE_XHR_TIMEOUT) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(FEATURE_DEFINES_$(PLATFORM_NAME));
diff --git a/Source/JavaScriptCore/runtime/JSGlobalObject.cpp b/Source/JavaScriptCore/runtime/JSGlobalObject.cpp
index e2bdfdc..7a70db7 100644
--- a/Source/JavaScriptCore/runtime/JSGlobalObject.cpp
+++ b/Source/JavaScriptCore/runtime/JSGlobalObject.cpp
@@ -66,13 +66,6 @@
 #include "JSLock.h"
 #include "JSNameScope.h"
 #include "JSONObject.h"
-#include "JSPromise.h"
-#include "JSPromiseCallback.h"
-#include "JSPromiseConstructor.h"
-#include "JSPromisePrototype.h"
-#include "JSPromiseResolver.h"
-#include "JSPromiseResolverConstructor.h"
-#include "JSPromiseResolverPrototype.h"
 #include "JSTypedArrayConstructors.h"
 #include "JSTypedArrayPrototypes.h"
 #include "JSTypedArrays.h"
@@ -100,6 +93,16 @@
 #include "StringConstructor.h"
 #include "StringPrototype.h"
 
+#if ENABLE(PROMISES)
+#include "JSPromise.h"
+#include "JSPromiseCallback.h"
+#include "JSPromiseConstructor.h"
+#include "JSPromisePrototype.h"
+#include "JSPromiseResolver.h"
+#include "JSPromiseResolverConstructor.h"
+#include "JSPromiseResolverPrototype.h"
+#endif // ENABLE(PROMISES)
+
 #include "JSGlobalObject.lut.h"
 
 namespace JSC {
@@ -304,6 +307,7 @@
     m_errorPrototype.set(exec->vm(), this, ErrorPrototype::create(exec, this, ErrorPrototype::createStructure(exec->vm(), this, m_objectPrototype.get())));
     m_errorStructure.set(exec->vm(), this, ErrorInstance::createStructure(exec->vm(), this, m_errorPrototype.get()));
 
+#if ENABLE(PROMISES)
     m_promisePrototype.set(exec->vm(), this, JSPromisePrototype::create(exec, this, JSPromisePrototype::createStructure(exec->vm(), this, m_objectPrototype.get())));
     m_promiseStructure.set(exec->vm(), this, JSPromise::createStructure(exec->vm(), this, m_promisePrototype.get()));
 
@@ -311,7 +315,8 @@
     m_promiseResolverStructure.set(exec->vm(), this, JSPromiseResolver::createStructure(exec->vm(), this, m_promiseResolverPrototype.get()));
     m_promiseCallbackStructure.set(exec->vm(), this, JSPromiseCallback::createStructure(exec->vm(), this, m_functionPrototype.get()));
     m_promiseWrapperCallbackStructure.set(exec->vm(), this, JSPromiseWrapperCallback::createStructure(exec->vm(), this, m_functionPrototype.get()));
-    
+#endif // ENABLE(PROMISES)
+
     // Constructors
 
     JSCell* objectConstructor = ObjectConstructor::create(exec, this, ObjectConstructor::createStructure(exec->vm(), this, m_functionPrototype.get()), m_objectPrototype.get());
@@ -321,8 +326,11 @@
     JSCell* booleanConstructor = BooleanConstructor::create(exec, this, BooleanConstructor::createStructure(exec->vm(), this, m_functionPrototype.get()), m_booleanPrototype.get());
     JSCell* numberConstructor = NumberConstructor::create(exec, this, NumberConstructor::createStructure(exec->vm(), this, m_functionPrototype.get()), m_numberPrototype.get());
     JSCell* dateConstructor = DateConstructor::create(exec, this, DateConstructor::createStructure(exec->vm(), this, m_functionPrototype.get()), m_datePrototype.get());
+
+#if ENABLE(PROMISES)
     JSCell* promiseConstructor = JSPromiseConstructor::create(exec, this, JSPromiseConstructor::createStructure(exec->vm(), this, m_functionPrototype.get()), m_promisePrototype.get());
     JSCell* promiseResolverConstructor = JSPromiseResolverConstructor::create(exec, this, JSPromiseResolverConstructor::createStructure(exec->vm(), this, m_functionPrototype.get()), m_promiseResolverPrototype.get());
+#endif // ENABLE(PROMISES)
 
     m_regExpConstructor.set(exec->vm(), this, RegExpConstructor::create(exec, this, RegExpConstructor::createStructure(exec->vm(), this, m_functionPrototype.get()), m_regExpPrototype.get()));
 
@@ -617,10 +625,13 @@
     visitor.append(&thisObject->m_regExpStructure);
     visitor.append(&thisObject->m_stringObjectStructure);
     visitor.append(&thisObject->m_internalFunctionStructure);
+
+#if ENABLE(PROMISES)
     visitor.append(&thisObject->m_promiseStructure);
     visitor.append(&thisObject->m_promiseResolverStructure);
     visitor.append(&thisObject->m_promiseCallbackStructure);
     visitor.append(&thisObject->m_promiseWrapperCallbackStructure);
+#endif // ENABLE(PROMISES)
 
     visitor.append(&thisObject->m_arrayBufferPrototype);
     visitor.append(&thisObject->m_arrayBufferStructure);
diff --git a/Source/JavaScriptCore/runtime/JSGlobalObject.h b/Source/JavaScriptCore/runtime/JSGlobalObject.h
index f2d6738..0042dcf 100644
--- a/Source/JavaScriptCore/runtime/JSGlobalObject.h
+++ b/Source/JavaScriptCore/runtime/JSGlobalObject.h
@@ -183,10 +183,13 @@
     WriteBarrier<Structure> m_regExpStructure;
     WriteBarrier<Structure> m_stringObjectStructure;
     WriteBarrier<Structure> m_internalFunctionStructure;
+
+#if ENABLE(PROMISES)
     WriteBarrier<Structure> m_promiseStructure;
     WriteBarrier<Structure> m_promiseResolverStructure;
     WriteBarrier<Structure> m_promiseCallbackStructure;
     WriteBarrier<Structure> m_promiseWrapperCallbackStructure;
+#endif // ENABLE(PROMISES)
 
     WriteBarrier<JSArrayBufferPrototype> m_arrayBufferPrototype;
     WriteBarrier<Structure> m_arrayBufferStructure;
@@ -381,10 +384,13 @@
     Structure* regExpMatchesArrayStructure() const { return m_regExpMatchesArrayStructure.get(); }
     Structure* regExpStructure() const { return m_regExpStructure.get(); }
     Structure* stringObjectStructure() const { return m_stringObjectStructure.get(); }
+
+#if ENABLE(PROMISES)
     Structure* promiseStructure() const { return m_promiseStructure.get(); }
     Structure* promiseResolverStructure() const { return m_promiseResolverStructure.get(); }
     Structure* promiseCallbackStructure() const { return m_promiseCallbackStructure.get(); }
     Structure* promiseWrapperCallbackStructure() const { return m_promiseWrapperCallbackStructure.get(); }
+#endif // ENABLE(PROMISES)
 
     JSArrayBufferPrototype* arrayBufferPrototype() const { return m_arrayBufferPrototype.get(); }
     Structure* arrayBufferStructure() const { return m_arrayBufferStructure.get(); }
diff --git a/Source/JavaScriptCore/runtime/JSPromise.cpp b/Source/JavaScriptCore/runtime/JSPromise.cpp
index 20481cc..80e17ea 100644
--- a/Source/JavaScriptCore/runtime/JSPromise.cpp
+++ b/Source/JavaScriptCore/runtime/JSPromise.cpp
@@ -26,6 +26,8 @@
 #include "config.h"
 #include "JSPromise.h"
 
+#if ENABLE(PROMISES)
+
 #include "Error.h"
 #include "JSCJSValueInlines.h"
 #include "JSCellInlines.h"
@@ -239,3 +241,5 @@
 }
 
 } // namespace JSC
+
+#endif // ENABLE(PROMISES)
diff --git a/Source/JavaScriptCore/runtime/JSPromise.h b/Source/JavaScriptCore/runtime/JSPromise.h
index 06e4812..a179cee 100644
--- a/Source/JavaScriptCore/runtime/JSPromise.h
+++ b/Source/JavaScriptCore/runtime/JSPromise.h
@@ -26,6 +26,8 @@
 #ifndef JSPromise_h
 #define JSPromise_h
 
+#if ENABLE(PROMISES)
+
 #include "JSDestructibleObject.h"
 
 namespace JSC {
@@ -89,4 +91,6 @@
 
 } // namespace JSC
 
+#endif // ENABLE(PROMISES)
+
 #endif // JSPromise_h
diff --git a/Source/JavaScriptCore/runtime/JSPromiseCallback.cpp b/Source/JavaScriptCore/runtime/JSPromiseCallback.cpp
index 115991b..d5e89c7 100644
--- a/Source/JavaScriptCore/runtime/JSPromiseCallback.cpp
+++ b/Source/JavaScriptCore/runtime/JSPromiseCallback.cpp
@@ -26,6 +26,8 @@
 #include "config.h"
 #include "JSPromiseCallback.h"
 
+#if ENABLE(PROMISES)
+
 #include "JSCJSValueInlines.h"
 #include "JSCellInlines.h"
 #include "JSPromise.h"
@@ -190,3 +192,5 @@
 }
 
 } // namespace JSC
+
+#endif // ENABLE(PROMISES)
diff --git a/Source/JavaScriptCore/runtime/JSPromiseCallback.h b/Source/JavaScriptCore/runtime/JSPromiseCallback.h
index 2f5510d..c9bea04 100644
--- a/Source/JavaScriptCore/runtime/JSPromiseCallback.h
+++ b/Source/JavaScriptCore/runtime/JSPromiseCallback.h
@@ -26,6 +26,8 @@
 #ifndef JSPromiseCallback_h
 #define JSPromiseCallback_h
 
+#if ENABLE(PROMISES)
+
 #include "InternalFunction.h"
 
 namespace JSC {
@@ -86,4 +88,6 @@
 
 } // namespace JSC
 
+#endif // ENABLE(PROMISES)
+
 #endif // JSPromiseCallback_h
diff --git a/Source/JavaScriptCore/runtime/JSPromiseConstructor.cpp b/Source/JavaScriptCore/runtime/JSPromiseConstructor.cpp
index a30dae1..c29c3b0 100644
--- a/Source/JavaScriptCore/runtime/JSPromiseConstructor.cpp
+++ b/Source/JavaScriptCore/runtime/JSPromiseConstructor.cpp
@@ -26,6 +26,8 @@
 #include "config.h"
 #include "JSPromiseConstructor.h"
 
+#if ENABLE(PROMISES)
+
 #include "Error.h"
 #include "JSCJSValueInlines.h"
 #include "JSCellInlines.h"
@@ -181,3 +183,5 @@
 }
 
 } // namespace JSC
+
+#endif // ENABLE(PROMISES)
diff --git a/Source/JavaScriptCore/runtime/JSPromiseConstructor.h b/Source/JavaScriptCore/runtime/JSPromiseConstructor.h
index dd71efc..72444bc 100644
--- a/Source/JavaScriptCore/runtime/JSPromiseConstructor.h
+++ b/Source/JavaScriptCore/runtime/JSPromiseConstructor.h
@@ -26,6 +26,8 @@
 #ifndef JSPromiseConstructor_h
 #define JSPromiseConstructor_h
 
+#if ENABLE(PROMISES)
+
 #include "InternalFunction.h"
 
 namespace JSC {
@@ -54,4 +56,6 @@
 
 } // namespace JSC
 
+#endif // ENABLE(PROMISES)
+
 #endif // JSPromiseConstructor_h
diff --git a/Source/JavaScriptCore/runtime/JSPromisePrototype.cpp b/Source/JavaScriptCore/runtime/JSPromisePrototype.cpp
index faae9a5..a70b188 100644
--- a/Source/JavaScriptCore/runtime/JSPromisePrototype.cpp
+++ b/Source/JavaScriptCore/runtime/JSPromisePrototype.cpp
@@ -26,6 +26,8 @@
 #include "config.h"
 #include "JSPromisePrototype.h"
 
+#if ENABLE(PROMISES)
+
 #include "Error.h"
 #include "JSCJSValueInlines.h"
 #include "JSCellInlines.h"
@@ -177,3 +179,5 @@
 }
 
 } // namespace JSC
+
+#endif // ENABLE(PROMISES)
diff --git a/Source/JavaScriptCore/runtime/JSPromisePrototype.h b/Source/JavaScriptCore/runtime/JSPromisePrototype.h
index c979beb..64d0e62 100644
--- a/Source/JavaScriptCore/runtime/JSPromisePrototype.h
+++ b/Source/JavaScriptCore/runtime/JSPromisePrototype.h
@@ -26,6 +26,8 @@
 #ifndef JSPromisePrototype_h
 #define JSPromisePrototype_h
 
+#if ENABLE(PROMISES)
+
 #include "JSObject.h"
 
 namespace JSC {
@@ -50,4 +52,6 @@
 
 } // namespace JSC
 
+#endif // ENABLE(PROMISES)
+
 #endif // JSPromisePrototype_h
diff --git a/Source/JavaScriptCore/runtime/JSPromiseResolver.cpp b/Source/JavaScriptCore/runtime/JSPromiseResolver.cpp
index 9427b66..1497b5c 100644
--- a/Source/JavaScriptCore/runtime/JSPromiseResolver.cpp
+++ b/Source/JavaScriptCore/runtime/JSPromiseResolver.cpp
@@ -26,6 +26,8 @@
 #include "config.h"
 #include "JSPromiseResolver.h"
 
+#if ENABLE(PROMISES)
+
 #include "JSCJSValueInlines.h"
 #include "JSCellInlines.h"
 #include "JSGlobalObject.h"
@@ -196,3 +198,5 @@
 }
 
 } // namespace JSC
+
+#endif // ENABLE(PROMISES)
diff --git a/Source/JavaScriptCore/runtime/JSPromiseResolver.h b/Source/JavaScriptCore/runtime/JSPromiseResolver.h
index 06f3286..3874e9e 100644
--- a/Source/JavaScriptCore/runtime/JSPromiseResolver.h
+++ b/Source/JavaScriptCore/runtime/JSPromiseResolver.h
@@ -26,6 +26,8 @@
 #ifndef JSPromiseResolver_h
 #define JSPromiseResolver_h
 
+#if ENABLE(PROMISES)
+
 #include "JSObject.h"
 
 namespace JSC {
@@ -71,4 +73,6 @@
 
 } // namespace JSC
 
+#endif // ENABLE(PROMISES)
+
 #endif // JSPromiseResolver_h
diff --git a/Source/JavaScriptCore/runtime/JSPromiseResolverConstructor.cpp b/Source/JavaScriptCore/runtime/JSPromiseResolverConstructor.cpp
index adb65ab..7365f19 100644
--- a/Source/JavaScriptCore/runtime/JSPromiseResolverConstructor.cpp
+++ b/Source/JavaScriptCore/runtime/JSPromiseResolverConstructor.cpp
@@ -26,6 +26,8 @@
 #include "config.h"
 #include "JSPromiseResolverConstructor.h"
 
+#if ENABLE(PROMISES)
+
 #include "JSCJSValueInlines.h"
 #include "JSCellInlines.h"
 #include "JSPromiseResolverPrototype.h"
@@ -72,3 +74,5 @@
 }
 
 } // namespace JSC
+
+#endif // ENABLE(PROMISES)
diff --git a/Source/JavaScriptCore/runtime/JSPromiseResolverConstructor.h b/Source/JavaScriptCore/runtime/JSPromiseResolverConstructor.h
index 191b5a1..31a0d11 100644
--- a/Source/JavaScriptCore/runtime/JSPromiseResolverConstructor.h
+++ b/Source/JavaScriptCore/runtime/JSPromiseResolverConstructor.h
@@ -26,6 +26,8 @@
 #ifndef JSPromiseResolverConstructor_h
 #define JSPromiseResolverConstructor_h
 
+#if ENABLE(PROMISES)
+
 #include "InternalFunction.h"
 
 namespace JSC {
@@ -53,4 +55,6 @@
 
 } // namespace JSC
 
+#endif // ENABLE(PROMISES)
+
 #endif // JSPromiseResolverConstructor_h
diff --git a/Source/JavaScriptCore/runtime/JSPromiseResolverPrototype.cpp b/Source/JavaScriptCore/runtime/JSPromiseResolverPrototype.cpp
index 103627a..8ac0d71 100644
--- a/Source/JavaScriptCore/runtime/JSPromiseResolverPrototype.cpp
+++ b/Source/JavaScriptCore/runtime/JSPromiseResolverPrototype.cpp
@@ -26,6 +26,8 @@
 #include "config.h"
 #include "JSPromiseResolverPrototype.h"
 
+#if ENABLE(PROMISES)
+
 #include "Error.h"
 #include "JSCJSValueInlines.h"
 #include "JSCellInlines.h"
@@ -117,3 +119,5 @@
 }
 
 } // namespace JSC
+
+#endif // ENABLE(PROMISES)
diff --git a/Source/JavaScriptCore/runtime/JSPromiseResolverPrototype.h b/Source/JavaScriptCore/runtime/JSPromiseResolverPrototype.h
index e61e67d..18a201e9 100644
--- a/Source/JavaScriptCore/runtime/JSPromiseResolverPrototype.h
+++ b/Source/JavaScriptCore/runtime/JSPromiseResolverPrototype.h
@@ -26,6 +26,8 @@
 #ifndef JSPromiseResolverPrototype_h
 #define JSPromiseResolverPrototype_h
 
+#if ENABLE(PROMISES)
+
 #include "JSObject.h"
 
 namespace JSC {
@@ -50,4 +52,6 @@
 
 } // namespace JSC
 
+#endif // ENABLE(PROMISES)
+
 #endif // JSPromiseResolverPrototype_h