WebKit Bugzilla
Attachment 339090 Details for
Bug 183442
: WebAssembly: add support for stream APIs - JavaScript API
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-183442-20180429095646.patch (text/plain), 152.98 KB, created by
GSkachkov
on 2018-04-28 23:57:21 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
GSkachkov
Created:
2018-04-28 23:57:21 PDT
Size:
152.98 KB
patch
obsolete
>Subversion Revision: 231146 >diff --git a/Source/JavaScriptCore/ChangeLog b/Source/JavaScriptCore/ChangeLog >index e736a31461c5e8f256a69a399ce518e3c5838a54..e8bd605cfbbd9e55cc05a219ca452d36b17a47a9 100644 >--- a/Source/JavaScriptCore/ChangeLog >+++ b/Source/JavaScriptCore/ChangeLog >@@ -1,3 +1,44 @@ >+2018-04-28 Oleksandr Skachkov <gskachkov@gmail.com> >+ >+ WebAssembly: add support for stream APIs - JavaScript API >+ https://bugs.webkit.org/show_bug.cgi?id=183442 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Add WebAssembly stream API. Current patch only add functions >+ WebAssembly.compileStreaming and WebAssembly.instantiateStreaming but, >+ does not add streaming way of the implementation. So in current version it >+ only wait for load whole module, than start to parse. >+ >+ * CMakeLists.txt: >+ * Configurations/FeatureDefines.xcconfig: >+ * DerivedSources.make: >+ * JavaScriptCore.xcodeproj/project.pbxproj: >+ * builtins/BuiltinNames.h: >+ * builtins/WebAssemblyPrototype.js: Copied from Source/JavaScriptCore/wasm/js/WebAssemblyPrototype.h. >+ (compileStreaming): >+ (instantiateStreaming): >+ * jsc.cpp: >+ * runtime/JSGlobalObject.cpp: >+ (JSC::JSGlobalObject::init): >+ * runtime/JSGlobalObject.h: >+ * runtime/Options.h: >+ * runtime/PromiseDeferredTimer.cpp: >+ (JSC::PromiseDeferredTimer::hasPendingPromise): >+ (JSC::PromiseDeferredTimer::hasDependancyInPendingPromise): >+ * runtime/PromiseDeferredTimer.h: >+ * wasm/js/WebAssemblyPrototype.cpp: >+ (JSC::webAssemblyModuleValidateAsyncInternal): >+ (JSC::webAssemblyCompileFunc): >+ (JSC::WebAssemblyPrototype::webAssemblyModuleValidateAsync): >+ (JSC::webAssemblyModuleInstantinateAsyncInternal): >+ (JSC::WebAssemblyPrototype::webAssemblyModuleInstantinateAsync): >+ (JSC::webAssemblyCompileStreamingInternal): >+ (JSC::webAssemblyInstantiateStreamingInternal): >+ (JSC::WebAssemblyPrototype::create): >+ (JSC::WebAssemblyPrototype::finishCreation): >+ * wasm/js/WebAssemblyPrototype.h: >+ > 2018-04-28 Saam Barati <sbarati@apple.com> > > We don't model regexp effects properly >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index fc0ba270048186b77f44bf8ef52dac0e816669fc..067bb6e062b0280370e2651145ae187d4b7cfe5c 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,23 @@ >+2018-04-28 Oleksandr Skachkov <gskachkov@gmail.com> >+ >+ WebAssembly: add support for stream APIs - JavaScript API >+ https://bugs.webkit.org/show_bug.cgi?id=183442 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Add WebAssembly streaming API to WebCore. >+ >+ * Configurations/FeatureDefines.xcconfig: >+ * bindings/js/JSDOMWindowBase.cpp: >+ (WebCore::tryAllocate): >+ (WebCore::isResponseCorrect): >+ (WebCore::handleResponseOnStreamingAction): >+ (WebCore::JSDOMWindowBase::compileStreaming): >+ (WebCore::JSDOMWindowBase::instantiateStreaming): >+ * bindings/js/JSDOMWindowBase.h: >+ * bindings/js/JSRemoteDOMWindowBase.cpp: >+ * bindings/js/JSWorkerGlobalScopeBase.cpp: >+ > 2018-04-28 Sihui Liu <sihui_liu@apple.com> > > [Cocoa] Set HTTPOnly flag when converting Cookie to NSHTTPCookie >diff --git a/Source/WebCore/PAL/ChangeLog b/Source/WebCore/PAL/ChangeLog >index 2f9fb5991c075aaf043e754f339505ffd539e4ed..12494b42729fdb203ef60e2ccb6e70c46f6fc81b 100644 >--- a/Source/WebCore/PAL/ChangeLog >+++ b/Source/WebCore/PAL/ChangeLog >@@ -1,3 +1,14 @@ >+2018-04-28 Oleksandr Skachkov <gskachkov@gmail.com> >+ >+ WebAssembly: add support for stream APIs - JavaScript API >+ https://bugs.webkit.org/show_bug.cgi?id=183442 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Add WEBASSEMBLY_STREAMING_API feature flag >+ >+ * Configurations/FeatureDefines.xcconfig: >+ > 2018-04-26 Jer Noble <jer.noble@apple.com> > > WK_COCOA_TOUCH all the things. >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index 2ca3cdf1450ec2dbed89c81da56218169d7e28c7..1fc7929e574cfbd3247542d947f7d61d9ee3d838 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,14 @@ >+2018-04-28 Oleksandr Skachkov <gskachkov@gmail.com> >+ >+ WebAssembly: add support for stream APIs - JavaScript API >+ https://bugs.webkit.org/show_bug.cgi?id=183442 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Add WEBASSEMBLY_STREAMING_API feature flag >+ >+ * Configurations/FeatureDefines.xcconfig: >+ > 2018-04-28 Andy Estes <aestes@apple.com> > > [iOS] Present an action sheet when long-pressing on PDF links >diff --git a/Source/WebKitLegacy/mac/ChangeLog b/Source/WebKitLegacy/mac/ChangeLog >index 56fd0cb47bf6753964f7330baea8577b140c4cb3..07886c03d4b6035b166deb5707217804d01dc9b3 100644 >--- a/Source/WebKitLegacy/mac/ChangeLog >+++ b/Source/WebKitLegacy/mac/ChangeLog >@@ -1,3 +1,14 @@ >+2018-04-28 Oleksandr Skachkov <gskachkov@gmail.com> >+ >+ WebAssembly: add support for stream APIs - JavaScript API >+ https://bugs.webkit.org/show_bug.cgi?id=183442 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Add WEBASSEMBLY_STREAMINNG_API feature flag >+ >+ * Configurations/FeatureDefines.xcconfig: >+ > 2018-04-27 Chris Dumez <cdumez@apple.com> > > Use WindowProxy instead of DOMWindow in our IDL >diff --git a/Source/JavaScriptCore/CMakeLists.txt b/Source/JavaScriptCore/CMakeLists.txt >index fdd5f6f16e2cb1877a7463ce18b1206a33cc4dbe..b78c037c29e4e4631434152acfbf8d9b81a47fac 100644 >--- a/Source/JavaScriptCore/CMakeLists.txt >+++ b/Source/JavaScriptCore/CMakeLists.txt >@@ -929,6 +929,8 @@ set(JavaScriptCore_PRIVATE_FRAMEWORK_HEADERS > wasm/WasmTierUpCount.h > > wasm/js/JSWebAssemblyModule.h >+ wasm/js/WebAssemblyPrototype.h >+ > > yarr/RegularExpression.h > yarr/Yarr.h >@@ -1121,6 +1123,7 @@ set(JavaScriptCore_BUILTINS_SOURCES > ${JAVASCRIPTCORE_DIR}/builtins/StringPrototype.js > ${JAVASCRIPTCORE_DIR}/builtins/TypedArrayConstructor.js > ${JAVASCRIPTCORE_DIR}/builtins/TypedArrayPrototype.js >+ ${JAVASCRIPTCORE_DIR}/builtins/WebAssemblyPrototype.js > ) > > add_custom_command( >diff --git a/Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig b/Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig >index 50840d826a4f8ce055531a194735df51b5167faa..17b66798a8437de3f4588bbcf0dc5260d92a578c 100644 >--- a/Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig >+++ b/Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig >@@ -355,6 +355,8 @@ ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN_macosx = ENABLE_VIDEO_USES_ELEMENT_FULLSCRE > > ENABLE_WEBASSEMBLY = ; > >+ENABLE_WEBASSEMBLY_STREAMING_API = ; >+ > ENABLE_WEBGL = ENABLE_WEBGL; > > ENABLE_WEBGL2 = ENABLE_WEBGL2; >@@ -381,4 +383,4 @@ ENABLE_WIRELESS_PLAYBACK_TARGET = ENABLE_WIRELESS_PLAYBACK_TARGET; > > ENABLE_XSLT = ENABLE_XSLT; > >-FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXTRA_ZOOM_MODE) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(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_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_INTL_PLURAL_RULES) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_JS_ASYNC_ITERATION) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MINIMAL_SIMULATOR) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT); >+FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXTRA_ZOOM_MODE) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(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_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_INTL_PLURAL_RULES) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_JS_ASYNC_ITERATION) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MINIMAL_SIMULATOR) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBASSEMBLY_STREAMING_API) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT); >diff --git a/Source/JavaScriptCore/DerivedSources.make b/Source/JavaScriptCore/DerivedSources.make >index 1012ff649781ef5162cb5d3eca60e4ae8be5ad14..d95cac50b5d6f567a8aeb87d5e390c8d88ff910f 100644 >--- a/Source/JavaScriptCore/DerivedSources.make >+++ b/Source/JavaScriptCore/DerivedSources.make >@@ -124,6 +124,7 @@ JavaScriptCore_BUILTINS_SOURCES = \ > $(JavaScriptCore)/builtins/StringPrototype.js \ > $(JavaScriptCore)/builtins/TypedArrayConstructor.js \ > $(JavaScriptCore)/builtins/TypedArrayPrototype.js \ >+ $(JavaScriptCore)/builtins/WebAssemblyPrototype.js \ > # > > # The combined output file depends on the contents of builtins and generator scripts, so >diff --git a/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj b/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj >index 94435d8ae573baedffb1f6ad95dd0ce0225b5e73..9ebae9f8b8201358cb03a1929911be7d90de797f 100644 >--- a/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj >+++ b/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj >@@ -352,7 +352,7 @@ > 0F61832F1C45BF070072450B /* AirLowerAfterRegAlloc.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F6183261C45BF070072450B /* AirLowerAfterRegAlloc.h */; }; > 0F6183311C45BF070072450B /* AirLowerMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F6183281C45BF070072450B /* AirLowerMacros.h */; }; > 0F61833C1C45F62A0072450B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 51F0EB6105C86C6B00E6DF1B /* Foundation.framework */; }; >- 0F61833D1C45F62A0072450B /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 932F5BD90822A1C700736975 /* JavaScriptCore.framework */; }; >+ 0F61833D1C45F62A0072450B /* .framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 932F5BD90822A1C700736975 /* .framework */; }; > 0F6183451C45F6600072450B /* testair.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0F6183441C45F6600072450B /* testair.cpp */; settings = {COMPILER_FLAGS = "-O0 -DRELEASE_WITHOUT_OPTIMIZATIONS"; }; }; > 0F620174143FCD330068B77C /* DFGVariableAccessData.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F620172143FCD2F0068B77C /* DFGVariableAccessData.h */; }; > 0F620176143FCD3B0068B77C /* DFGBasicBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F620170143FCD2F0068B77C /* DFGBasicBlock.h */; }; >@@ -437,7 +437,7 @@ > 0F919D11157F332C004A4E7D /* JSSegmentedVariableObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F919D0F157F3327004A4E7D /* JSSegmentedVariableObject.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 0F919D2615853CE3004A4E7D /* Watchpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F919D2315853CDE004A4E7D /* Watchpoint.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 0F9327521C20BCBA00CF6564 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 51F0EB6105C86C6B00E6DF1B /* Foundation.framework */; }; >- 0F9327531C20BCBA00CF6564 /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 932F5BD90822A1C700736975 /* JavaScriptCore.framework */; }; >+ 0F9327531C20BCBA00CF6564 /* .framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 932F5BD90822A1C700736975 /* .framework */; }; > 0F93275B1C20BCDF00CF6564 /* dynbench.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0F93275A1C20BCDF00CF6564 /* dynbench.cpp */; }; > 0F93275F1C21EF7F00CF6564 /* JSObjectInlines.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F93275E1C21EF7F00CF6564 /* JSObjectInlines.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 0F93329E14CA7DC50085F3C6 /* CallLinkStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F93329414CA7DC10085F3C6 /* CallLinkStatus.h */; settings = {ATTRIBUTES = (Private, ); }; }; >@@ -663,7 +663,7 @@ > 0FEC858F1BDACDC70080FF74 /* AirTmpInlines.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FEC856A1BDACDC70080FF74 /* AirTmpInlines.h */; }; > 0FEC85911BDACDC70080FF74 /* AirValidate.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FEC856C1BDACDC70080FF74 /* AirValidate.h */; }; > 0FEC85A31BDB5CF10080FF74 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 51F0EB6105C86C6B00E6DF1B /* Foundation.framework */; }; >- 0FEC85A41BDB5CF10080FF74 /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 932F5BD90822A1C700736975 /* JavaScriptCore.framework */; }; >+ 0FEC85A41BDB5CF10080FF74 /* .framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 932F5BD90822A1C700736975 /* .framework */; }; > 0FEC85AF1BDB5D5E0080FF74 /* testb3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0FEC85AE1BDB5D5E0080FF74 /* testb3.cpp */; settings = {COMPILER_FLAGS = "-O0 -DRELEASE_WITHOUT_OPTIMIZATIONS"; }; }; > 0FEC85B31BDED9570080FF74 /* B3ConstPtrValue.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FEC85B21BDED9570080FF74 /* B3ConstPtrValue.h */; }; > 0FEC85BA1BE1462F0080FF74 /* B3InsertionSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FEC85B51BE1462F0080FF74 /* B3InsertionSet.h */; }; >@@ -725,7 +725,7 @@ > 0FFFC95E14EF90B700C72532 /* DFGPredictionPropagationPhase.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FFFC95214EF909500C72532 /* DFGPredictionPropagationPhase.h */; }; > 0FFFC96014EF90BD00C72532 /* DFGVirtualRegisterAllocationPhase.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FFFC95414EF909500C72532 /* DFGVirtualRegisterAllocationPhase.h */; }; > 140D17D70E8AD4A9000CD17D /* JSBasePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 140D17D60E8AD4A9000CD17D /* JSBasePrivate.h */; settings = {ATTRIBUTES = (Private, ); }; }; >- 141211310A48794D00480255 /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 932F5BD90822A1C700736975 /* JavaScriptCore.framework */; }; >+ 141211310A48794D00480255 /* .framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 932F5BD90822A1C700736975 /* .framework */; }; > 141211340A48795800480255 /* minidom.c in Sources */ = {isa = PBXBuildFile; fileRef = 141211020A48780900480255 /* minidom.c */; }; > 14142E511B796ECE00F4BF4B /* UnlinkedFunctionExecutable.h in Headers */ = {isa = PBXBuildFile; fileRef = 14142E501B796ECE00F4BF4B /* UnlinkedFunctionExecutable.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 14142E531B796EDD00F4BF4B /* ExecutableInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 14142E521B796EDD00F4BF4B /* ExecutableInfo.h */; settings = {ATTRIBUTES = (Private, ); }; }; >@@ -787,7 +787,7 @@ > 14B8EC720A5652090062BE54 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6560A4CF04B3B3E7008AE952 /* CoreFoundation.framework */; }; > 14BA78F113AAB88F005B7C2C /* SlotVisitor.h in Headers */ = {isa = PBXBuildFile; fileRef = 14BA78F013AAB88F005B7C2C /* SlotVisitor.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 14BA7A9813AADFF8005B7C2C /* Heap.h in Headers */ = {isa = PBXBuildFile; fileRef = 14BA7A9613AADFF8005B7C2C /* Heap.h */; settings = {ATTRIBUTES = (Private, ); }; }; >- 14BD59C50A3E8F9F00BAF59C /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 932F5BD90822A1C700736975 /* JavaScriptCore.framework */; }; >+ 14BD59C50A3E8F9F00BAF59C /* .framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 932F5BD90822A1C700736975 /* .framework */; }; > 14BE7D3317135CF400D1807A /* WeakInlines.h in Headers */ = {isa = PBXBuildFile; fileRef = 14BE7D3217135CF400D1807A /* WeakInlines.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 14BFCE6910CDB1FC00364CCE /* WeakGCMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 14BFCE6810CDB1FC00364CCE /* WeakGCMap.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 14CA958B16AB50DE00938A06 /* StaticPropertyAnalyzer.h in Headers */ = {isa = PBXBuildFile; fileRef = 14CA958A16AB50DE00938A06 /* StaticPropertyAnalyzer.h */; settings = {ATTRIBUTES = (Private, ); }; }; >@@ -1053,7 +1053,7 @@ > 62EC9BB71B7EB07C00303AD1 /* CallFrameShuffleData.h in Headers */ = {isa = PBXBuildFile; fileRef = 62EC9BB51B7EB07C00303AD1 /* CallFrameShuffleData.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 62F2AA381B0BEDE300610C7A /* DFGLazyNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 62A9A29F1B0BED4800BD54CA /* DFGLazyNode.h */; }; > 6507D29E0E871E5E00D7D896 /* JSTypeInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 6507D2970E871E4A00D7D896 /* JSTypeInfo.h */; settings = {ATTRIBUTES = (Private, ); }; }; >- 651122FD14046A4C002B101D /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 932F5BD90822A1C700736975 /* JavaScriptCore.framework */; }; >+ 651122FD14046A4C002B101D /* .framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 932F5BD90822A1C700736975 /* .framework */; }; > 651122FE14046A4C002B101D /* libedit.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 5D5D8AD00E0D0EBE00F9C692 /* libedit.dylib */; }; > 6511230714046B0A002B101D /* testRegExp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 651122E5140469BA002B101D /* testRegExp.cpp */; }; > 6514F21918B3E1670098FF8B /* Bytecodes.h in Headers */ = {isa = PBXBuildFile; fileRef = 6514F21718B3E1670098FF8B /* Bytecodes.h */; settings = {ATTRIBUTES = (Private, ); }; }; >@@ -1209,7 +1209,7 @@ > 932F5BD60822A1C700736975 /* libobjc.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 51F0EC0705C86C9A00E6DF1B /* libobjc.dylib */; }; > 932F5BD70822A1C700736975 /* libicucore.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9322A00306C341D3009067BB /* libicucore.dylib */; }; > 932F5BDD0822A1C700736975 /* jsc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 45E12D8806A49B0F00E9DF84 /* jsc.cpp */; }; >- 932F5BEA0822A1C700736975 /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 932F5BD90822A1C700736975 /* JavaScriptCore.framework */; }; >+ 932F5BEA0822A1C700736975 /* .framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 932F5BD90822A1C700736975 /* .framework */; }; > 933040040E6A749400786E6A /* SmallStrings.h in Headers */ = {isa = PBXBuildFile; fileRef = 93303FEA0E6A72C000786E6A /* SmallStrings.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 960097A60EBABB58007A7297 /* LabelScope.h in Headers */ = {isa = PBXBuildFile; fileRef = 960097A50EBABB58007A7297 /* LabelScope.h */; }; > 9688CB150ED12B4E001D649F /* AssemblerBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 9688CB130ED12B4E001D649F /* AssemblerBuffer.h */; settings = {ATTRIBUTES = (Private, ); }; }; >@@ -1761,7 +1761,7 @@ > FE4D55B81AE716CA0052E459 /* IterationStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = FE4D55B71AE716CA0052E459 /* IterationStatus.h */; settings = {ATTRIBUTES = (Private, ); }; }; > FE5068651AE246390009DAB7 /* DeferredSourceDump.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5068641AE246390009DAB7 /* DeferredSourceDump.h */; settings = {ATTRIBUTES = (Private, ); }; }; > FE533CA51F217DB30016A1FE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 51F0EB6105C86C6B00E6DF1B /* Foundation.framework */; }; >- FE533CA61F217DB30016A1FE /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 932F5BD90822A1C700736975 /* JavaScriptCore.framework */; }; >+ FE533CA61F217DB30016A1FE /* .framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 932F5BD90822A1C700736975 /* .framework */; }; > FE533CAD1F217EA50016A1FE /* testmasm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE533CA01F217C310016A1FE /* testmasm.cpp */; }; > FE54DEFB1E8C6D8800A892C5 /* DisallowVMReentry.h in Headers */ = {isa = PBXBuildFile; fileRef = FE54DEFA1E8C6D7200A892C5 /* DisallowVMReentry.h */; settings = {ATTRIBUTES = (Private, ); }; }; > FE54DEFF1E8D76FA00A892C5 /* DisallowScope.h in Headers */ = {isa = PBXBuildFile; fileRef = FE54DEFE1E8D742800A892C5 /* DisallowScope.h */; settings = {ATTRIBUTES = (Private, ); }; }; >@@ -3819,7 +3819,7 @@ > 930DAD030FB1EB1A0082D205 /* NodeConstructors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NodeConstructors.h; sourceTree = "<group>"; }; > 9322A00306C341D3009067BB /* libicucore.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libicucore.dylib; path = /usr/lib/libicucore.dylib; sourceTree = "<absolute>"; }; > 932F5BD80822A1C700736975 /* Info.plist */ = {isa = PBXFileReference; indentWidth = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; tabWidth = 8; usesTabs = 1; }; >- 932F5BD90822A1C700736975 /* JavaScriptCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = JavaScriptCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; >+ 932F5BD90822A1C700736975 /* .framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = .framework; sourceTree = BUILT_PRODUCTS_DIR; }; > 932F5BE10822A1C700736975 /* jsc */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = jsc; sourceTree = BUILT_PRODUCTS_DIR; }; > 93303FE80E6A72B500786E6A /* SmallStrings.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SmallStrings.cpp; sourceTree = "<group>"; }; > 93303FEA0E6A72C000786E6A /* SmallStrings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SmallStrings.h; sourceTree = "<group>"; }; >@@ -4771,7 +4771,7 @@ > buildActionMask = 2147483647; > files = ( > 0F61833C1C45F62A0072450B /* Foundation.framework in Frameworks */, >- 0F61833D1C45F62A0072450B /* JavaScriptCore.framework in Frameworks */, >+ 0F61833D1C45F62A0072450B /* .framework in Frameworks */, > ); > runOnlyForDeploymentPostprocessing = 0; > }; >@@ -4780,7 +4780,7 @@ > buildActionMask = 2147483647; > files = ( > 0F9327521C20BCBA00CF6564 /* Foundation.framework in Frameworks */, >- 0F9327531C20BCBA00CF6564 /* JavaScriptCore.framework in Frameworks */, >+ 0F9327531C20BCBA00CF6564 /* .framework in Frameworks */, > ); > runOnlyForDeploymentPostprocessing = 0; > }; >@@ -4789,7 +4789,7 @@ > buildActionMask = 2147483647; > files = ( > 0FEC85A31BDB5CF10080FF74 /* Foundation.framework in Frameworks */, >- 0FEC85A41BDB5CF10080FF74 /* JavaScriptCore.framework in Frameworks */, >+ 0FEC85A41BDB5CF10080FF74 /* .framework in Frameworks */, > ); > runOnlyForDeploymentPostprocessing = 0; > }; >@@ -4805,7 +4805,7 @@ > buildActionMask = 2147483647; > files = ( > 14B8EC720A5652090062BE54 /* CoreFoundation.framework in Frameworks */, >- 141211310A48794D00480255 /* JavaScriptCore.framework in Frameworks */, >+ 141211310A48794D00480255 /* .framework in Frameworks */, > ); > runOnlyForDeploymentPostprocessing = 0; > }; >@@ -4814,7 +4814,7 @@ > buildActionMask = 2147483647; > files = ( > 4443AE3316E188D90076F110 /* Foundation.framework in Frameworks */, >- 14BD59C50A3E8F9F00BAF59C /* JavaScriptCore.framework in Frameworks */, >+ 14BD59C50A3E8F9F00BAF59C /* .framework in Frameworks */, > ); > runOnlyForDeploymentPostprocessing = 0; > }; >@@ -4822,7 +4822,7 @@ > isa = PBXFrameworksBuildPhase; > buildActionMask = 2147483647; > files = ( >- 651122FD14046A4C002B101D /* JavaScriptCore.framework in Frameworks */, >+ 651122FD14046A4C002B101D /* .framework in Frameworks */, > 651122FE14046A4C002B101D /* libedit.dylib in Frameworks */, > ); > runOnlyForDeploymentPostprocessing = 0; >@@ -4845,7 +4845,7 @@ > isa = PBXFrameworksBuildPhase; > buildActionMask = 2147483647; > files = ( >- 932F5BEA0822A1C700736975 /* JavaScriptCore.framework in Frameworks */, >+ 932F5BEA0822A1C700736975 /* .framework in Frameworks */, > 5D5D8AD10E0D0EBE00F9C692 /* libedit.dylib in Frameworks */, > ); > runOnlyForDeploymentPostprocessing = 0; >@@ -4855,7 +4855,7 @@ > buildActionMask = 2147483647; > files = ( > FE533CA51F217DB30016A1FE /* Foundation.framework in Frameworks */, >- FE533CA61F217DB30016A1FE /* JavaScriptCore.framework in Frameworks */, >+ FE533CA61F217DB30016A1FE /* .framework in Frameworks */, > ); > runOnlyForDeploymentPostprocessing = 0; > }; >@@ -4874,7 +4874,7 @@ > 0FEC85AD1BDB5CF10080FF74 /* testb3 */, > FE533CAC1F217DB40016A1FE /* testmasm */, > 6511230514046A4C002B101D /* testRegExp */, >- 932F5BD90822A1C700736975 /* JavaScriptCore.framework */, >+ 932F5BD90822A1C700736975 /* .framework */, > ); > name = Products; > sourceTree = "<group>"; >@@ -9754,7 +9754,7 @@ > name = JavaScriptCore; > productInstallPath = "${SYSTEM_LIBRARY_DIR}/Frameworks/WebKit.framework/Versions/A/Frameworks"; > productName = JavaScriptCore; >- productReference = 932F5BD90822A1C700736975 /* JavaScriptCore.framework */; >+ productReference = 932F5BD90822A1C700736975 /* .framework */; > productType = "com.apple.product-type.framework"; > }; > 932F5BDA0822A1C700736975 /* jsc */ = { >diff --git a/Source/JavaScriptCore/builtins/BuiltinNames.h b/Source/JavaScriptCore/builtins/BuiltinNames.h >index a34f343da7f0c24291dad73cafefbf74b1b5779d..d583b58a15b58c31996a8bc53abad2cb664fc649 100644 >--- a/Source/JavaScriptCore/builtins/BuiltinNames.h >+++ b/Source/JavaScriptCore/builtins/BuiltinNames.h >@@ -190,6 +190,8 @@ namespace JSC { > macro(LinkError) \ > macro(RuntimeError) \ > macro(meta) \ >+ macro(webAssemblyCompileStreamingInternal) \ >+ macro(webAssemblyInstantiateStreamingInternal) \ > > namespace Symbols { > #define DECLARE_BUILTIN_STATIC_SYMBOLS(name) extern SymbolImpl::StaticSymbolImpl name##Symbol; >diff --git a/Source/JavaScriptCore/builtins/WebAssemblyPrototype.js b/Source/JavaScriptCore/builtins/WebAssemblyPrototype.js >new file mode 100644 >index 0000000000000000000000000000000000000000..4e051fece50835515ff9b7f5e99c57f15492fbc0 >--- /dev/null >+++ b/Source/JavaScriptCore/builtins/WebAssemblyPrototype.js >@@ -0,0 +1,37 @@ >+/* >+ * Copyright (C) 2018 Oleksandr Skachkov <gskachkov@gmail.com>. >+ * >+ * Redistribution and use in source and binary forms, with or without >+ * modification, are permitted provided that the following conditions >+ * are met: >+ * 1. Redistributions of source code must retain the above copyright >+ * notice, this list of conditions and the following disclaimer. >+ * 2. Redistributions in binary form must reproduce the above copyright >+ * notice, this list of conditions and the following disclaimer in the >+ * documentation and/or other materials provided with the distribution. >+ * >+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY >+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE >+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR >+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR >+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, >+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, >+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR >+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY >+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT >+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE >+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. >+ */ >+ >+function compileStreaming(argument) { >+ "use strict"; >+ >+ return @Promise.@resolve(argument).@then(@webAssemblyCompileStreamingInternal); >+} >+ >+function instantiateStreaming(argument) { >+ "use strict"; >+ >+ return @Promise.@resolve(argument).@then(@webAssemblyInstantiateStreamingInternal); >+} >+ >diff --git a/Source/JavaScriptCore/jsc.cpp b/Source/JavaScriptCore/jsc.cpp >index 4a73e87e96e0bffd8ce1a971928f385f67f2067e..3b1724848352f4248c94cc078667197d2f8523ad 100644 >--- a/Source/JavaScriptCore/jsc.cpp >+++ b/Source/JavaScriptCore/jsc.cpp >@@ -642,6 +642,8 @@ const GlobalObjectMethodTable GlobalObject::s_globalObjectMethodTable = { > nullptr, // moduleLoaderEvaluate > nullptr, // promiseRejectionTracker > nullptr, // defaultLanguage >+ nullptr, // compileStreaming >+ nullptr, // instantinateStreaming > }; > > GlobalObject::GlobalObject(VM& vm, Structure* structure) >diff --git a/Source/JavaScriptCore/runtime/JSGlobalObject.cpp b/Source/JavaScriptCore/runtime/JSGlobalObject.cpp >index 95ed638316653c6c60329370463218116787f3ba..f00350eb10e47f9c8f57717f74b6047ccf05da9b 100644 >--- a/Source/JavaScriptCore/runtime/JSGlobalObject.cpp >+++ b/Source/JavaScriptCore/runtime/JSGlobalObject.cpp >@@ -169,6 +169,7 @@ > #include "WeakMapPrototype.h" > #include "WeakSetConstructor.h" > #include "WeakSetPrototype.h" >+#include "WebAssemblyPrototype.h" > #include "WebAssemblyToJSCallee.h" > #include <wtf/RandomNumber.h> > >@@ -286,6 +287,8 @@ const GlobalObjectMethodTable JSGlobalObject::s_globalObjectMethodTable = { > nullptr, // moduleLoaderEvaluate > nullptr, // promiseRejectionTracker > nullptr, // defaultLanguage >+ nullptr, // compileStreaming >+ nullptr, // instantiateStreaming > }; > > /* Source for JSGlobalObject.lut.h >@@ -939,6 +942,11 @@ putDirectWithoutTransition(vm, vm.propertyNames-> jsName, lowerName ## Construct > GlobalPropertyInfo(vm.propertyNames->builtinNames().setBucketHeadPrivateName(), privateFuncSetBucketHead, PropertyAttribute::DontEnum | PropertyAttribute::DontDelete | PropertyAttribute::ReadOnly), > GlobalPropertyInfo(vm.propertyNames->builtinNames().setBucketNextPrivateName(), privateFuncSetBucketNext, PropertyAttribute::DontEnum | PropertyAttribute::DontDelete | PropertyAttribute::ReadOnly), > GlobalPropertyInfo(vm.propertyNames->builtinNames().setBucketKeyPrivateName(), privateFuncSetBucketKey, PropertyAttribute::DontEnum | PropertyAttribute::DontDelete | PropertyAttribute::ReadOnly), >+#if ENABLE(WEBASSEMBLY) >+ // WebAssembly Streaming API >+ GlobalPropertyInfo(vm.propertyNames->builtinNames().webAssemblyCompileStreamingInternalPrivateName(), JSFunction::create(vm, this, 1, String(), webAssemblyCompileStreamingInternal), PropertyAttribute::DontEnum | PropertyAttribute::DontDelete | PropertyAttribute::ReadOnly), >+ GlobalPropertyInfo(vm.propertyNames->builtinNames().webAssemblyInstantiateStreamingInternalPrivateName(), JSFunction::create(vm, this, 1, String(), webAssemblyInstantiateStreamingInternal), PropertyAttribute::DontEnum | PropertyAttribute::DontDelete | PropertyAttribute::ReadOnly), >+#endif > #if !ASSERT_DISABLED > GlobalPropertyInfo(vm.propertyNames->builtinNames().assertPrivateName(), JSFunction::create(vm, this, 1, String(), assertCall), PropertyAttribute::DontEnum | PropertyAttribute::DontDelete | PropertyAttribute::ReadOnly), > #endif >diff --git a/Source/JavaScriptCore/runtime/JSGlobalObject.h b/Source/JavaScriptCore/runtime/JSGlobalObject.h >index 759b87070b24a9e01a2a8361730d9bf232428238..353733ebc6ac2fad4dcbe618ea45db2d64779b66 100644 >--- a/Source/JavaScriptCore/runtime/JSGlobalObject.h >+++ b/Source/JavaScriptCore/runtime/JSGlobalObject.h >@@ -32,6 +32,7 @@ > #include "JSCPoison.h" > #include "JSClassRef.h" > #include "JSGlobalLexicalEnvironment.h" >+#include "JSPromiseDeferred.h" > #include "JSSegmentedVariableObject.h" > #include "JSWeakObjectMapRefInternal.h" > #include "LazyProperty.h" >@@ -217,6 +218,12 @@ struct GlobalObjectMethodTable { > > typedef String (*DefaultLanguageFunctionPtr)(); > DefaultLanguageFunctionPtr defaultLanguage; >+ >+ typedef void (*CompileStreamingPtr)(JSGlobalObject*, ExecState*, JSPromiseDeferred*, JSValue); >+ CompileStreamingPtr compileStreaming; >+ >+ typedef void (*InstantiateStreamingPtr)(JSGlobalObject*, ExecState*, JSPromiseDeferred*, JSValue, JSObject*); >+ InstantiateStreamingPtr instantiateStreaming; > }; > > class JSGlobalObject : public JSSegmentedVariableObject { >diff --git a/Source/JavaScriptCore/runtime/Options.h b/Source/JavaScriptCore/runtime/Options.h >index b3e7954038c6785ef6adc44f7ec2db76ccc72255..7d520e5b22b82a895450ba8164d7ade5166480c0 100644 >--- a/Source/JavaScriptCore/runtime/Options.h >+++ b/Source/JavaScriptCore/runtime/Options.h >@@ -118,6 +118,12 @@ constexpr bool enableIntlPluralRules = true; > constexpr bool enableIntlPluralRules = false; > #endif > >+#if ENABLE(WEBASSEMBLY_STREAMING_API) >+constexpr bool enableWebAssemblyStreamingApi = true; >+#else >+constexpr bool enableWebAssemblyStreamingApi = false; >+#endif >+ > #define JSC_OPTIONS(v) \ > v(bool, validateOptions, false, Normal, "crashes if mis-typed JSC options were passed to the VM") \ > v(unsigned, dumpOptions, 0, Normal, "dumps JSC options (0 = None, 1 = Overridden only, 2 = All, 3 = Verbose)") \ >@@ -490,6 +496,7 @@ constexpr bool enableIntlPluralRules = false; > v(bool, crashIfWebAssemblyCantFastMemory, false, Normal, "If true, we will crash if we can't obtain fast memory for wasm.") \ > v(unsigned, maxNumWebAssemblyFastMemories, 4, Normal, nullptr) \ > v(bool, useFastTLSForWasmContext, true, Normal, "If true, we will store context in fast TLS. If false, we will pin it to a register.") \ >+ v(bool, useWebAssemblyStreamingApi, enableWebAssemblyStreamingApi, Normal, "Allow to run WebAssembly's Streaming API") \ > v(bool, useCallICsForWebAssemblyToJSCalls, true, Normal, "If true, we will use CallLinkInfo to inline cache Wasm to JS calls.") \ > v(bool, useEagerWebAssemblyModuleHashing, false, Normal, "Unnamed WebAssembly modules are identified in backtraces through their hash, if available.") \ > v(bool, useObjectRestSpread, true, Normal, "If true, we will enable Object Rest/Spread feature.") \ >diff --git a/Source/JavaScriptCore/runtime/PromiseDeferredTimer.cpp b/Source/JavaScriptCore/runtime/PromiseDeferredTimer.cpp >index 087804695cdf35a7494bbd589442904eb9ca7039..db851dc0e8338f4405e4c5dbfb6278ee1353aa63 100644 >--- a/Source/JavaScriptCore/runtime/PromiseDeferredTimer.cpp >+++ b/Source/JavaScriptCore/runtime/PromiseDeferredTimer.cpp >@@ -120,6 +120,21 @@ void PromiseDeferredTimer::addPendingPromise(JSPromiseDeferred* ticket, Vector<S > #endif > } > >+bool PromiseDeferredTimer::hasPendingPromise(JSPromiseDeferred* ticket) >+{ >+ ASSERT(m_vm->currentThreadIsHoldingAPILock()); >+ return m_pendingPromises.contains(ticket); >+} >+ >+bool PromiseDeferredTimer::hasDependancyInPendingPromise(JSPromiseDeferred* ticket, JSCell* dependency) >+{ >+ ASSERT(m_vm->currentThreadIsHoldingAPILock()); >+ ASSERT(m_pendingPromises.contains(ticket)); >+ >+ auto result = m_pendingPromises.get(ticket); >+ return result.contains(dependency); >+} >+ > bool PromiseDeferredTimer::cancelPendingPromise(JSPromiseDeferred* ticket) > { > ASSERT(m_vm->currentThreadIsHoldingAPILock()); >diff --git a/Source/JavaScriptCore/runtime/PromiseDeferredTimer.h b/Source/JavaScriptCore/runtime/PromiseDeferredTimer.h >index 7ef577e28467b1b4588a298eb17f45d32ebab797..cbc5052d6d667e90fa3fac3ea56435baebe3f914 100644 >--- a/Source/JavaScriptCore/runtime/PromiseDeferredTimer.h >+++ b/Source/JavaScriptCore/runtime/PromiseDeferredTimer.h >@@ -47,6 +47,8 @@ public: > void doWork() override; > > void addPendingPromise(JSPromiseDeferred*, Vector<Strong<JSCell>>&& dependencies); >+ bool hasPendingPromise(JSPromiseDeferred* ticket); >+ bool hasDependancyInPendingPromise(JSPromiseDeferred* ticket, JSCell* dependency); > // JSPromiseDeferred should handle canceling when the promise is resolved or rejected. > bool cancelPendingPromise(JSPromiseDeferred*); > >diff --git a/Source/JavaScriptCore/wasm/js/WebAssemblyPrototype.cpp b/Source/JavaScriptCore/wasm/js/WebAssemblyPrototype.cpp >index c7ad0e3ddca8d64449af159171afcb86a380ea69..6b8be61ea43c7a5e05b56a9822c617b39a40a705 100644 >--- a/Source/JavaScriptCore/wasm/js/WebAssemblyPrototype.cpp >+++ b/Source/JavaScriptCore/wasm/js/WebAssemblyPrototype.cpp >@@ -1,5 +1,6 @@ > /* > * Copyright (C) 2016-2017 Apple Inc. All rights reserved. >+ * Copyright (C) 2018 Oleksandr Skachkov <gskachkov@gmail.com>. > * > * Redistribution and use in source and binary forms, with or without > * modification, are permitted provided that the following conditions >@@ -31,6 +32,7 @@ > #include "CatchScope.h" > #include "Exception.h" > #include "FunctionPrototype.h" >+#include "JSCBuiltins.h" > #include "JSCInlines.h" > #include "JSModuleNamespaceObject.h" > #include "JSPromiseDeferred.h" >@@ -39,6 +41,7 @@ > #include "JSWebAssemblyInstance.h" > #include "JSWebAssemblyModule.h" > #include "ObjectConstructor.h" >+#include "Options.h" > #include "PromiseDeferredTimer.h" > #include "StrongInlines.h" > #include "ThrowScope.h" >@@ -80,6 +83,32 @@ static void reject(ExecState* exec, CatchScope& catchScope, JSPromiseDeferred* p > CLEAR_AND_RETURN_IF_EXCEPTION(catchScope, void()); > } > >+static void webAssemblyModuleValidateAsyncInternal(ExecState* exec, JSPromiseDeferred* promise, Vector<uint8_t>&& source) >+{ >+ VM& vm = exec->vm(); >+ auto* globalObject = exec->lexicalGlobalObject(); >+ >+ Vector<Strong<JSCell>> dependencies; >+ dependencies.append(Strong<JSCell>(vm, globalObject)); >+ >+ vm.promiseDeferredTimer->addPendingPromise(promise, WTFMove(dependencies)); >+ >+ Wasm::Module::validateAsync(&vm.wasmContext, WTFMove(source), createSharedTask<Wasm::Module::CallbackType>([promise, globalObject, &vm] (Wasm::Module::ValidationResult&& result) mutable { >+ vm.promiseDeferredTimer->scheduleWorkSoon(promise, [promise, globalObject, result = WTFMove(result), &vm] () mutable { >+ auto scope = DECLARE_CATCH_SCOPE(vm); >+ ExecState* exec = globalObject->globalExec(); >+ JSValue module = JSWebAssemblyModule::createStub(vm, exec, globalObject->WebAssemblyModuleStructure(), WTFMove(result)); >+ if (UNLIKELY(scope.exception())) { >+ reject(exec, scope, promise); >+ return; >+ } >+ >+ promise->resolve(exec, module); >+ CLEAR_AND_RETURN_IF_EXCEPTION(scope, void()); >+ }); >+ })); >+} >+ > static EncodedJSValue JSC_HOST_CALL webAssemblyCompileFunc(ExecState* exec) > { > VM& vm = exec->vm(); >@@ -91,31 +120,12 @@ static EncodedJSValue JSC_HOST_CALL webAssemblyCompileFunc(ExecState* exec) > > { > auto catchScope = DECLARE_CATCH_SCOPE(vm); >- >- Vector<Strong<JSCell>> dependencies; >- dependencies.append(Strong<JSCell>(vm, globalObject)); >- vm.promiseDeferredTimer->addPendingPromise(promise, WTFMove(dependencies)); >- > Vector<uint8_t> source = createSourceBufferFromValue(vm, exec, exec->argument(0)); > > if (UNLIKELY(catchScope.exception())) > reject(exec, catchScope, promise); >- else { >- Wasm::Module::validateAsync(&vm.wasmContext, WTFMove(source), createSharedTask<Wasm::Module::CallbackType>([promise, globalObject, &vm] (Wasm::Module::ValidationResult&& result) mutable { >- vm.promiseDeferredTimer->scheduleWorkSoon(promise, [promise, globalObject, result = WTFMove(result), &vm] () mutable { >- auto scope = DECLARE_CATCH_SCOPE(vm); >- ExecState* exec = globalObject->globalExec(); >- JSValue module = JSWebAssemblyModule::createStub(vm, exec, globalObject->WebAssemblyModuleStructure(), WTFMove(result)); >- if (UNLIKELY(scope.exception())) { >- reject(exec, scope, promise); >- return; >- } >- >- promise->resolve(exec, module); >- CLEAR_AND_RETURN_IF_EXCEPTION(scope, void()); >- }); >- })); >- } >+ else >+ webAssemblyModuleValidateAsyncInternal(exec, promise, WTFMove(source)); > > return JSValue::encode(promise->promise()); > } >@@ -144,6 +154,14 @@ static void resolve(VM& vm, ExecState* exec, JSPromiseDeferred* promise, JSWebAs > CLEAR_AND_RETURN_IF_EXCEPTION(scope, void()); > } > >+void WebAssemblyPrototype::webAssemblyModuleValidateAsync(ExecState* exec, JSPromiseDeferred* promise, Vector<uint8_t>&& source) >+{ >+ VM& vm = exec->vm(); >+ auto catchScope = DECLARE_CATCH_SCOPE(vm); >+ webAssemblyModuleValidateAsyncInternal(exec, promise, WTFMove(source)); >+ CLEAR_AND_RETURN_IF_EXCEPTION(catchScope, void()); >+} >+ > static void instantiate(VM& vm, ExecState* exec, JSPromiseDeferred* promise, JSWebAssemblyModule* module, JSObject* importObject, const Identifier& moduleKey, Resolve resolveKind, Wasm::CreationMode creationMode) > { > auto scope = DECLARE_CATCH_SCOPE(vm); >@@ -205,6 +223,38 @@ JSValue WebAssemblyPrototype::instantiate(ExecState* exec, JSPromiseDeferred* pr > return promise->promise(); > } > >+static void webAssemblyModuleInstantinateAsyncInternal(ExecState* exec, JSPromiseDeferred* promise, Vector<uint8_t>&& source, JSObject* importObject) >+{ >+ auto* globalObject = exec->lexicalGlobalObject(); >+ VM& vm = exec->vm(); >+ >+ Vector<Strong<JSCell>> dependencies; >+ dependencies.append(Strong<JSCell>(vm, importObject)); >+ dependencies.append(Strong<JSCell>(vm, globalObject)); >+ vm.promiseDeferredTimer->addPendingPromise(promise, WTFMove(dependencies)); >+ >+ Wasm::Module::validateAsync(&vm.wasmContext, WTFMove(source), createSharedTask<Wasm::Module::CallbackType>([promise, importObject, globalObject, &vm] (Wasm::Module::ValidationResult&& result) mutable { >+ vm.promiseDeferredTimer->scheduleWorkSoon(promise, [promise, importObject, globalObject, result = WTFMove(result), &vm] () mutable { >+ auto scope = DECLARE_CATCH_SCOPE(vm); >+ ExecState* exec = globalObject->globalExec(); >+ JSWebAssemblyModule* module = JSWebAssemblyModule::createStub(vm, exec, globalObject->WebAssemblyModuleStructure(), WTFMove(result)); >+ if (UNLIKELY(scope.exception())) >+ return reject(exec, scope, promise); >+ >+ instantiate(vm, exec, promise, module, importObject, JSWebAssemblyInstance::createPrivateModuleKey(), Resolve::WithModuleAndInstance, Wasm::CreationMode::FromJS); >+ CLEAR_AND_RETURN_IF_EXCEPTION(scope, reject(exec, scope, promise)); >+ }); >+ })); >+} >+ >+void WebAssemblyPrototype::webAssemblyModuleInstantinateAsync(ExecState* exec, JSPromiseDeferred* promise, Vector<uint8_t>&& source, JSObject* importedObject) >+{ >+ VM& vm = exec->vm(); >+ auto catchScope = DECLARE_CATCH_SCOPE(vm); >+ webAssemblyModuleInstantinateAsyncInternal(exec, promise, WTFMove(source), importedObject); >+ CLEAR_AND_RETURN_IF_EXCEPTION(catchScope, void()); >+} >+ > static EncodedJSValue JSC_HOST_CALL webAssemblyInstantiateFunc(ExecState* exec) > { > VM& vm = exec->vm(); >@@ -250,10 +300,72 @@ static EncodedJSValue JSC_HOST_CALL webAssemblyValidateFunc(ExecState* exec) > return JSValue::encode(jsBoolean(plan.parseAndValidateModule())); > } > >-WebAssemblyPrototype* WebAssemblyPrototype::create(VM& vm, JSGlobalObject*, Structure* structure) >+EncodedJSValue JSC_HOST_CALL webAssemblyCompileStreamingInternal(ExecState* exec) >+{ >+ VM& vm = exec->vm(); >+ auto* globalObject = exec->lexicalGlobalObject(); >+ auto catchScope = DECLARE_CATCH_SCOPE(vm); >+ >+ JSPromiseDeferred* promise = JSPromiseDeferred::create(exec, globalObject); >+ >+ Vector<Strong<JSCell>> dependencies; >+ dependencies.append(Strong<JSCell>(vm, globalObject)); >+ vm.promiseDeferredTimer->addPendingPromise(promise, WTFMove(dependencies)); >+ >+ if (globalObject->globalObjectMethodTable()->compileStreaming) >+ globalObject->globalObjectMethodTable()->compileStreaming(globalObject, exec, promise, exec->argument(0)); >+ else { >+ // CompileStreaming is not supported in jsc, only in browser environment >+ ASSERT_NOT_REACHED(); >+ } >+ >+ CLEAR_AND_RETURN_IF_EXCEPTION(catchScope, JSValue::encode(promise->promise())); >+ >+ return JSValue::encode(promise->promise()); >+} >+ >+EncodedJSValue JSC_HOST_CALL webAssemblyInstantiateStreamingInternal(ExecState* exec) >+{ >+ VM& vm = exec->vm(); >+ auto throwScope = DECLARE_THROW_SCOPE(vm); >+ auto* globalObject = exec->lexicalGlobalObject(); >+ >+ JSPromiseDeferred* promise = JSPromiseDeferred::create(exec, globalObject); >+ >+ RETURN_IF_EXCEPTION(throwScope, encodedJSValue()); >+ { >+ auto catchScope = DECLARE_CATCH_SCOPE(vm); >+ >+ JSValue importArgument = exec->argument(1); >+ JSObject* importObject = importArgument.getObject(); >+ if (UNLIKELY(!importArgument.isUndefined() && !importObject)) { >+ promise->reject(exec, createTypeError(exec, >+ ASCIILiteral("second argument to WebAssembly.instantiateStreaming must be undefined or an Object"), defaultSourceAppender, runtimeTypeForValue(importArgument))); >+ CLEAR_AND_RETURN_IF_EXCEPTION(catchScope, JSValue::encode(promise->promise())); >+ } else { >+ if (globalObject->globalObjectMethodTable()->instantiateStreaming) { >+ Vector<Strong<JSCell>> dependencies; >+ dependencies.append(Strong<JSCell>(vm, globalObject)); >+ dependencies.append(Strong<JSCell>(vm, importObject)); >+ vm.promiseDeferredTimer->addPendingPromise(promise, WTFMove(dependencies)); >+ >+ // FIXME: <http://webkit.org/b/184888> if there's an importObject and it contains a Memory, then we can compile the module with the right memory type (fast or not) by looking at the memory's type. >+ globalObject->globalObjectMethodTable()->instantiateStreaming(globalObject, exec, promise, exec->argument(0), importObject); >+ } else { >+ // InstantiateStreaming is not supported in jsc, only in browser environment. >+ ASSERT_NOT_REACHED(); >+ } >+ } >+ CLEAR_AND_RETURN_IF_EXCEPTION(catchScope, JSValue::encode(promise->promise())); >+ >+ return JSValue::encode(promise->promise()); >+ } >+} >+ >+WebAssemblyPrototype* WebAssemblyPrototype::create(VM& vm, JSGlobalObject* globalObject, Structure* structure) > { > auto* object = new (NotNull, allocateCell<WebAssemblyPrototype>(vm.heap)) WebAssemblyPrototype(vm, structure); >- object->finishCreation(vm); >+ object->finishCreation(vm, globalObject); > return object; > } > >@@ -262,9 +374,14 @@ Structure* WebAssemblyPrototype::createStructure(VM& vm, JSGlobalObject* globalO > return Structure::create(vm, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), info()); > } > >-void WebAssemblyPrototype::finishCreation(VM& vm) >+void WebAssemblyPrototype::finishCreation(VM& vm, JSGlobalObject* globalObject) > { > Base::finishCreation(vm); >+ >+ if (Options::useWebAssemblyStreamingApi()) { >+ JSC_BUILTIN_FUNCTION_WITHOUT_TRANSITION("compileStreaming", webAssemblyPrototypeCompileStreamingCodeGenerator, static_cast<unsigned>(PropertyAttribute::DontEnum)); >+ JSC_BUILTIN_FUNCTION_WITHOUT_TRANSITION("instantiateStreaming", webAssemblyPrototypeInstantiateStreamingCodeGenerator, static_cast<unsigned>(PropertyAttribute::DontEnum)); >+ } > } > > WebAssemblyPrototype::WebAssemblyPrototype(VM& vm, Structure* structure) >diff --git a/Source/JavaScriptCore/wasm/js/WebAssemblyPrototype.h b/Source/JavaScriptCore/wasm/js/WebAssemblyPrototype.h >index bbb226dbcc699e3f0f0b8af1c95470559c6954a1..5f7c56a6933faae85bc9ec215f92a0d3842a2898 100644 >--- a/Source/JavaScriptCore/wasm/js/WebAssemblyPrototype.h >+++ b/Source/JavaScriptCore/wasm/js/WebAssemblyPrototype.h >@@ -1,5 +1,6 @@ > /* > * Copyright (C) 2016 Apple Inc. All rights reserved. >+ * Copyright (C) 2018 Oleksandr Skachkov <gskachkov@gmail.com>. > * > * Redistribution and use in source and binary forms, with or without > * modification, are permitted provided that the following conditions >@@ -39,18 +40,23 @@ public: > > static WebAssemblyPrototype* create(VM&, JSGlobalObject*, Structure*); > static Structure* createStructure(VM&, JSGlobalObject*, JSValue); >+ JS_EXPORT_PRIVATE static void webAssemblyModuleValidateAsync(ExecState*, JSPromiseDeferred*, Vector<uint8_t>&&); >+ JS_EXPORT_PRIVATE static void webAssemblyModuleInstantinateAsync(ExecState*, JSPromiseDeferred*, Vector<uint8_t>&&, JSObject*); > > DECLARE_INFO; > > static JSValue instantiate(ExecState*, JSPromiseDeferred*, const Identifier&, JSValue); > > protected: >- void finishCreation(VM&); >+ void finishCreation(VM&, JSGlobalObject*); > > private: > WebAssemblyPrototype(VM&, Structure*); > }; > >+EncodedJSValue JSC_HOST_CALL webAssemblyCompileStreamingInternal(ExecState*); >+EncodedJSValue JSC_HOST_CALL webAssemblyInstantiateStreamingInternal(ExecState*); >+ > } // namespace JSC > > #endif // ENABLE(WEBASSEMBLY) >diff --git a/Source/WebCore/Configurations/FeatureDefines.xcconfig b/Source/WebCore/Configurations/FeatureDefines.xcconfig >index 50840d826a4f8ce055531a194735df51b5167faa..17b66798a8437de3f4588bbcf0dc5260d92a578c 100644 >--- a/Source/WebCore/Configurations/FeatureDefines.xcconfig >+++ b/Source/WebCore/Configurations/FeatureDefines.xcconfig >@@ -355,6 +355,8 @@ ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN_macosx = ENABLE_VIDEO_USES_ELEMENT_FULLSCRE > > ENABLE_WEBASSEMBLY = ; > >+ENABLE_WEBASSEMBLY_STREAMING_API = ; >+ > ENABLE_WEBGL = ENABLE_WEBGL; > > ENABLE_WEBGL2 = ENABLE_WEBGL2; >@@ -381,4 +383,4 @@ ENABLE_WIRELESS_PLAYBACK_TARGET = ENABLE_WIRELESS_PLAYBACK_TARGET; > > ENABLE_XSLT = ENABLE_XSLT; > >-FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXTRA_ZOOM_MODE) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(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_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_INTL_PLURAL_RULES) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_JS_ASYNC_ITERATION) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MINIMAL_SIMULATOR) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT); >+FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXTRA_ZOOM_MODE) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(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_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_INTL_PLURAL_RULES) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_JS_ASYNC_ITERATION) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MINIMAL_SIMULATOR) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBASSEMBLY_STREAMING_API) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT); >diff --git a/Source/WebCore/PAL/Configurations/FeatureDefines.xcconfig b/Source/WebCore/PAL/Configurations/FeatureDefines.xcconfig >index 50840d826a4f8ce055531a194735df51b5167faa..17b66798a8437de3f4588bbcf0dc5260d92a578c 100644 >--- a/Source/WebCore/PAL/Configurations/FeatureDefines.xcconfig >+++ b/Source/WebCore/PAL/Configurations/FeatureDefines.xcconfig >@@ -355,6 +355,8 @@ ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN_macosx = ENABLE_VIDEO_USES_ELEMENT_FULLSCRE > > ENABLE_WEBASSEMBLY = ; > >+ENABLE_WEBASSEMBLY_STREAMING_API = ; >+ > ENABLE_WEBGL = ENABLE_WEBGL; > > ENABLE_WEBGL2 = ENABLE_WEBGL2; >@@ -381,4 +383,4 @@ ENABLE_WIRELESS_PLAYBACK_TARGET = ENABLE_WIRELESS_PLAYBACK_TARGET; > > ENABLE_XSLT = ENABLE_XSLT; > >-FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXTRA_ZOOM_MODE) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(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_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_INTL_PLURAL_RULES) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_JS_ASYNC_ITERATION) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MINIMAL_SIMULATOR) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT); >+FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXTRA_ZOOM_MODE) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(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_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_INTL_PLURAL_RULES) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_JS_ASYNC_ITERATION) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MINIMAL_SIMULATOR) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBASSEMBLY_STREAMING_API) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT); >diff --git a/Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj b/Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj >index b4030b588d0a061b01b189c380cdb41b74f6c6a7..e60c2f692bfdd862972a722f72ff3ab24a86d565 100644 >--- a/Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj >+++ b/Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj >@@ -238,7 +238,7 @@ > 0C7785881F45130F00F4EBB6 /* TUCallSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TUCallSPI.h; sourceTree = "<group>"; }; > 0CF99CA61F738436007EE793 /* CoreMediaSoftLink.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CoreMediaSoftLink.cpp; path = pal/cf/CoreMediaSoftLink.cpp; sourceTree = SOURCE_ROOT; }; > 0CF99CA71F738437007EE793 /* CoreMediaSoftLink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CoreMediaSoftLink.h; path = pal/cf/CoreMediaSoftLink.h; sourceTree = SOURCE_ROOT; }; >- 1C09D03D1E31C32800725F18 /* libPAL.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libPAL.a; sourceTree = BUILT_PRODUCTS_DIR; }; >+ 1C09D03D1E31C32800725F18 /* lib.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = lib.a; sourceTree = BUILT_PRODUCTS_DIR; }; > 1C09D0521E31C44100725F18 /* CryptoDigest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CryptoDigest.h; sourceTree = "<group>"; }; > 1C09D0551E31C46500725F18 /* CryptoDigestCommonCrypto.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CryptoDigestCommonCrypto.cpp; path = commoncrypto/CryptoDigestCommonCrypto.cpp; sourceTree = "<group>"; }; > 1C09D0571E31C57E00725F18 /* config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = "<group>"; }; >@@ -470,7 +470,7 @@ > 1C09D03E1E31C32800725F18 /* Products */ = { > isa = PBXGroup; > children = ( >- 1C09D03D1E31C32800725F18 /* libPAL.a */, >+ 1C09D03D1E31C32800725F18 /* lib.a */, > ); > name = Products; > sourceTree = "<group>"; >@@ -733,7 +733,7 @@ > ); > name = PAL; > productName = PAL; >- productReference = 1C09D03D1E31C32800725F18 /* libPAL.a */; >+ productReference = 1C09D03D1E31C32800725F18 /* lib.a */; > productType = "com.apple.product-type.library.static"; > }; > /* End PBXNativeTarget section */ >diff --git a/Source/WebCore/WebCore.xcodeproj/project.pbxproj b/Source/WebCore/WebCore.xcodeproj/project.pbxproj >index 36a443fb492e2e99a07d4b85f66d2c37c21c4083..e00cd674e3492311bd6d45797876f3a63fab89c6 100644 >--- a/Source/WebCore/WebCore.xcodeproj/project.pbxproj >+++ b/Source/WebCore/WebCore.xcodeproj/project.pbxproj >@@ -1042,7 +1042,7 @@ > 41103AAD1E39791000769F03 /* RealtimeIncomingAudioSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 41103AA91E39790A00769F03 /* RealtimeIncomingAudioSource.h */; }; > 41103AAD1E39791000769F14 /* RealtimeIncomingAudioSourceCocoa.h in Headers */ = {isa = PBXBuildFile; fileRef = 41103AA91E39790A00769F14 /* RealtimeIncomingAudioSourceCocoa.h */; }; > 4112B5431F9F9CA000E67875 /* ServiceWorkerThreadProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 4112B53F1F9F9C9B00E67875 /* ServiceWorkerThreadProxy.h */; settings = {ATTRIBUTES = (Private, ); }; }; >- 4123081B138C429700BCCFCA /* WebCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 93F19B1A08245E5A001E9ABC /* WebCore.framework */; }; >+ 4123081B138C429700BCCFCA /* .framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 93F19B1A08245E5A001E9ABC /* .framework */; }; > 41230913138C42FF00BCCFCA /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F8216299029F4FB501000131 /* JavaScriptCore.framework */; }; > 4129C9971F59B963009D7403 /* FetchBodySource.h in Headers */ = {isa = PBXBuildFile; fileRef = 413015D61C7B570400091C6F /* FetchBodySource.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 4129C9A91F59C56B009D7403 /* ReadableStreamDefaultController.h in Headers */ = {isa = PBXBuildFile; fileRef = 418C395F1C8F0AAB0051C8A3 /* ReadableStreamDefaultController.h */; settings = {ATTRIBUTES = (Private, ); }; }; >@@ -7204,7 +7204,7 @@ > 417612AE1E3A993B00C3D81D /* LibWebRTCPeerConnectionBackend.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = LibWebRTCPeerConnectionBackend.h; path = libwebrtc/LibWebRTCPeerConnectionBackend.h; sourceTree = "<group>"; }; > 417DA4CE13734326007C57FB /* Internals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Internals.h; sourceTree = "<group>"; }; > 417DA4CF13734326007C57FB /* Internals.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Internals.cpp; sourceTree = "<group>"; }; >- 417DA6D013734E02007C57FB /* libWebCoreTestSupport.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = libWebCoreTestSupport.dylib; sourceTree = BUILT_PRODUCTS_DIR; }; >+ 417DA6D013734E02007C57FB /* .dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = .dylib; sourceTree = BUILT_PRODUCTS_DIR; }; > 417DA71B13735DFA007C57FB /* JSInternals.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSInternals.cpp; sourceTree = "<group>"; }; > 417DA71C13735DFA007C57FB /* JSInternals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSInternals.h; sourceTree = "<group>"; }; > 417F0D7E1FFEE14E008EF303 /* ServiceWorkerInternals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ServiceWorkerInternals.h; sourceTree = "<group>"; }; >@@ -10385,7 +10385,7 @@ > 93EEC1F709C2877700C515D1 /* WheelEvent.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WheelEvent.idl; sourceTree = "<group>"; }; > 93EF7D541954E98F00DFB71D /* ScrollingStateNode.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ScrollingStateNode.mm; sourceTree = "<group>"; }; > 93F19B1908245E59001E9ABC /* Info.plist */ = {isa = PBXFileReference; indentWidth = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; }; >- 93F19B1A08245E5A001E9ABC /* WebCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = WebCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; >+ 93F19B1A08245E5A001E9ABC /* .framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = .framework; sourceTree = BUILT_PRODUCTS_DIR; }; > 93F1D31A0558CC5C00821BC0 /* libicucore.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libicucore.dylib; path = /usr/lib/libicucore.dylib; sourceTree = "<absolute>"; }; > 93F1D5B712D532C400832BEC /* WebGLLoseContext.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebGLLoseContext.cpp; sourceTree = "<group>"; }; > 93F1D5B812D532C400832BEC /* WebGLLoseContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebGLLoseContext.h; sourceTree = "<group>"; }; >@@ -14152,7 +14152,7 @@ > E1BA003016FB92AC00BA7A35 /* ResourceHandleClient.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ResourceHandleClient.cpp; sourceTree = "<group>"; }; > E1BA66F01742BD8600C20251 /* DynamicLinkerInterposing.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DynamicLinkerInterposing.h; sourceTree = "<group>"; }; > E1BA66F21742BDCC00C20251 /* WebCoreTestShim.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = WebCoreTestShim.xcconfig; sourceTree = "<group>"; }; >- E1BA67161742BDE000C20251 /* libWebCoreTestShim.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = libWebCoreTestShim.dylib; sourceTree = BUILT_PRODUCTS_DIR; }; >+ E1BA67161742BDE000C20251 /* .dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = .dylib; sourceTree = BUILT_PRODUCTS_DIR; }; > E1BA67191742BEF400C20251 /* WebCoreTestShimLibrary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebCoreTestShimLibrary.cpp; sourceTree = "<group>"; }; > E1BB84AC1822CA7400525043 /* CryptoAlgorithmRegistryMac.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CryptoAlgorithmRegistryMac.cpp; sourceTree = "<group>"; }; > E1BD3317182D8DDD00C05D9F /* CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp; sourceTree = "<group>"; }; >@@ -14915,7 +14915,7 @@ > AA5F3B9116CC5BEB00455EB0 /* CoreFoundation.framework in Frameworks */, > A15E6BF11E212A6A0080AF34 /* Foundation.framework in Frameworks */, > 41230913138C42FF00BCCFCA /* JavaScriptCore.framework in Frameworks */, >- 4123081B138C429700BCCFCA /* WebCore.framework in Frameworks */, >+ 4123081B138C429700BCCFCA /* .framework in Frameworks */, > ); > runOnlyForDeploymentPostprocessing = 0; > }; >@@ -14964,9 +14964,9 @@ > 034768DFFF38A50411DB9C8B /* Products */ = { > isa = PBXGroup; > children = ( >- E1BA67161742BDE000C20251 /* libWebCoreTestShim.dylib */, >- 417DA6D013734E02007C57FB /* libWebCoreTestSupport.dylib */, >- 93F19B1A08245E5A001E9ABC /* WebCore.framework */, >+ E1BA67161742BDE000C20251 /* .dylib */, >+ 417DA6D013734E02007C57FB /* .dylib */, >+ 93F19B1A08245E5A001E9ABC /* .framework */, > ); > name = Products; > sourceTree = SOURCE_ROOT; >@@ -30921,7 +30921,7 @@ > ); > name = WebCoreTestSupport; > productName = WebCoreTestSupport; >- productReference = 417DA6D013734E02007C57FB /* libWebCoreTestSupport.dylib */; >+ productReference = 417DA6D013734E02007C57FB /* .dylib */; > productType = "com.apple.product-type.library.dynamic"; > }; > 93F198A508245E59001E9ABC /* WebCore */ = { >@@ -30953,7 +30953,7 @@ > name = WebCore; > productInstallPath = /System/Library/Frameworks/WebKit.framework/Versions/A/Frameworks; > productName = WebKit; >- productReference = 93F19B1A08245E5A001E9ABC /* WebCore.framework */; >+ productReference = 93F19B1A08245E5A001E9ABC /* .framework */; > productType = "com.apple.product-type.framework"; > }; > E1BA66F31742BDE000C20251 /* WebCoreTestShim */ = { >@@ -30971,7 +30971,7 @@ > ); > name = WebCoreTestShim; > productName = WebCoreTestSupport; >- productReference = E1BA67161742BDE000C20251 /* libWebCoreTestShim.dylib */; >+ productReference = E1BA67161742BDE000C20251 /* .dylib */; > productType = "com.apple.product-type.library.dynamic"; > }; > /* End PBXNativeTarget section */ >diff --git a/Source/WebCore/bindings/js/JSDOMWindowBase.cpp b/Source/WebCore/bindings/js/JSDOMWindowBase.cpp >index da35c16813b79259c2ebd4193a4dfe724e588d15..b49d12ef8d51aef6ddfca14c5a18d4a8be91996e 100644 >--- a/Source/WebCore/bindings/js/JSDOMWindowBase.cpp >+++ b/Source/WebCore/bindings/js/JSDOMWindowBase.cpp >@@ -29,11 +29,13 @@ > #include "CommonVM.h" > #include "DOMWindow.h" > #include "Document.h" >+#include "FetchResponse.h" > #include "Frame.h" > #include "InspectorController.h" > #include "JSDOMBindingSecurity.h" > #include "JSDOMGlobalObjectTask.h" > #include "JSDOMWindowCustom.h" >+#include "JSFetchResponse.h" > #include "JSMainThreadExecState.h" > #include "JSNode.h" > #include "Logging.h" >@@ -50,6 +52,7 @@ > #include <JavaScriptCore/JSInternalPromiseDeferred.h> > #include <JavaScriptCore/Microtask.h> > #include <JavaScriptCore/StrongInlines.h> >+#include <JavaScriptCore/WebAssemblyPrototype.h> > #include <wtf/Language.h> > #include <wtf/MainThread.h> > >@@ -75,7 +78,9 @@ const GlobalObjectMethodTable JSDOMWindowBase::s_globalObjectMethodTable = { > &moduleLoaderCreateImportMetaProperties, > &moduleLoaderEvaluate, > &promiseRejectionTracker, >- &defaultLanguage >+ &defaultLanguage, >+ &compileStreaming, >+ &instantiateStreaming > }; > > JSDOMWindowBase::JSDOMWindowBase(VM& vm, Structure* structure, RefPtr<DOMWindow>&& window, JSWindowProxy* proxy) >@@ -364,6 +369,137 @@ JSC::JSObject* JSDOMWindowBase::moduleLoaderCreateImportMetaProperties(JSC::JSGl > return constructEmptyObject(exec, globalObject->nullPrototypeObjectStructure()); > } > >+#if ENABLE(WEBASSEMBLY) >+static std::optional<Vector<uint8_t>> tryAllocate(JSC::ExecState* exec, JSC::JSPromiseDeferred* promise, const char* data, size_t byteSize) >+{ >+ Vector<uint8_t> arrayBuffer; >+ if (!arrayBuffer.tryReserveCapacity(byteSize)) { >+ promise->reject(exec, createOutOfMemoryError(exec)); >+ return std::nullopt; >+ } >+ >+ arrayBuffer.grow(byteSize); >+ memcpy(arrayBuffer.data(), data, byteSize); >+ >+ return arrayBuffer; >+} >+ >+static bool isResponseCorrect(JSC::ExecState* exec, FetchResponse* inputResponse, JSC::JSPromiseDeferred* promise) >+{ >+ bool isResponseCorsSameOrigin = inputResponse->type() == ResourceResponse::Type::Basic || inputResponse->type() == ResourceResponse::Type::Cors || inputResponse->type() == ResourceResponse::Type::Default; >+ >+ if (!isResponseCorsSameOrigin) { >+ promise->reject(exec, createTypeError(exec, ASCIILiteral("Response is not CORS-same-origin"))); >+ return false; >+ } >+ >+ if (!inputResponse->ok()) { >+ promise->reject(exec, createTypeError(exec, ASCIILiteral("Response has not returned OK status"))); >+ return false; >+ } >+ >+ auto contentType = inputResponse->headers().fastGet(HTTPHeaderName::ContentType); >+ if (!equalLettersIgnoringASCIICase(contentType, "application/wasm")) { >+ promise->reject(exec, createTypeError(exec, ASCIILiteral("Unexpected response MIME type. Expected 'application/wasm'"))); >+ return false; >+ } >+ >+ return true; >+} >+ >+static void handleResponseOnStreamingAction(JSC::JSGlobalObject* globalObject, JSC::ExecState* exec, FetchResponse* inputResponse, JSC::JSPromiseDeferred* promise, Function<void(JSC::ExecState* exec, const char* data, size_t byteSize)>&& actionCallback) >+{ >+ if (!isResponseCorrect(exec, inputResponse, promise)) >+ return; >+ >+ if (inputResponse->isBodyReceivedByChunk()) { >+ inputResponse->consumeBodyReceivedByChunk([promise, callback = WTFMove(actionCallback), globalObject, data = SharedBuffer::create()] (auto&& result) mutable { >+ ExecState* exec = globalObject->globalExec(); >+ if (result.hasException()) { >+ promise->reject(exec, createTypeError(exec, result.exception().message())); >+ return; >+ } >+ >+ if (auto chunk = result.returnValue()) >+ data->append(reinterpret_cast<const char*>(chunk->data), chunk->size); >+ else { >+ VM& vm = exec->vm(); >+ JSLockHolder lock(vm); >+ >+ callback(exec, data->data(), data->size()); >+ } >+ }); >+ return; >+ } >+ >+ auto body = inputResponse->consumeBody(); >+ WTF::switchOn(body, [&] (Ref<FormData>& formData) { >+ if (auto buffer = formData->asSharedBuffer()) { >+ VM& vm = exec->vm(); >+ JSLockHolder lock(vm); >+ >+ actionCallback(exec, buffer->data(), buffer->size()); >+ return; >+ } >+ // FIXME: http://webkit.org/b/184886> Implement loading for the Blob type >+ promise->reject(exec, createTypeError(exec, ASCIILiteral("Unexpected Response's Content-type"))); >+ }, [&] (Ref<SharedBuffer>& buffer) { >+ VM& vm = exec->vm(); >+ JSLockHolder lock(vm); >+ >+ actionCallback(exec, buffer->data(), buffer->size()); >+ }, [&] (std::nullptr_t&) { >+ promise->reject(exec, createTypeError(exec, ASCIILiteral("Unexpected Response's Content-type"))); >+ }); >+} >+ >+void JSDOMWindowBase::compileStreaming(JSC::JSGlobalObject* globalObject, JSC::ExecState* exec, JSC::JSPromiseDeferred* promise, JSC::JSValue source) >+{ >+ ASSERT(source); >+ >+ VM& vm = exec->vm(); >+ >+ ASSERT(vm.promiseDeferredTimer->hasPendingPromise(promise)); >+ ASSERT(vm.promiseDeferredTimer->hasDependancyInPendingPromise(promise, globalObject)); >+ >+ if (auto inputResponse = JSFetchResponse::toWrapped(vm, source)) { >+ handleResponseOnStreamingAction(globalObject, exec, inputResponse, promise, [promise] (JSC::ExecState* exec, const char* data, size_t byteSize) mutable { >+ if (auto arrayBuffer = tryAllocate(exec, promise, data, byteSize)) >+ JSC::WebAssemblyPrototype::webAssemblyModuleValidateAsync(exec, promise, WTFMove(*arrayBuffer)); >+ }); >+ } else >+ promise->reject(exec, createTypeError(exec, ASCIILiteral("first argument must be an Response or Promise for Response"))); >+} >+ >+void JSDOMWindowBase::instantiateStreaming(JSC::JSGlobalObject* globalObject, JSC::ExecState* exec, JSC::JSPromiseDeferred* promise, JSC::JSValue source, JSC::JSObject* importedObject) >+{ >+ ASSERT(source); >+ >+ VM& vm = exec->vm(); >+ >+ ASSERT(vm.promiseDeferredTimer->hasPendingPromise(promise)); >+ ASSERT(vm.promiseDeferredTimer->hasDependancyInPendingPromise(promise, globalObject)); >+ ASSERT(vm.promiseDeferredTimer->hasDependancyInPendingPromise(promise, importedObject)); >+ >+ if (auto inputResponse = JSFetchResponse::toWrapped(vm, source)) { >+ handleResponseOnStreamingAction(globalObject, exec, inputResponse, promise, [promise, importedObject] (JSC::ExecState* exec, const char* data, size_t byteSize) mutable { >+ if (auto arrayBuffer = tryAllocate(exec, promise, data, byteSize)) >+ JSC::WebAssemblyPrototype::webAssemblyModuleInstantinateAsync(exec, promise, WTFMove(*arrayBuffer), importedObject); >+ }); >+ } else >+ promise->reject(exec, createTypeError(exec, ASCIILiteral("first argument must be an Response or Promise for Response"))); >+} >+#else >+static void JSDOMWindowBase::compileStreaming(JSC::JSGlobalObject*, JSC::ExecState*, JSC::JSPromiseDeferred*, JSC::JSValue) >+{ >+ ASSERT_NOT_REACHED(); >+} >+static void JSDOMWindowBase::instantiateStreaming(JSC::JSGlobalObject*, JSC::ExecState*, JSC::JSPromiseDeferred*, JSC::JSValue, JSC::JSObject*) >+{ >+ ASSERT_NOT_REACHED(); >+} >+#endif >+ > void JSDOMWindowBase::promiseRejectionTracker(JSGlobalObject* jsGlobalObject, ExecState* exec, JSPromise* promise, JSPromiseRejectionOperation operation) > { > // https://html.spec.whatwg.org/multipage/webappapis.html#the-hostpromiserejectiontracker-implementation >diff --git a/Source/WebCore/bindings/js/JSDOMWindowBase.h b/Source/WebCore/bindings/js/JSDOMWindowBase.h >index f5709a9fca0951a04ad17f60fa53e5e3624bf6e0..b60ef47b9fa6f531871faf24b2e74366f9c409d9 100644 >--- a/Source/WebCore/bindings/js/JSDOMWindowBase.h >+++ b/Source/WebCore/bindings/js/JSDOMWindowBase.h >@@ -42,6 +42,7 @@ namespace WebCore { > > class DOMWrapperWorld; > class Frame; >+class FetchResponse; > class JSDOMWindow; > class JSDOMWindowBasePrivate; > class JSWindowProxy; >@@ -88,12 +89,17 @@ protected: > JSC::WatchpointSet m_windowCloseWatchpoints; > > private: >+ using ResponseCallback = WTF::Function<void(const char*, size_t)>; >+ > static JSC::Identifier moduleLoaderResolve(JSC::JSGlobalObject*, JSC::ExecState*, JSC::JSModuleLoader*, JSC::JSValue, JSC::JSValue, JSC::JSValue); > static JSC::JSInternalPromise* moduleLoaderFetch(JSC::JSGlobalObject*, JSC::ExecState*, JSC::JSModuleLoader*, JSC::JSValue, JSC::JSValue, JSC::JSValue); > static JSC::JSValue moduleLoaderEvaluate(JSC::JSGlobalObject*, JSC::ExecState*, JSC::JSModuleLoader*, JSC::JSValue, JSC::JSValue, JSC::JSValue); > static JSC::JSInternalPromise* moduleLoaderImportModule(JSC::JSGlobalObject*, JSC::ExecState*, JSC::JSModuleLoader*, JSC::JSString*, JSC::JSValue, const JSC::SourceOrigin&); > static JSC::JSObject* moduleLoaderCreateImportMetaProperties(JSC::JSGlobalObject*, JSC::ExecState*, JSC::JSModuleLoader*, JSC::JSValue, JSC::JSModuleRecord*, JSC::JSValue); > >+ static void compileStreaming(JSC::JSGlobalObject*, JSC::ExecState*, JSC::JSPromiseDeferred*, JSC::JSValue); >+ static void instantiateStreaming(JSC::JSGlobalObject*, JSC::ExecState*, JSC::JSPromiseDeferred*, JSC::JSValue, JSC::JSObject*); >+ > static void promiseRejectionTracker(JSC::JSGlobalObject*, JSC::ExecState*, JSC::JSPromise*, JSC::JSPromiseRejectionOperation); > > RefPtr<DOMWindow> m_wrapped; >diff --git a/Source/WebCore/bindings/js/JSRemoteDOMWindowBase.cpp b/Source/WebCore/bindings/js/JSRemoteDOMWindowBase.cpp >index 47e340190f7b04472ddcca57f268e96a9942f9fa..66d2c8df9a87f7fad03cbc231ad13e28c205f595 100644 >--- a/Source/WebCore/bindings/js/JSRemoteDOMWindowBase.cpp >+++ b/Source/WebCore/bindings/js/JSRemoteDOMWindowBase.cpp >@@ -48,6 +48,8 @@ const GlobalObjectMethodTable JSRemoteDOMWindowBase::s_globalObjectMethodTable = > nullptr, // moduleLoaderEvaluate > nullptr, // promiseRejectionTracker > nullptr, // defaultLanguage >+ nullptr, // compileStreaming >+ nullptr, // instantiateStreaming > }; > > JSRemoteDOMWindowBase::JSRemoteDOMWindowBase(VM& vm, Structure* structure, RefPtr<RemoteDOMWindow>&& window, JSWindowProxy* proxy) >diff --git a/Source/WebCore/bindings/js/JSWorkerGlobalScopeBase.cpp b/Source/WebCore/bindings/js/JSWorkerGlobalScopeBase.cpp >index 85bf75c51b2b2ffe7a74742fa0ddfb73c13b5b7a..fd60df88afd6e09166c41b0279d22318dad888e3 100644 >--- a/Source/WebCore/bindings/js/JSWorkerGlobalScopeBase.cpp >+++ b/Source/WebCore/bindings/js/JSWorkerGlobalScopeBase.cpp >@@ -61,7 +61,9 @@ const GlobalObjectMethodTable JSWorkerGlobalScopeBase::s_globalObjectMethodTable > nullptr, // moduleLoaderCreateImportMetaProperties > nullptr, // moduleLoaderEvaluate > nullptr, // promiseRejectionTracker >- &defaultLanguage >+ &defaultLanguage, >+ nullptr, // compileStreaming >+ nullptr, // instantiateStreaming > }; > > JSWorkerGlobalScopeBase::JSWorkerGlobalScopeBase(JSC::VM& vm, JSC::Structure* structure, RefPtr<WorkerGlobalScope>&& impl) >diff --git a/Source/WebKit/Configurations/FeatureDefines.xcconfig b/Source/WebKit/Configurations/FeatureDefines.xcconfig >index 50840d826a4f8ce055531a194735df51b5167faa..17b66798a8437de3f4588bbcf0dc5260d92a578c 100644 >--- a/Source/WebKit/Configurations/FeatureDefines.xcconfig >+++ b/Source/WebKit/Configurations/FeatureDefines.xcconfig >@@ -355,6 +355,8 @@ ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN_macosx = ENABLE_VIDEO_USES_ELEMENT_FULLSCRE > > ENABLE_WEBASSEMBLY = ; > >+ENABLE_WEBASSEMBLY_STREAMING_API = ; >+ > ENABLE_WEBGL = ENABLE_WEBGL; > > ENABLE_WEBGL2 = ENABLE_WEBGL2; >@@ -381,4 +383,4 @@ ENABLE_WIRELESS_PLAYBACK_TARGET = ENABLE_WIRELESS_PLAYBACK_TARGET; > > ENABLE_XSLT = ENABLE_XSLT; > >-FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXTRA_ZOOM_MODE) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(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_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_INTL_PLURAL_RULES) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_JS_ASYNC_ITERATION) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MINIMAL_SIMULATOR) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT); >+FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXTRA_ZOOM_MODE) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(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_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_INTL_PLURAL_RULES) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_JS_ASYNC_ITERATION) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MINIMAL_SIMULATOR) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBASSEMBLY_STREAMING_API) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT); >diff --git a/Source/WebKit/WebKit.xcodeproj/project.pbxproj b/Source/WebKit/WebKit.xcodeproj/project.pbxproj >index 882bb8aadb2dc01184c4c3fb77fb7f36e5ff9ab4..c073fd0bd0dff8be7f402984eae6232ef7a6a8e2 100644 >--- a/Source/WebKit/WebKit.xcodeproj/project.pbxproj >+++ b/Source/WebKit/WebKit.xcodeproj/project.pbxproj >@@ -810,12 +810,12 @@ > 371A19421824D29300F32A5E /* WKNSDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 371A19401824D29300F32A5E /* WKNSDictionary.h */; }; > 371E69591AED7A0F00495E48 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC3DE46815A91763008D26FC /* Foundation.framework */; }; > 371E695A1AED7A5B00495E48 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC3DE46815A91763008D26FC /* Foundation.framework */; }; >- 371E695B1AED7A6700495E48 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8DC2EF5B0486A6940098B216 /* WebKit.framework */; }; >+ 371E695B1AED7A6700495E48 /* .framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8DC2EF5B0486A6940098B216 /* .framework */; }; > 372CAF0B1833FD910040AC27 /* WKNSError.h in Headers */ = {isa = PBXBuildFile; fileRef = 372CAF091833FD910040AC27 /* WKNSError.h */; }; > 372CAF0C1833FD910040AC27 /* WKNSError.mm in Sources */ = {isa = PBXBuildFile; fileRef = 372CAF0A1833FD910040AC27 /* WKNSError.mm */; }; > 372EBB3C2017E64300085064 /* XPCServiceMain.mm in Sources */ = {isa = PBXBuildFile; fileRef = BC82839616B47EC400A278FE /* XPCServiceMain.mm */; }; > 372EBB3E2017E64300085064 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC3DE46815A91763008D26FC /* Foundation.framework */; }; >- 372EBB3F2017E64300085064 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8DC2EF5B0486A6940098B216 /* WebKit.framework */; }; >+ 372EBB3F2017E64300085064 /* .framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8DC2EF5B0486A6940098B216 /* .framework */; }; > 372EBB412017E64300085064 /* WebContentProcess.xib in Resources */ = {isa = PBXBuildFile; fileRef = E1D26A4C1759634E0095BFD1 /* WebContentProcess.xib */; }; > 373CEAD5185417AE008C363D /* WKNSData.mm in Sources */ = {isa = PBXBuildFile; fileRef = 373CEAD3185417AE008C363D /* WKNSData.mm */; }; > 373CEAD6185417AE008C363D /* WKNSData.h in Headers */ = {isa = PBXBuildFile; fileRef = 373CEAD4185417AE008C363D /* WKNSData.h */; }; >@@ -1179,7 +1179,7 @@ > 51F060E11654318500F3283F /* NetworkMDNSRegisterMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51F060DD1654317500F3283F /* NetworkMDNSRegisterMessageReceiver.cpp */; }; > 51F7DC41180CC93600212CA3 /* XPCServiceMain.mm in Sources */ = {isa = PBXBuildFile; fileRef = BC82839616B47EC400A278FE /* XPCServiceMain.mm */; }; > 51F7DC43180CC93600212CA3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC3DE46815A91763008D26FC /* Foundation.framework */; }; >- 51F7DC44180CC93600212CA3 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8DC2EF5B0486A6940098B216 /* WebKit.framework */; }; >+ 51F7DC44180CC93600212CA3 /* .framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8DC2EF5B0486A6940098B216 /* .framework */; }; > 51F886A51F2C227E00C193EF /* WKTestingSupport.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51F886A31F2C214A00C193EF /* WKTestingSupport.cpp */; }; > 51F886A61F2C228100C193EF /* WKTestingSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 51F886A41F2C214A00C193EF /* WKTestingSupport.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 51FA2D7415212DF100C1BA0B /* InjectedBundleDOMWindowExtension.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51FA2D5C15211A5000C1BA0B /* InjectedBundleDOMWindowExtension.cpp */; }; >@@ -1833,9 +1833,9 @@ > BC8147D612F66D31007B2C32 /* InjectedBundleNavigationAction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC8147D412F66D31007B2C32 /* InjectedBundleNavigationAction.cpp */; }; > BC82839916B48DC000A278FE /* WebContentServiceEntryPoint.mm in Sources */ = {isa = PBXBuildFile; fileRef = BC82839816B48DC000A278FE /* WebContentServiceEntryPoint.mm */; }; > BC8283AC16B4BF3F00A278FE /* NetworkServiceEntryPoint.mm in Sources */ = {isa = PBXBuildFile; fileRef = BC8283A816B4BD9100A278FE /* NetworkServiceEntryPoint.mm */; }; >- BC8283DA16B4DB9300A278FE /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8DC2EF5B0486A6940098B216 /* WebKit.framework */; }; >+ BC8283DA16B4DB9300A278FE /* .framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8DC2EF5B0486A6940098B216 /* .framework */; }; > BC82844D16B5081C00A278FE /* PluginServiceEntryPoint.mm in Sources */ = {isa = PBXBuildFile; fileRef = BC8283EF16B4F8E200A278FE /* PluginServiceEntryPoint.mm */; }; >- BC82844F16B5089800A278FE /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8DC2EF5B0486A6940098B216 /* WebKit.framework */; }; >+ BC82844F16B5089800A278FE /* .framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8DC2EF5B0486A6940098B216 /* .framework */; }; > BC8452A71162C80900CAB9B5 /* DrawingArea.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC8452A51162C80900CAB9B5 /* DrawingArea.cpp */; }; > BC8452A81162C80900CAB9B5 /* DrawingArea.h in Headers */ = {isa = PBXBuildFile; fileRef = BC8452A61162C80900CAB9B5 /* DrawingArea.h */; }; > BC84EB1812A7100C0083F2DA /* WebPreferencesMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = BC84EB1712A7100C0083F2DA /* WebPreferencesMac.mm */; }; >@@ -1879,7 +1879,7 @@ > BCA8C6A911E3BA5F00812FB7 /* InjectedBundlePageLoaderClient.h in Headers */ = {isa = PBXBuildFile; fileRef = BCA8C6A711E3BA5F00812FB7 /* InjectedBundlePageLoaderClient.h */; }; > BCA8C6AF11E3C08700812FB7 /* InjectedBundlePageUIClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCA8C6AD11E3C08700812FB7 /* InjectedBundlePageUIClient.cpp */; }; > BCA8C6B011E3C08700812FB7 /* InjectedBundlePageUIClient.h in Headers */ = {isa = PBXBuildFile; fileRef = BCA8C6AE11E3C08700812FB7 /* InjectedBundlePageUIClient.h */; }; >- BCAE9E08160C1C0700A33217 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8DC2EF5B0486A6940098B216 /* WebKit.framework */; }; >+ BCAE9E08160C1C0700A33217 /* .framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8DC2EF5B0486A6940098B216 /* .framework */; }; > BCAF362016CA28D600D4E9FC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC3DE46815A91763008D26FC /* Foundation.framework */; }; > BCB63478116BF10600603215 /* WebKit2_C.h in Headers */ = {isa = PBXBuildFile; fileRef = BCB63477116BF10600603215 /* WebKit2_C.h */; settings = {ATTRIBUTES = (Private, ); }; }; > BCB9E24B1120E15C00A137E0 /* WKContext.h in Headers */ = {isa = PBXBuildFile; fileRef = BCB9E2491120E15C00A137E0 /* WKContext.h */; settings = {ATTRIBUTES = (Private, ); }; }; >@@ -3199,7 +3199,7 @@ > 37209CAB2079D4BA0009E25B /* WebContent.Development.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = WebContent.Development.entitlements; sourceTree = "<group>"; }; > 372CAF091833FD910040AC27 /* WKNSError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKNSError.h; sourceTree = "<group>"; }; > 372CAF0A1833FD910040AC27 /* WKNSError.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKNSError.mm; sourceTree = "<group>"; }; >- 372EBB462017E64300085064 /* com.apple.WebKit.WebContent.Development.xpc */ = {isa = PBXFileReference; explicitFileType = "wrapper.xpc-service"; includeInIndex = 0; path = com.apple.WebKit.WebContent.Development.xpc; sourceTree = BUILT_PRODUCTS_DIR; }; >+ 372EBB462017E64300085064 /* .xpc */ = {isa = PBXFileReference; explicitFileType = "wrapper.xpc-service"; includeInIndex = 0; path = .xpc; sourceTree = BUILT_PRODUCTS_DIR; }; > 372EBB4A2017E76000085064 /* WebContentService.Development.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = WebContentService.Development.xcconfig; sourceTree = "<group>"; }; > 373CEAD3185417AE008C363D /* WKNSData.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKNSData.mm; sourceTree = "<group>"; }; > 373CEAD4185417AE008C363D /* WKNSData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKNSData.h; sourceTree = "<group>"; }; >@@ -3623,7 +3623,7 @@ > 51F060DD1654317500F3282F /* WebMDNSRegisterMessageReceiver.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = WebMDNSRegisterMessageReceiver.cpp; sourceTree = "<group>"; }; > 51F060DD1654317500F3283F /* NetworkMDNSRegisterMessageReceiver.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = NetworkMDNSRegisterMessageReceiver.cpp; sourceTree = "<group>"; }; > 51F060DE1654317500F3281B /* WebResourceLoaderMessages.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebResourceLoaderMessages.h; sourceTree = "<group>"; }; >- 51F7DC4A180CC93600212CA3 /* com.apple.WebKit.Storage.xpc */ = {isa = PBXFileReference; explicitFileType = "wrapper.xpc-service"; includeInIndex = 0; path = com.apple.WebKit.Storage.xpc; sourceTree = BUILT_PRODUCTS_DIR; }; >+ 51F7DC4A180CC93600212CA3 /* .xpc */ = {isa = PBXFileReference; explicitFileType = "wrapper.xpc-service"; includeInIndex = 0; path = .xpc; sourceTree = BUILT_PRODUCTS_DIR; }; > 51F886A31F2C214A00C193EF /* WKTestingSupport.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKTestingSupport.cpp; sourceTree = "<group>"; }; > 51F886A41F2C214A00C193EF /* WKTestingSupport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKTestingSupport.h; sourceTree = "<group>"; }; > 51FA2D541521118600C1BA0B /* WKBundleDOMWindowExtension.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKBundleDOMWindowExtension.h; sourceTree = "<group>"; }; >@@ -3963,7 +3963,7 @@ > 86F9536218FF550B001DB2EF /* ProcessAssertionIOS.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = ProcessAssertionIOS.mm; path = ios/ProcessAssertionIOS.mm; sourceTree = "<group>"; }; > 8CFECE931490F140002AAA32 /* EditorState.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EditorState.cpp; sourceTree = "<group>"; }; > 8DC2EF5A0486A6940098B216 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; >- 8DC2EF5B0486A6940098B216 /* WebKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = WebKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; >+ 8DC2EF5B0486A6940098B216 /* .framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = .framework; sourceTree = BUILT_PRODUCTS_DIR; }; > 905620E512BC2476000799B6 /* WebMemorySampler.mac.mm */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebMemorySampler.mac.mm; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; }; > 905620E812BC248B000799B6 /* WebMemorySampler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebMemorySampler.cpp; sourceTree = "<group>"; }; > 905620E912BC248B000799B6 /* WebMemorySampler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebMemorySampler.h; sourceTree = "<group>"; }; >@@ -4246,7 +4246,7 @@ > BC33E0D012408E8600360F3F /* InjectedBundleRangeHandle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InjectedBundleRangeHandle.cpp; sourceTree = "<group>"; }; > BC39C4331626366F008BC689 /* WKDOMRange.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKDOMRange.mm; sourceTree = "<group>"; }; > BC39C4341626366F008BC689 /* WKDOMRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKDOMRange.h; sourceTree = "<group>"; }; >- BC3DE46615A91763008D26FC /* com.apple.WebKit.WebContent.xpc */ = {isa = PBXFileReference; explicitFileType = "wrapper.xpc-service"; includeInIndex = 0; path = com.apple.WebKit.WebContent.xpc; sourceTree = BUILT_PRODUCTS_DIR; }; >+ BC3DE46615A91763008D26FC /* .xpc */ = {isa = PBXFileReference; explicitFileType = "wrapper.xpc-service"; includeInIndex = 0; path = .xpc; sourceTree = BUILT_PRODUCTS_DIR; }; > BC3DE46815A91763008D26FC /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; > BC4075D7124FF0270068F20A /* WKArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKArray.cpp; sourceTree = "<group>"; }; > BC4075D8124FF0270068F20A /* WKArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKArray.h; sourceTree = "<group>"; }; >@@ -4352,12 +4352,12 @@ > BC8283A316B4BD9100A278FE /* Info-OSX.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Info-OSX.plist"; sourceTree = "<group>"; }; > BC8283A816B4BD9100A278FE /* NetworkServiceEntryPoint.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = NetworkServiceEntryPoint.mm; sourceTree = "<group>"; }; > BC8283AB16B4BEAD00A278FE /* NetworkService.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = NetworkService.xcconfig; sourceTree = "<group>"; }; >- BC8283B116B4BF7700A278FE /* com.apple.WebKit.Networking.xpc */ = {isa = PBXFileReference; explicitFileType = "wrapper.xpc-service"; includeInIndex = 0; path = com.apple.WebKit.Networking.xpc; sourceTree = BUILT_PRODUCTS_DIR; }; >+ BC8283B116B4BF7700A278FE /* .xpc */ = {isa = PBXFileReference; explicitFileType = "wrapper.xpc-service"; includeInIndex = 0; path = .xpc; sourceTree = BUILT_PRODUCTS_DIR; }; > BC8283EF16B4F8E200A278FE /* PluginServiceEntryPoint.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = PluginServiceEntryPoint.mm; sourceTree = "<group>"; }; > BC8283F216B4FC5300A278FE /* PluginService.32.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = PluginService.32.xcconfig; sourceTree = "<group>"; }; > BC8283F416B4FC5300A278FE /* PluginService.64.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = PluginService.64.xcconfig; sourceTree = "<group>"; }; >- BC8283F916B4FDDE00A278FE /* com.apple.WebKit.Plugin.32.xpc */ = {isa = PBXFileReference; explicitFileType = "wrapper.xpc-service"; includeInIndex = 0; path = com.apple.WebKit.Plugin.32.xpc; sourceTree = BUILT_PRODUCTS_DIR; }; >- BC82841F16B4FDF600A278FE /* com.apple.WebKit.Plugin.64.xpc */ = {isa = PBXFileReference; explicitFileType = "wrapper.xpc-service"; includeInIndex = 0; path = com.apple.WebKit.Plugin.64.xpc; sourceTree = BUILT_PRODUCTS_DIR; }; >+ BC8283F916B4FDDE00A278FE /* .xpc */ = {isa = PBXFileReference; explicitFileType = "wrapper.xpc-service"; includeInIndex = 0; path = .xpc; sourceTree = BUILT_PRODUCTS_DIR; }; >+ BC82841F16B4FDF600A278FE /* .xpc */ = {isa = PBXFileReference; explicitFileType = "wrapper.xpc-service"; includeInIndex = 0; path = .xpc; sourceTree = BUILT_PRODUCTS_DIR; }; > BC8452A51162C80900CAB9B5 /* DrawingArea.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DrawingArea.cpp; sourceTree = "<group>"; }; > BC8452A61162C80900CAB9B5 /* DrawingArea.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DrawingArea.h; sourceTree = "<group>"; }; > BC84EB1712A7100C0083F2DA /* WebPreferencesMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebPreferencesMac.mm; sourceTree = "<group>"; }; >@@ -4748,7 +4748,7 @@ > buildActionMask = 2147483647; > files = ( > 372EBB3E2017E64300085064 /* Foundation.framework in Frameworks */, >- 372EBB3F2017E64300085064 /* WebKit.framework in Frameworks */, >+ 372EBB3F2017E64300085064 /* .framework in Frameworks */, > ); > runOnlyForDeploymentPostprocessing = 0; > }; >@@ -4764,7 +4764,7 @@ > buildActionMask = 2147483647; > files = ( > 51F7DC43180CC93600212CA3 /* Foundation.framework in Frameworks */, >- 51F7DC44180CC93600212CA3 /* WebKit.framework in Frameworks */, >+ 51F7DC44180CC93600212CA3 /* .framework in Frameworks */, > ); > runOnlyForDeploymentPostprocessing = 0; > }; >@@ -4785,7 +4785,7 @@ > buildActionMask = 2147483647; > files = ( > BCAF362016CA28D600D4E9FC /* Foundation.framework in Frameworks */, >- BC8283DA16B4DB9300A278FE /* WebKit.framework in Frameworks */, >+ BC8283DA16B4DB9300A278FE /* .framework in Frameworks */, > ); > runOnlyForDeploymentPostprocessing = 0; > }; >@@ -4794,7 +4794,7 @@ > buildActionMask = 2147483647; > files = ( > 371E695A1AED7A5B00495E48 /* Foundation.framework in Frameworks */, >- 371E695B1AED7A6700495E48 /* WebKit.framework in Frameworks */, >+ 371E695B1AED7A6700495E48 /* .framework in Frameworks */, > ); > runOnlyForDeploymentPostprocessing = 0; > }; >@@ -4803,7 +4803,7 @@ > buildActionMask = 2147483647; > files = ( > 371E69591AED7A0F00495E48 /* Foundation.framework in Frameworks */, >- BC82844F16B5089800A278FE /* WebKit.framework in Frameworks */, >+ BC82844F16B5089800A278FE /* .framework in Frameworks */, > ); > runOnlyForDeploymentPostprocessing = 0; > }; >@@ -4812,7 +4812,7 @@ > buildActionMask = 2147483647; > files = ( > BC9FA520160D3B430054DF9A /* Foundation.framework in Frameworks */, >- BCAE9E08160C1C0700A33217 /* WebKit.framework in Frameworks */, >+ BCAE9E08160C1C0700A33217 /* .framework in Frameworks */, > ); > runOnlyForDeploymentPostprocessing = 0; > }; >@@ -4829,15 +4829,15 @@ > 034768DFFF38A50411DB9C8B /* Products */ = { > isa = PBXGroup; > children = ( >- BC8283B116B4BF7700A278FE /* com.apple.WebKit.Networking.xpc */, >- BC8283F916B4FDDE00A278FE /* com.apple.WebKit.Plugin.32.xpc */, >- BC82841F16B4FDF600A278FE /* com.apple.WebKit.Plugin.64.xpc */, >- 51F7DC4A180CC93600212CA3 /* com.apple.WebKit.Storage.xpc */, >- 372EBB462017E64300085064 /* com.apple.WebKit.WebContent.Development.xpc */, >- BC3DE46615A91763008D26FC /* com.apple.WebKit.WebContent.xpc */, >+ BC8283B116B4BF7700A278FE /* .xpc */, >+ BC8283F916B4FDDE00A278FE /* .xpc */, >+ BC82841F16B4FDF600A278FE /* .xpc */, >+ 51F7DC4A180CC93600212CA3 /* .xpc */, >+ 372EBB462017E64300085064 /* .xpc */, >+ BC3DE46615A91763008D26FC /* .xpc */, > 1AC25FB012A48EA700BD2671 /* PluginProcessShim.dylib */, > 510031F61379CACB00C8DFE4 /* SecItemShim.dylib */, >- 8DC2EF5B0486A6940098B216 /* WebKit.framework */, >+ 8DC2EF5B0486A6940098B216 /* .framework */, > CDC3830617211799008A2FC3 /* WebProcessShim.dylib */, > ); > name = Products; >@@ -9852,7 +9852,7 @@ > ); > name = WebContent.Development; > productName = WebKit2Service; >- productReference = 372EBB462017E64300085064 /* com.apple.WebKit.WebContent.Development.xpc */; >+ productReference = 372EBB462017E64300085064 /* .xpc */; > productType = "com.apple.product-type.xpc-service"; > }; > 510031EA1379CACB00C8DFE4 /* SecItemShim */ = { >@@ -9887,7 +9887,7 @@ > ); > name = Databases; > productName = Networking; >- productReference = 51F7DC4A180CC93600212CA3 /* com.apple.WebKit.Storage.xpc */; >+ productReference = 51F7DC4A180CC93600212CA3 /* .xpc */; > productType = "com.apple.product-type.xpc-service"; > }; > 8DC2EF4F0486A6940098B216 /* WebKit */ = { >@@ -9928,7 +9928,7 @@ > name = WebKit; > productInstallPath = "$(HOME)/Library/Frameworks"; > productName = WebKit2; >- productReference = 8DC2EF5B0486A6940098B216 /* WebKit.framework */; >+ productReference = 8DC2EF5B0486A6940098B216 /* .framework */; > productType = "com.apple.product-type.framework"; > }; > BC3DE46515A91763008D26FC /* WebContent */ = { >@@ -9946,7 +9946,7 @@ > ); > name = WebContent; > productName = WebKit2Service; >- productReference = BC3DE46615A91763008D26FC /* com.apple.WebKit.WebContent.xpc */; >+ productReference = BC3DE46615A91763008D26FC /* .xpc */; > productType = "com.apple.product-type.xpc-service"; > }; > BC8283B016B4BF7700A278FE /* Networking */ = { >@@ -9964,7 +9964,7 @@ > ); > name = Networking; > productName = Networking; >- productReference = BC8283B116B4BF7700A278FE /* com.apple.WebKit.Networking.xpc */; >+ productReference = BC8283B116B4BF7700A278FE /* .xpc */; > productType = "com.apple.product-type.xpc-service"; > }; > BC8283F816B4FDDE00A278FE /* Plugin.32 */ = { >@@ -9982,7 +9982,7 @@ > ); > name = Plugin.32; > productName = Plugin.32; >- productReference = BC8283F916B4FDDE00A278FE /* com.apple.WebKit.Plugin.32.xpc */; >+ productReference = BC8283F916B4FDDE00A278FE /* .xpc */; > productType = "com.apple.product-type.xpc-service"; > }; > BC82841E16B4FDF600A278FE /* Plugin.64 */ = { >@@ -10000,7 +10000,7 @@ > ); > name = Plugin.64; > productName = Plugin.64; >- productReference = BC82841F16B4FDF600A278FE /* com.apple.WebKit.Plugin.64.xpc */; >+ productReference = BC82841F16B4FDF600A278FE /* .xpc */; > productType = "com.apple.product-type.xpc-service"; > }; > CDC382FB17211799008A2FC3 /* WebProcessShim */ = { >diff --git a/Source/WebKitLegacy/WebKitLegacy.xcodeproj/project.pbxproj b/Source/WebKitLegacy/WebKitLegacy.xcodeproj/project.pbxproj >index cb91cc3d362183f77bdb3bef93003b29def0c3c9..c541de13d934392dd7244f128f36b2e051c7a5aa 100644 >--- a/Source/WebKitLegacy/WebKitLegacy.xcodeproj/project.pbxproj >+++ b/Source/WebKitLegacy/WebKitLegacy.xcodeproj/project.pbxproj >@@ -1070,7 +1070,7 @@ > 9391F273121B38BD00EBF7E8 /* WebFrameNetworkingContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebFrameNetworkingContext.h; sourceTree = "<group>"; }; > 9391F274121B38BD00EBF7E8 /* WebFrameNetworkingContext.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebFrameNetworkingContext.mm; sourceTree = "<group>"; }; > 939811320824BF01008DF038 /* Info.plist */ = {isa = PBXFileReference; indentWidth = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = mac/Info.plist; sourceTree = SOURCE_ROOT; tabWidth = 8; usesTabs = 1; }; >- 939811330824BF01008DF038 /* WebKitLegacy.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = WebKitLegacy.framework; sourceTree = BUILT_PRODUCTS_DIR; }; >+ 939811330824BF01008DF038 /* .framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = .framework; sourceTree = BUILT_PRODUCTS_DIR; }; > 93AEB17D032C1735008635CE /* WebKitLogging.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = WebKitLogging.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; }; > 93AEB17E032C1735008635CE /* WebKitLogging.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.objc; path = WebKitLogging.m; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; }; > 93C6F14507920B93002449CD /* WebFrameViewPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = WebFrameViewPrivate.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; }; >@@ -1628,7 +1628,7 @@ > 034768DFFF38A50411DB9C8B /* Products */ = { > isa = PBXGroup; > children = ( >- 939811330824BF01008DF038 /* WebKitLegacy.framework */, >+ 939811330824BF01008DF038 /* .framework */, > ); > name = Products; > sourceTree = "<group>"; >@@ -3214,7 +3214,7 @@ > name = WebKitLegacy; > productInstallPath = /System/Library/Frameworks; > productName = WebKitLegacy; >- productReference = 939811330824BF01008DF038 /* WebKitLegacy.framework */; >+ productReference = 939811330824BF01008DF038 /* .framework */; > productType = "com.apple.product-type.framework"; > }; > /* End PBXNativeTarget section */ >diff --git a/Source/WebKitLegacy/mac/Configurations/FeatureDefines.xcconfig b/Source/WebKitLegacy/mac/Configurations/FeatureDefines.xcconfig >index 50840d826a4f8ce055531a194735df51b5167faa..17b66798a8437de3f4588bbcf0dc5260d92a578c 100644 >--- a/Source/WebKitLegacy/mac/Configurations/FeatureDefines.xcconfig >+++ b/Source/WebKitLegacy/mac/Configurations/FeatureDefines.xcconfig >@@ -355,6 +355,8 @@ ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN_macosx = ENABLE_VIDEO_USES_ELEMENT_FULLSCRE > > ENABLE_WEBASSEMBLY = ; > >+ENABLE_WEBASSEMBLY_STREAMING_API = ; >+ > ENABLE_WEBGL = ENABLE_WEBGL; > > ENABLE_WEBGL2 = ENABLE_WEBGL2; >@@ -381,4 +383,4 @@ ENABLE_WIRELESS_PLAYBACK_TARGET = ENABLE_WIRELESS_PLAYBACK_TARGET; > > ENABLE_XSLT = ENABLE_XSLT; > >-FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXTRA_ZOOM_MODE) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(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_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_INTL_PLURAL_RULES) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_JS_ASYNC_ITERATION) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MINIMAL_SIMULATOR) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT); >+FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXTRA_ZOOM_MODE) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(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_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_INTL_PLURAL_RULES) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_JS_ASYNC_ITERATION) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MINIMAL_SIMULATOR) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBASSEMBLY_STREAMING_API) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT); >diff --git a/Source/cmake/WebKitFeatures.cmake b/Source/cmake/WebKitFeatures.cmake >index 4aed8cb00a64a36598a5b8fe149633c38526ed01..0bbbd1fe2bcc7c4cd42a0dc706356d41a5f4d057 100644 >--- a/Source/cmake/WebKitFeatures.cmake >+++ b/Source/cmake/WebKitFeatures.cmake >@@ -175,6 +175,7 @@ macro(WEBKIT_OPTION_BEGIN) > WEBKIT_OPTION_DEFINE(ENABLE_VIDEO_TRACK "Toggle Track support for HTML5 video" PRIVATE ON) > WEBKIT_OPTION_DEFINE(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN "Toggle video element fullscreen support" PRIVATE ON) > WEBKIT_OPTION_DEFINE(ENABLE_WEBASSEMBLY "Toggle WebAssembly support" PRIVATE ${ENABLE_FTL_DEFAULT}) >+ WEBKIT_OPTION_DEFINE(ENABLE_WEBASSEMBLY_STREAMING_API "Toggle WebAssembly streaming api support." PRIVATE OFF) > WEBKIT_OPTION_DEFINE(ENABLE_WEBDRIVER "Whether to enable the WebDriver service process" PRIVATE OFF) > WEBKIT_OPTION_DEFINE(ENABLE_WEBGL "Toggle WebGL support" PRIVATE ON) > WEBKIT_OPTION_DEFINE(ENABLE_WEBGL2 "Toggle WebGL 2.0 support" PRIVATE OFF) >diff --git a/Tools/ChangeLog b/Tools/ChangeLog >index 5f79440757d43bbc2a53367644569ddff278741a..a3ee3e610105035f50bfa97e69b5615c1ba22ecc 100644 >--- a/Tools/ChangeLog >+++ b/Tools/ChangeLog >@@ -1,3 +1,12 @@ >+2018-04-28 Oleksandr Skachkov <gskachkov@gmail.com> >+ >+ WebAssembly: add support for stream APIs - JavaScript API >+ https://bugs.webkit.org/show_bug.cgi?id=183442 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: >+ > 2018-04-28 Sihui Liu <sihui_liu@apple.com> > > [Cocoa] Set HTTPOnly flag when converting Cookie to NSHTTPCookie >diff --git a/Tools/TestWebKitAPI/Configurations/FeatureDefines.xcconfig b/Tools/TestWebKitAPI/Configurations/FeatureDefines.xcconfig >index 50840d826a4f8ce055531a194735df51b5167faa..17b66798a8437de3f4588bbcf0dc5260d92a578c 100644 >--- a/Tools/TestWebKitAPI/Configurations/FeatureDefines.xcconfig >+++ b/Tools/TestWebKitAPI/Configurations/FeatureDefines.xcconfig >@@ -355,6 +355,8 @@ ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN_macosx = ENABLE_VIDEO_USES_ELEMENT_FULLSCRE > > ENABLE_WEBASSEMBLY = ; > >+ENABLE_WEBASSEMBLY_STREAMING_API = ; >+ > ENABLE_WEBGL = ENABLE_WEBGL; > > ENABLE_WEBGL2 = ENABLE_WEBGL2; >@@ -381,4 +383,4 @@ ENABLE_WIRELESS_PLAYBACK_TARGET = ENABLE_WIRELESS_PLAYBACK_TARGET; > > ENABLE_XSLT = ENABLE_XSLT; > >-FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXTRA_ZOOM_MODE) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(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_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_INTL_PLURAL_RULES) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_JS_ASYNC_ITERATION) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MINIMAL_SIMULATOR) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT); >+FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXTRA_ZOOM_MODE) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(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_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_INTL_PLURAL_RULES) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_JS_ASYNC_ITERATION) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MINIMAL_SIMULATOR) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBASSEMBLY_STREAMING_API) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT); >diff --git a/LayoutTests/imported/w3c/ChangeLog b/LayoutTests/imported/w3c/ChangeLog >index a4f312415438db70eca411c962f93e2b61e6eb25..f17581b5fbe1a7791760a5d415e1253a607d83cf 100644 >--- a/LayoutTests/imported/w3c/ChangeLog >+++ b/LayoutTests/imported/w3c/ChangeLog >@@ -1,3 +1,20 @@ >+2018-04-28 Oleksandr Skachkov <gskachkov@gmail.com> >+ >+ WebAssembly: add support for stream APIs - JavaScript API >+ https://bugs.webkit.org/show_bug.cgi?id=183442 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * web-platform-tests/wasm/resources/incrementer.no_mime_type.wasm: Added. >+ * web-platform-tests/wasm/resources/incrementer.wasm: Added. >+ * web-platform-tests/wasm/resources/incrementer.wasm.headers: Added. >+ * web-platform-tests/wasm/resources/incrementer.wrong_mime_type.wasm: Added. >+ * web-platform-tests/wasm/resources/incrementer.wrong_mime_type.wasm.headers: Added. >+ * web-platform-tests/wasm/wasm_stream_compile_test-expected.txt: Added. >+ * web-platform-tests/wasm/wasm_stream_compile_test.html: Added. >+ * web-platform-tests/wasm/wasm_stream_instantiate_test-expected.txt: Added. >+ * web-platform-tests/wasm/wasm_stream_instantiate_test.html: Added. >+ > 2018-04-27 Ryan Haddad <ryanhaddad@apple.com> > > Rebaseline imported/w3c/web-platform-tests/url/url-setters.html after r231110. >diff --git a/LayoutTests/imported/w3c/web-platform-tests/wasm/resources/incrementer.no_mime_type.wasm b/LayoutTests/imported/w3c/web-platform-tests/wasm/resources/incrementer.no_mime_type.wasm >new file mode 100644 >index 0000000000000000000000000000000000000000..47afcdef2a2812acccecd0f203d30d3023593f3d >GIT binary patch >literal 46 >zcmZQbEY4+QU|?WmV@zPIXRK#tVq{?FW#r7vOD;;yP0cG|VBq3pWM@!daAeHl1^}?K >B2ZjIu > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/wasm/resources/incrementer.wasm b/LayoutTests/imported/w3c/web-platform-tests/wasm/resources/incrementer.wasm >new file mode 100644 >index 0000000000000000000000000000000000000000..47afcdef2a2812acccecd0f203d30d3023593f3d >GIT binary patch >literal 46 >zcmZQbEY4+QU|?WmV@zPIXRK#tVq{?FW#r7vOD;;yP0cG|VBq3pWM@!daAeHl1^}?K >B2ZjIu > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/wasm/resources/incrementer.wasm.headers b/LayoutTests/imported/w3c/web-platform-tests/wasm/resources/incrementer.wasm.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..76b9c163b6cd337d653dce90f82b3ab24dc1239a >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/wasm/resources/incrementer.wasm.headers >@@ -0,0 +1,2 @@ >+Content-Type: application/wasm >+Cache-Control: max-age=3600 >diff --git a/LayoutTests/imported/w3c/web-platform-tests/wasm/resources/incrementer.wrong_mime_type.wasm b/LayoutTests/imported/w3c/web-platform-tests/wasm/resources/incrementer.wrong_mime_type.wasm >new file mode 100644 >index 0000000000000000000000000000000000000000..47afcdef2a2812acccecd0f203d30d3023593f3d >GIT binary patch >literal 46 >zcmZQbEY4+QU|?WmV@zPIXRK#tVq{?FW#r7vOD;;yP0cG|VBq3pWM@!daAeHl1^}?K >B2ZjIu > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/wasm/resources/incrementer.wrong_mime_type.wasm.headers b/LayoutTests/imported/w3c/web-platform-tests/wasm/resources/incrementer.wrong_mime_type.wasm.headers >new file mode 100644 >index 0000000000000000000000000000000000000000..833ee71634def23f8dc089c8f89fbc09d8d69754 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/wasm/resources/incrementer.wrong_mime_type.wasm.headers >@@ -0,0 +1,2 @@ >+Content-Type: text/css >+Cache-Control: max-age=3600 >diff --git a/LayoutTests/imported/w3c/web-platform-tests/wasm/wasm_stream_compile_test-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/wasm/wasm_stream_compile_test-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..613636078d6413592308d507c15f8dea71853254 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/wasm/wasm_stream_compile_test-expected.txt >@@ -0,0 +1,12 @@ >+ >+FAIL compileStreaming using resolved response promise_test: Unhandled rejection with value: object "TypeError: WebAssembly.compileStreaming is not a function. (In 'WebAssembly.compileStreaming(response)', 'WebAssembly.compileStreaming' is undefined)" >+FAIL compileStreaming using resolved response and check instantiate promise_test: Unhandled rejection with value: object "TypeError: WebAssembly.compileStreaming is not a function. (In 'WebAssembly.compileStreaming(response)', 'WebAssembly.compileStreaming' is undefined)" >+FAIL compileStreaming using promise response from fetch and check instantiate promise_test: Unhandled rejection with value: object "TypeError: WebAssembly.compileStreaming is not a function. (In 'WebAssembly.compileStreaming(result)', 'WebAssembly.compileStreaming' is undefined)" >+FAIL compileStreaming raise error if wrong mime type assert_true: expected true got false >+FAIL compileStreaming raise error if no mime type assert_true: expected true got false >+FAIL compileStreaming raise error if 404 status assert_equals: expected "Response has not returned OK status" but got "WebAssembly.compileStreaming is not a function. (In 'WebAssembly.compileStreaming(result)', 'WebAssembly.compileStreaming' is undefined)" >+FAIL compileStreaming check CORS promise_test: Unhandled rejection with value: object "TypeError: WebAssembly.compileStreaming is not a function. (In 'WebAssembly.compileStreaming(result)', 'WebAssembly.compileStreaming' is undefined)" >+FAIL compileStreaming raise error if no-cors assert_equals: expected "Response is not CORS-same-origin" but got "WebAssembly.compileStreaming is not a function. (In 'WebAssembly.compileStreaming(result)', 'WebAssembly.compileStreaming' is undefined)" >+FAIL compileStreaming receive promise with response created from ArrayBuffer promise_test: Unhandled rejection with value: object "TypeError: WebAssembly.compileStreaming is not a function. (In 'WebAssembly.compileStreaming(new Response(v, { headers: { "Content-Type" : "application/wasm" }}))', 'WebAssembly.compileStreaming' is undefined)" >+FAIL compileStreaming receive response that deliver data by chunks as bufferArray promise_test: Unhandled rejection with value: object "TypeError: WebAssembly.compileStreaming is not a function. (In 'WebAssembly.compileStreaming(new Response(stream, { headers: { "Content-Type" : "application/wasm" }}))', 'WebAssembly.compileStreaming' is undefined)" >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/wasm/wasm_stream_compile_test.html b/LayoutTests/imported/w3c/web-platform-tests/wasm/wasm_stream_compile_test.html >new file mode 100644 >index 0000000000000000000000000000000000000000..9273ff195a7262f07633b62e3e8458cec0dcd0db >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/wasm/wasm_stream_compile_test.html >@@ -0,0 +1,109 @@ >+<!DOCTYPE html> >+<script src="/resources/testharness.js"></script> >+<script src="/resources/testharnessreport.js"></script> >+<script src="/common/get-host-info.sub.js"></script> >+<script> >+ >+ promise_test(async function() { >+ var response = await fetch('resources/incrementer.wasm'); >+ const module = await WebAssembly.compileStreaming(response); >+ assert_true(module instanceof WebAssembly.Module); >+ }, "compileStreaming using resolved response"); >+ >+ promise_test(async function() { >+ var response = await fetch('resources/incrementer.wasm'); >+ const module = await WebAssembly.compileStreaming(response); >+ const instance = new WebAssembly.Instance(module); >+ assert_true(instance instanceof WebAssembly.Instance); >+ }, "compileStreaming using resolved response and check instantiate"); >+ >+ promise_test(async function() { >+ var result = fetch('resources/incrementer.wasm'); >+ const module = await WebAssembly.compileStreaming(result); >+ const instance = new WebAssembly.Instance(module); >+ assert_true(instance instanceof WebAssembly.Instance); >+ }, "compileStreaming using promise response from fetch and check instantiate"); >+ >+ promise_test(async function() { >+ try { >+ var result = fetch('resources/incrementer.wrong_mime_type.wasm'); >+ const module = await WebAssembly.compileStreaming(result); >+ assert_true(false); >+ } catch (e) { >+ assert_true(e.message.includes('MIME type')); >+ assert_true(e instanceof Error); >+ } >+ }, "compileStreaming raise error if wrong mime type"); >+ >+ promise_test(async function() { >+ try { >+ var result = fetch('resources/incrementer.no_mime_type.wasm'); >+ const module = await WebAssembly.compileStreaming(result); >+ assert_true(false); >+ } catch (e) { >+ assert_true(e.message.includes('MIME type')); >+ assert_true(e instanceof Error); >+ } >+ }, "compileStreaming raise error if no mime type"); >+ >+ promise_test(async function() { >+ try { >+ var result = fetch('resources/incrementer1.wasm'); >+ const module = await WebAssembly.compileStreaming(result); >+ assert_true(false); >+ } catch (e) { >+ assert_equals(e.message, "Response has not returned OK status"); >+ assert_true(e instanceof Error); >+ } >+ }, "compileStreaming raise error if 404 status"); >+ >+ const getWasmUrl = fileName => { >+ var host_info = get_host_info(); >+ var url = host_info.HTTP_ORIGIN_WITH_DIFFERENT_PORT + '/wasm/'; >+ return url + fileName + "?pipe=header(Access-Control-Allow-Origin,*)"; >+ }; >+ >+ promise_test(async function() { >+ var result = fetch(getWasmUrl('resources/incrementer.wasm'), {"mode": "cors"} ); >+ const module = await WebAssembly.compileStreaming(result); >+ assert_true(module instanceof WebAssembly.Module); >+ }, "compileStreaming check CORS"); >+ >+ promise_test(async function() { >+ try { >+ var result = fetch(getWasmUrl('resources/incrementer.wasm'), {"mode": "no-cors"} ); >+ const module = await WebAssembly.compileStreaming(result); >+ assert_true(false); >+ } catch (e) { >+ assert_equals(e.message, "Response is not CORS-same-origin"); >+ assert_true(e instanceof Error); >+ } >+ }, "compileStreaming raise error if no-cors"); >+ >+ promise_test(async function() { >+ const module = await fetch('resources/incrementer.wasm') >+ .then(v => v.arrayBuffer()) >+ .then(v => WebAssembly.compileStreaming(new Response(v, { headers: { "Content-Type" : "application/wasm" }}))); >+ assert_true(module instanceof WebAssembly.Module); >+ }, "compileStreaming receive promise with response created from ArrayBuffer"); >+ >+ promise_test(async function() { >+ const module = await fetch('resources/incrementer.wasm') >+ .then(v => v.arrayBuffer()) >+ .then(buffer => { >+ const stream = new ReadableStream({ >+ start(controller) { >+ (async () => { >+ await Promise.resolve().then(() => controller.enqueue(buffer.slice(0, 20))); >+ await Promise.resolve().then(() => controller.enqueue(buffer.slice(20, buffer.byteLength))); >+ await Promise.resolve().then(() => controller.close()); >+ })(); >+ } >+ }); >+ return stream; >+ }) >+ .then(stream => WebAssembly.compileStreaming(new Response(stream, { headers: { "Content-Type" : "application/wasm" }}))); >+ assert_true(module instanceof WebAssembly.Module); >+ }, "compileStreaming receive response that deliver data by chunks as bufferArray"); >+</script> >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/wasm/wasm_stream_instantiate_test-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/wasm/wasm_stream_instantiate_test-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..4137cc491628c995bc59b4106e1f30c0b11ea360 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/wasm/wasm_stream_instantiate_test-expected.txt >@@ -0,0 +1,12 @@ >+ >+FAIL instantiateStreaming using resolved response promise_test: Unhandled rejection with value: object "TypeError: WebAssembly.instantiateStreaming is not a function. (In 'WebAssembly.instantiateStreaming(response)', 'WebAssembly.instantiateStreaming' is undefined)" >+FAIL instantiateStreaming using resolved response and check instantiate promise_test: Unhandled rejection with value: object "TypeError: WebAssembly.instantiateStreaming is not a function. (In 'WebAssembly.instantiateStreaming(response)', 'WebAssembly.instantiateStreaming' is undefined)" >+FAIL instantiateStreaming using promise response from fetch and check instantiate promise_test: Unhandled rejection with value: object "TypeError: WebAssembly.instantiateStreaming is not a function. (In 'WebAssembly.instantiateStreaming(result)', 'WebAssembly.instantiateStreaming' is undefined)" >+FAIL instantiateStreaming raise error if wrong mime type assert_true: expected true got false >+FAIL instantiateStreaming raise error if no mime type assert_true: expected true got false >+FAIL instantiateStreaming raise error if 404 status assert_equals: expected "Response has not returned OK status" but got "WebAssembly.instantiateStreaming is not a function. (In 'WebAssembly.instantiateStreaming(result)', 'WebAssembly.instantiateStreaming' is undefined)" >+FAIL instantiateStreaming check CORS promise_test: Unhandled rejection with value: object "TypeError: WebAssembly.instantiateStreaming is not a function. (In 'WebAssembly.instantiateStreaming(result)', 'WebAssembly.instantiateStreaming' is undefined)" >+FAIL instantiateStreaming raise error if no-cors assert_equals: expected "Response is not CORS-same-origin" but got "WebAssembly.instantiateStreaming is not a function. (In 'WebAssembly.instantiateStreaming(result)', 'WebAssembly.instantiateStreaming' is undefined)" >+FAIL instantiateStreaming receive promise with response created from ArrayBuffer promise_test: Unhandled rejection with value: object "TypeError: WebAssembly.instantiateStreaming is not a function. (In 'WebAssembly.instantiateStreaming(new Response(v, { headers: { "Content-Type" : "application/wasm" }}))', 'WebAssembly.instantiateStreaming' is undefined)" >+FAIL instantiateStreaming receive response that deliver data by chunks as bufferArray promise_test: Unhandled rejection with value: object "TypeError: WebAssembly.instantiateStreaming is not a function. (In 'WebAssembly.instantiateStreaming(new Response(stream, { headers: { "Content-Type" : "application/wasm" }}))', 'WebAssembly.instantiateStreaming' is undefined)" >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/wasm/wasm_stream_instantiate_test.html b/LayoutTests/imported/w3c/web-platform-tests/wasm/wasm_stream_instantiate_test.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2d0f35d6cfb668235de13273e611bc1d524f3b1b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/wasm/wasm_stream_instantiate_test.html >@@ -0,0 +1,106 @@ >+<!DOCTYPE html> >+<script src="/resources/testharness.js"></script> >+<script src="/resources/testharnessreport.js"></script> >+<script src="/common/get-host-info.sub.js"></script> >+<script> >+ promise_test(async function() { >+ var response = await fetch('resources/incrementer.wasm'); >+ const { instance, module } = await WebAssembly.instantiateStreaming(response); >+ assert_true(instance instanceof WebAssembly.Instance); >+ assert_true(module instanceof WebAssembly.Module); >+ }, "instantiateStreaming using resolved response"); >+ >+ promise_test(async function() { >+ var response = await fetch('resources/incrementer.wasm'); >+ const { instance } = await WebAssembly.instantiateStreaming(response); >+ assert_true(instance instanceof WebAssembly.Instance); >+ }, "instantiateStreaming using resolved response and check instantiate"); >+ >+ promise_test(async function() { >+ var result = fetch('resources/incrementer.wasm'); >+ const { instance } = await WebAssembly.instantiateStreaming(result); >+ assert_true(instance instanceof WebAssembly.Instance); >+ }, "instantiateStreaming using promise response from fetch and check instantiate"); >+ >+ promise_test(async function() { >+ try { >+ var result = fetch('resources/incrementer.wrong_mime_type.wasm'); >+ const { instance } = await WebAssembly.instantiateStreaming(result); >+ assert_true(false); >+ } catch (e) { >+ assert_true(e.message.includes('MIME type')); >+ assert_true(e instanceof Error); >+ } >+ }, "instantiateStreaming raise error if wrong mime type"); >+ >+ promise_test(async function() { >+ try { >+ var result = fetch('resources/incrementer.no_mime_type.wasm'); >+ const { instance } = await WebAssembly.instantiateStreaming(result); >+ assert_true(false); >+ } catch (e) { >+ assert_true(e.message.includes('MIME type')); >+ assert_true(e instanceof Error); >+ } >+ }, "instantiateStreaming raise error if no mime type"); >+ >+ promise_test(async function() { >+ try { >+ var result = fetch('resources/incrementer1.wasm'); >+ const { instance } = await WebAssembly.instantiateStreaming(result); >+ assert_true(false); >+ } catch (e) { >+ assert_equals(e.message, "Response has not returned OK status"); >+ assert_true(e instanceof Error); >+ } >+ }, "instantiateStreaming raise error if 404 status"); >+ >+ const getWasmUrl = fileName => { >+ var host_info = get_host_info(); >+ var url = host_info.HTTP_ORIGIN_WITH_DIFFERENT_PORT + '/wasm/'; >+ return url + fileName + "?pipe=header(Access-Control-Allow-Origin,*)"; >+ }; >+ >+ promise_test(async function() { >+ var result = fetch(getWasmUrl('resources/incrementer.wasm'), {"mode": "cors"} ); >+ const { instance } = await WebAssembly.instantiateStreaming(result); >+ assert_true(instance instanceof WebAssembly.Instance); >+ }, "instantiateStreaming check CORS"); >+ >+ promise_test(async function() { >+ try { >+ var result = fetch(getWasmUrl('resources/incrementer.wasm'), {"mode": "no-cors"} ); >+ const { instance } = await WebAssembly.instantiateStreaming(result); >+ assert_true(false); >+ } catch (e) { >+ assert_equals(e.message, "Response is not CORS-same-origin"); >+ assert_true(e instanceof Error); >+ } >+ }, "instantiateStreaming raise error if no-cors"); >+ >+ promise_test(async function() { >+ const { instance } = await fetch('resources/incrementer.wasm') >+ .then(v => v.arrayBuffer()) >+ .then(v => WebAssembly.instantiateStreaming(new Response(v, { headers: { "Content-Type" : "application/wasm" }}))); >+ assert_true(instance instanceof WebAssembly.Instance); >+ }, "instantiateStreaming receive promise with response created from ArrayBuffer"); >+ >+ promise_test(async function() { >+ const { instance } = a = await fetch('resources/incrementer.wasm') >+ .then(v => v.arrayBuffer()) >+ .then(buffer => { >+ const stream = new ReadableStream({ >+ start(controller) { >+ (async () => { >+ await Promise.resolve().then(() => controller.enqueue(buffer.slice(0, 20))); >+ await Promise.resolve().then(() => controller.enqueue(buffer.slice(20, buffer.byteLength))); >+ await Promise.resolve().then(() => controller.close()); >+ })(); >+ } >+ }); >+ return stream; >+ }) >+ .then(stream => WebAssembly.instantiateStreaming(new Response(stream, { headers: { "Content-Type" : "application/wasm" }}))); >+ assert_true(instance instanceof WebAssembly.Instance); >+ }, "instantiateStreaming receive response that deliver data by chunks as bufferArray"); >+</script> >\ No newline at end of file >diff --git a/ChangeLog b/ChangeLog >index 58ba7ebe482742983bbfbd32bea7cfb4b89b6633..39195de895031d3827ab4e5fbac45b050021b4ff 100644 >--- a/ChangeLog >+++ b/ChangeLog >@@ -1,3 +1,32 @@ >+2018-04-28 Oleksandr Skachkov <gskachkov@gmail.com> >+ >+ WebAssembly: add support for stream APIs - JavaScript API >+ https://bugs.webkit.org/show_bug.cgi?id=183442 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * Source/cmake/WebKitFeatures.cmake: >+ >+2018-04-28 Oleksandr Skachkov <gskachkov@gmail.com> >+ >+ WebAssembly: add support for stream APIs - JavaScript API >+ https://bugs.webkit.org/show_bug.cgi?id=183442 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * Source/cmake/WebKitFeatures.cmake: >+ >+2018-04-24 Oleksandr Skachkov <gskachkov@gmail.com> >+ >+ WebAssembly: add support for stream APIs - JavaScript API >+ https://bugs.webkit.org/show_bug.cgi?id=183442 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Add WEBASSEMBLY_STREAMING_API feature flag >+ >+ * Source/cmake/WebKitFeatures.cmake: >+ > 2018-04-26 Daniel Bates <dabates@apple.com> > > ASSERTION FAILED: ASSERT(!containsImage || MIMETypeRegistry::isSupportedImageResourceMIMEType([resource MIMEType])) in -[NSPasteboard(WebExtras) _web_writePromisedRTFDFromArchive:containsImage:]
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 183442
:
337019
|
337296
|
338599
|
338662
|
338861
|
338864
|
338865
|
338869
|
338870
|
339089
|
339090
|
339093
|
339098
|
339100
|
339146