Title: [190716] trunk/Source
Revision
190716
Author
[email protected]
Date
2015-10-08 02:55:30 -0700 (Thu, 08 Oct 2015)

Log Message

Automate WebCore JS builtins generation and build system
https://bugs.webkit.org/show_bug.cgi?id=149751

Reviewed by Darin Adler.

Source/_javascript_Core:

* generate-js-builtins: updating the part related to WebCore JS binding.

Source/WebCore:

Adding annotations to JS files to know whether they should be under a compilation flag and
whether they are JS internals or JS tied to WebIDL.
If a file is said as JS internals, all function names are exported automatically.
Added auto generation of WebCoreJSBuiltins.cpp
Added auto generation of JSBuiltinFunctions class inside WebCoreJSBuiltins that takes the role of
WebCoreJSClientData as wrapper for builtins.
Added auto generation of WebCoreJSBuiltinInternals.h which contain a wrapper around all private functions, used by
JSDOMWindowBase. The class is named JSBuiltinInternalFunctions.
Renamed WebCoreJSClientData to JSVMClientData.

The remaining manual part for private functions is the pairing between private identifiers and
the private JS functions within JSDOMWindowBase::finishCreation.

Covered by existing tests.

* CMakeLists.txt:
* DerivedSources.make:
* Modules/streams/ByteLengthQueuingStrategy.js:
* Modules/streams/CountQueuingStrategy.js:
* Modules/streams/ReadableStream.js:
* Modules/streams/ReadableStreamInternals.js:
* WebCore.order:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/DOMWrapperWorld.cpp:
(WebCore::DOMWrapperWorld::DOMWrapperWorld):
(WebCore::DOMWrapperWorld::~DOMWrapperWorld):
(WebCore::normalWorld):
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::JSDOMWindowBase):
(WebCore::JSDOMWindowBase::finishCreation):
(WebCore::JSDOMWindowBase::visitChildren):
(WebCore::JSDOMWindowBase::fireFrameClearedWatchpointsForWindow):
* bindings/js/JSDOMWindowBase.h:
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::getAllWorlds):
* bindings/js/SerializedScriptValue.cpp:
(WebCore::SerializedScriptValue::transferArrayBuffers):
* bindings/js/WebCoreJSClientData.h:
(WebCore::JSClientData::JSClientData):
(WebCore::JSClientData::~JSClientData):
(WebCore::JSClientData::builtinFunctions):
(WebCore::initNormalWorldClientData):
(WebCore::WebCoreJSClientData::WebCoreJSClientData): Deleted.
(WebCore::WebCoreJSClientData::~WebCoreJSClientData): Deleted.
(WebCore::WebCoreJSClientData::readableStreamBuiltins): Deleted.
(WebCore::WebCoreJSClientData::readableStreamControllerBuiltins): Deleted.
(WebCore::WebCoreJSClientData::readableStreamInternalsBuiltins): Deleted.
(WebCore::WebCoreJSClientData::readableStreamReaderBuiltins): Deleted.
(WebCore::WebCoreJSClientData::byteLengthQueuingStrategyBuiltins): Deleted.
(WebCore::WebCoreJSClientData::countQueuingStrategyBuiltins): Deleted.
* generate-js-builtins-allinone: Added.
(retrieveGenerationParameters):
(retrieveFilesWithParameters):
(retrieveFilesWithParameters.FileInput):
(writeConditional):
(JSBuiltinFunctions):
(Private):
(JSBuiltinInternalFunctions):
(copytempfile):

Modified Paths

Added Paths

Removed Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (190715 => 190716)


--- trunk/Source/_javascript_Core/ChangeLog	2015-10-08 07:33:59 UTC (rev 190715)
+++ trunk/Source/_javascript_Core/ChangeLog	2015-10-08 09:55:30 UTC (rev 190716)
@@ -1,3 +1,12 @@
+2015-10-08  Xabier Rodriguez Calvar  <[email protected]> and Youenn Fablet  <[email protected]>
+
+        Automate WebCore JS builtins generation and build system
+        https://bugs.webkit.org/show_bug.cgi?id=149751
+
+        Reviewed by Darin Adler.
+
+        * generate-js-builtins: updating the part related to WebCore JS binding.
+
 2015-10-07  Joseph Pecoraro  <[email protected]>
 
         Clean up Copied classes

Modified: trunk/Source/_javascript_Core/generate-js-builtins (190715 => 190716)


--- trunk/Source/_javascript_Core/generate-js-builtins	2015-10-08 07:33:59 UTC (rev 190715)
+++ trunk/Source/_javascript_Core/generate-js-builtins	2015-10-08 09:55:30 UTC (rev 190716)
@@ -314,8 +314,8 @@
 else:
     builtinName = scopeName[0].lower() + scopeName[1:]
     builtinsImplementation.write("""{\\
-    WebCoreJSClientData* clientData = static_cast<WebCoreJSClientData*>(vm.clientData); \\
-    return clientData->%s().codeName##Executable()->link(vm, clientData->%s().codeName##Source()); \\
+    JSVMClientData* clientData = static_cast<JSVMClientData*>(vm.clientData); \\
+    return clientData->builtinFunctions().%s().codeName##Executable()->link(vm, clientData->builtinFunctions().%s().codeName##Source()); \\
 """% (builtinName, builtinName))
 
 builtinsImplementation.write("""}

Modified: trunk/Source/WebCore/CMakeLists.txt (190715 => 190716)


--- trunk/Source/WebCore/CMakeLists.txt	2015-10-08 07:33:59 UTC (rev 190715)
+++ trunk/Source/WebCore/CMakeLists.txt	2015-10-08 09:55:30 UTC (rev 190716)
@@ -1242,7 +1242,6 @@
     bindings/js/ScriptGlobalObject.cpp
     bindings/js/ScriptState.cpp
     bindings/js/SerializedScriptValue.cpp
-    bindings/js/WebCoreJSBuiltins.cpp
     bindings/js/WebCoreTypedArrayController.cpp
     bindings/js/WorkerScriptController.cpp
     bindings/js/WorkerScriptDebugServer.cpp
@@ -3582,7 +3581,7 @@
     get_filename_component(_name ${_builtinjs} NAME_WE)
     add_custom_command(
         OUTPUT ${DERIVED_SOURCES_WEBCORE_DIR}/${_name}BuiltinsWrapper.h ${DERIVED_SOURCES_WEBCORE_DIR}/${_name}Builtins.h ${DERIVED_SOURCES_WEBCORE_DIR}/${_name}Builtins.cpp
-        MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/generate-js-builtins
+        MAIN_DEPENDENCY ${WEBCORE_DIR}/generate-js-builtins
         DEPENDS ${WebCore_GENERATE_JS_BUILTINS_SCRIPTS_DIR}/generate-js-builtins
         DEPENDS ${_builtinjs}
         COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/generate-js-builtins --input ${_builtinjs} --output_dir ${DERIVED_SOURCES_WEBCORE_DIR} --generate_js_builtins_path ${WebCore_GENERATE_JS_BUILTINS_SCRIPTS_DIR}
@@ -3593,6 +3592,17 @@
     )
     ADD_SOURCE_WEBCORE_DERIVED_DEPENDENCIES(${WEBCORE_DIR}/bindings/js/WebCoreJSBuiltins.cpp ${_name}Builtins.cpp)
 endforeach ()
+add_custom_command(
+    OUTPUT ${DERIVED_SOURCES_WEBCORE_DIR}/WebCoreJSBuiltinInternals.h ${DERIVED_SOURCES_WEBCORE_DIR}/WebCoreJSBuiltins.h ${DERIVED_SOURCES_WEBCORE_DIR}/WebCoreJSBuiltins.cpp
+    MAIN_DEPENDENCY ${WEBCORE_DIR}/generate-js-builtins-allinone
+    DEPENDS ${WEBCORE_JS_BUILTINS}
+    COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/generate-js-builtins-allinone ${WEBCORE_JS_BUILTINS} --output_dir ${DERIVED_SOURCES_WEBCORE_DIR}
+    VERBATIM)
+list(APPEND WebCore_SOURCES
+    ${DERIVED_SOURCES_WEBCORE_DIR}/WebCoreJSBuiltinInternals.h
+    ${DERIVED_SOURCES_WEBCORE_DIR}/WebCoreJSBuiltins.h
+    ${DERIVED_SOURCES_WEBCORE_DIR}/WebCoreJSBuiltins.cpp
+)
 
 ADD_SOURCE_WEBCORE_DERIVED_DEPENDENCIES(${WEBCORE_DIR}/html/HTMLTreeBuilder.cpp MathMLNames.cpp)
 

Modified: trunk/Source/WebCore/ChangeLog (190715 => 190716)


--- trunk/Source/WebCore/ChangeLog	2015-10-08 07:33:59 UTC (rev 190715)
+++ trunk/Source/WebCore/ChangeLog	2015-10-08 09:55:30 UTC (rev 190716)
@@ -1,3 +1,71 @@
+2015-10-08  Xabier Rodriguez Calvar  <[email protected]> and Youenn Fablet  <[email protected]>
+
+        Automate WebCore JS builtins generation and build system
+        https://bugs.webkit.org/show_bug.cgi?id=149751
+
+        Reviewed by Darin Adler.
+
+        Adding annotations to JS files to know whether they should be under a compilation flag and
+        whether they are JS internals or JS tied to WebIDL.
+        If a file is said as JS internals, all function names are exported automatically.
+        Added auto generation of WebCoreJSBuiltins.cpp
+        Added auto generation of JSBuiltinFunctions class inside WebCoreJSBuiltins that takes the role of
+        WebCoreJSClientData as wrapper for builtins.
+        Added auto generation of WebCoreJSBuiltinInternals.h which contain a wrapper around all private functions, used by
+        JSDOMWindowBase. The class is named JSBuiltinInternalFunctions.
+        Renamed WebCoreJSClientData to JSVMClientData.
+
+        The remaining manual part for private functions is the pairing between private identifiers and
+        the private JS functions within JSDOMWindowBase::finishCreation.
+
+        Covered by existing tests.
+
+        * CMakeLists.txt:
+        * DerivedSources.make:
+        * Modules/streams/ByteLengthQueuingStrategy.js:
+        * Modules/streams/CountQueuingStrategy.js:
+        * Modules/streams/ReadableStream.js:
+        * Modules/streams/ReadableStreamInternals.js:
+        * WebCore.order:
+        * WebCore.vcxproj/WebCore.vcxproj:
+        * WebCore.xcodeproj/project.pbxproj:
+        * bindings/js/DOMWrapperWorld.cpp:
+        (WebCore::DOMWrapperWorld::DOMWrapperWorld):
+        (WebCore::DOMWrapperWorld::~DOMWrapperWorld):
+        (WebCore::normalWorld):
+        * bindings/js/JSDOMWindowBase.cpp:
+        (WebCore::JSDOMWindowBase::JSDOMWindowBase):
+        (WebCore::JSDOMWindowBase::finishCreation):
+        (WebCore::JSDOMWindowBase::visitChildren):
+        (WebCore::JSDOMWindowBase::fireFrameClearedWatchpointsForWindow):
+        * bindings/js/JSDOMWindowBase.h:
+        * bindings/js/ScriptController.cpp:
+        (WebCore::ScriptController::getAllWorlds):
+        * bindings/js/SerializedScriptValue.cpp:
+        (WebCore::SerializedScriptValue::transferArrayBuffers):
+        * bindings/js/WebCoreJSClientData.h:
+        (WebCore::JSClientData::JSClientData):
+        (WebCore::JSClientData::~JSClientData):
+        (WebCore::JSClientData::builtinFunctions):
+        (WebCore::initNormalWorldClientData):
+        (WebCore::WebCoreJSClientData::WebCoreJSClientData): Deleted.
+        (WebCore::WebCoreJSClientData::~WebCoreJSClientData): Deleted.
+        (WebCore::WebCoreJSClientData::readableStreamBuiltins): Deleted.
+        (WebCore::WebCoreJSClientData::readableStreamControllerBuiltins): Deleted.
+        (WebCore::WebCoreJSClientData::readableStreamInternalsBuiltins): Deleted.
+        (WebCore::WebCoreJSClientData::readableStreamReaderBuiltins): Deleted.
+        (WebCore::WebCoreJSClientData::byteLengthQueuingStrategyBuiltins): Deleted.
+        (WebCore::WebCoreJSClientData::countQueuingStrategyBuiltins): Deleted.
+        * generate-js-builtins-allinone: Added.
+        (retrieveGenerationParameters):
+        (retrieveFilesWithParameters):
+        (retrieveFilesWithParameters.FileInput):
+        (writeConditional):
+        (JSBuiltinFunctions):
+        (Private):
+        (JSBuiltinInternalFunctions):
+        (copytempfile):
+
 2015-10-08  Youenn Fablet  <[email protected]>
 
         Binding generated JS constructors should use GlobalObject references

Modified: trunk/Source/WebCore/DerivedSources.make (190715 => 190716)


--- trunk/Source/WebCore/DerivedSources.make	2015-10-08 07:33:59 UTC (rev 190715)
+++ trunk/Source/WebCore/DerivedSources.make	2015-10-08 09:55:30 UTC (rev 190716)
@@ -1251,7 +1251,7 @@
 
 # WebCore JS Builtins
 
-WEBCORE_JS_BUILTINS = \
+WEBCORE_JS_BUILTINS_SOURCE = \
     $(WebCore)/Modules/streams/ByteLengthQueuingStrategy.js \
     $(WebCore)/Modules/streams/CountQueuingStrategy.js \
     $(WebCore)/Modules/streams/ReadableStream.js \
@@ -1260,9 +1260,16 @@
     $(WebCore)/Modules/streams/ReadableStreamReader.js \
 #
 
-all : $(WEBCORE_JS_BUILTINS:%.js=%Builtins.cpp)
+.PHONY: WebCoreJSBuiltins
+WebCoreJSBuiltins: WebCoreJSBuiltins.cpp WebCoreJSBuiltins.h WebCoreJSBuiltinInternals.h
+all : WebCoreJSBuiltins $(WEBCORE_JS_BUILTINS_SOURCE:%.js=%Builtins.h) $(WEBCORE_JS_BUILTINS_SOURCE:%.js=%BuiltinsWrapper.h) $(WEBCORE_JS_BUILTINS_SOURCE:%.js=%Builtins.cpp)
 
-%Builtins.cpp: %.js
+WebCoreJSBuiltins.cpp: WebCoreJSBuiltinInternals.h WebCoreJSBuiltins.h
+WebCoreJSBuiltins.cpp WebCoreJSBuiltins.h WebCoreJSBuiltinInternals.h: $(WEBCORE_JS_BUILTINS_SOURCE) $(WebCore)/generate-js-builtins-allinone
+	$(PYTHON) $(WebCore)/generate-js-builtins-allinone $(WEBCORE_JS_BUILTINS_SOURCE)  --output_dir .
+
+%Builtins.cpp: %Builtins.h %BuiltinsWrapper.h
+%Builtins.h %Builtins.cpp %BuiltinsWrapper.h: %.js $(WebCore)/generate-js-builtins
 	$(PYTHON) $(WebCore)/generate-js-builtins --input $< --generate_js_builtins_path $(GenerateJSBuiltinsScripts)
 
 # ------------------------

Modified: trunk/Source/WebCore/Modules/streams/ByteLengthQueuingStrategy.js (190715 => 190716)


--- trunk/Source/WebCore/Modules/streams/ByteLengthQueuingStrategy.js	2015-10-08 07:33:59 UTC (rev 190715)
+++ trunk/Source/WebCore/Modules/streams/ByteLengthQueuingStrategy.js	2015-10-08 09:55:30 UTC (rev 190716)
@@ -24,6 +24,8 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+// @optional=STREAMS_API
+
 function size(chunk)
 {
     "use strict";

Modified: trunk/Source/WebCore/Modules/streams/CountQueuingStrategy.js (190715 => 190716)


--- trunk/Source/WebCore/Modules/streams/CountQueuingStrategy.js	2015-10-08 07:33:59 UTC (rev 190715)
+++ trunk/Source/WebCore/Modules/streams/CountQueuingStrategy.js	2015-10-08 09:55:30 UTC (rev 190716)
@@ -23,6 +23,8 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+// @optional=STREAMS_API
+
 function size()
 {
     "use strict";

Modified: trunk/Source/WebCore/Modules/streams/ReadableStream.js (190715 => 190716)


--- trunk/Source/WebCore/Modules/streams/ReadableStream.js	2015-10-08 07:33:59 UTC (rev 190715)
+++ trunk/Source/WebCore/Modules/streams/ReadableStream.js	2015-10-08 09:55:30 UTC (rev 190716)
@@ -97,6 +97,8 @@
     return new @ReadableStreamReader(this);
 }
 
+// @optional=STREAMS_API
+
 function pipeThrough(streams, options)
 {
     "use strict";

Modified: trunk/Source/WebCore/Modules/streams/ReadableStreamInternals.js (190715 => 190716)


--- trunk/Source/WebCore/Modules/streams/ReadableStreamInternals.js	2015-10-08 07:33:59 UTC (rev 190715)
+++ trunk/Source/WebCore/Modules/streams/ReadableStreamInternals.js	2015-10-08 09:55:30 UTC (rev 190716)
@@ -71,6 +71,9 @@
     return this;
 }
 
+// @optional=STREAMS_API
+// @internals
+
 function teeReadableStream(stream, shouldClone)
 {
     "use strict";

Modified: trunk/Source/WebCore/WebCore.order (190715 => 190716)


--- trunk/Source/WebCore/WebCore.order	2015-10-08 07:33:59 UTC (rev 190715)
+++ trunk/Source/WebCore/WebCore.order	2015-10-08 09:55:30 UTC (rev 190716)
@@ -24723,7 +24723,7 @@
 __ZZN7WebCore12wrapperOwnerEPNS_15DOMWrapperWorldEPNS_6DOMURLEE13jsDOMURLOwner
 __ZGVZN7WebCore12wrapperOwnerEPNS_15DOMWrapperWorldEPNS_6DOMURLEE13jsDOMURLOwner
 __ZN7WebCoreL27JSDOMWindowConstructorTableE
-__ZTVN7WebCore19WebCoreJSClientDataE
+__ZTVN7WebCore19JSVMClientDataE
 __ZN7WebCoreL40JSDynamicsCompressorNodeConstructorTableE
 __ZN7WebCoreL38JSDynamicsCompressorNodePrototypeTableE
 __ZN7WebCoreL29JSDynamicsCompressorNodeTableE

Modified: trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj (190715 => 190716)


--- trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj	2015-10-08 07:33:59 UTC (rev 190715)
+++ trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj	2015-10-08 09:55:30 UTC (rev 190716)
@@ -231,6 +231,20 @@
     <ClCompile />
   </ItemDefinitionGroup>
   <ItemGroup>
+    <ClCompile Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\WebCoreJSBuiltins.cpp">
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|x64'">true</ExcludedFromBuild>
+    </ClCompile>
     <ClCompile Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\ColorData.cpp" />
     <ClCompile Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\CSSGrammar.cpp">
       <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">4065;4273;4565;4701;4702;%(DisableSpecificWarnings)</DisableSpecificWarnings>
@@ -18901,20 +18915,6 @@
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild>
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|x64'">true</ExcludedFromBuild>
     </ClCompile>
-    <ClCompile Include="..\bindings\js\WebCoreJSBuiltins.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|x64'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|x64'">true</ExcludedFromBuild>
-    </ClCompile>
     <ClCompile Include="..\bindings\js\WorkerScriptController.cpp">
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>

Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (190715 => 190716)


--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj	2015-10-08 07:33:59 UTC (rev 190715)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj	2015-10-08 09:55:30 UTC (rev 190716)
@@ -1485,7 +1485,6 @@
 		40ECAE7E16B8B67200C36103 /* JSDOMError.h in Headers */ = {isa = PBXBuildFile; fileRef = 40ECAE7D16B8B67200C36103 /* JSDOMError.h */; };
 		40ECAE8116B8B68A00C36103 /* JSDOMError.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 40ECAE8016B8B68A00C36103 /* JSDOMError.cpp */; };
 		410B7E721045FAB000D8224F /* JSMessageEventCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 410B7E711045FAB000D8224F /* JSMessageEventCustom.cpp */; };
-		411A90421BBAB47A000CF156 /* WebCoreJSBuiltins.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 411A90411BBAB46D000CF156 /* WebCoreJSBuiltins.cpp */; };
 		4123081B138C429700BCCFCA /* WebCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 93F19B1A08245E5A001E9ABC /* WebCore.framework */; };
 		41230913138C42FF00BCCFCA /* _javascript_Core.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F8216299029F4FB501000131 /* _javascript_Core.framework */; };
 		4127D5370F8AAB1D00E424F5 /* ScriptState.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4127D5360F8AAB1D00E424F5 /* ScriptState.cpp */; };
@@ -1508,7 +1507,8 @@
 		416E29A6102FA962007FC14E /* WorkerReportingProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 416E29A5102FA962007FC14E /* WorkerReportingProxy.h */; };
 		416E6FE81BBD12DF000A6043 /* ReadableStreamInternalsBuiltins.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B03D8061BB3110D00B764D9 /* ReadableStreamInternalsBuiltins.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		416E6FE91BBD12E5000A6043 /* ReadableStreamBuiltins.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B03D8061BB3110D00B764D8 /* ReadableStreamBuiltins.h */; settings = {ATTRIBUTES = (Private, ); }; };
-		416E6FEA1BBD1684000A6043 /* ReadableStreamInternalsBuiltinsWrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B03D8071BB3110D00B764D9 /* ReadableStreamInternalsBuiltinsWrapper.h */; settings = {ATTRIBUTES = (Private, ); }; };
+		416E6FEA1BBD1684000A6044 /* ReadableStreamInternalsBuiltinsWrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B03D8071BB3110D00B764DA /* ReadableStreamInternalsBuiltinsWrapper.h */; settings = {ATTRIBUTES = (Private, ); }; };
+		416E6FEA1BBD1684000A6043 /* WebCoreJSBuiltinInternals.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B03D8071BB3110D00B764D9 /* WebCoreJSBuiltinInternals.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		417253AA1354BBBC00360F2A /* MediaControlElements.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 417253A81354BBBC00360F2A /* MediaControlElements.cpp */; };
 		417253AB1354BBBC00360F2A /* MediaControlElements.h in Headers */ = {isa = PBXBuildFile; fileRef = 417253A91354BBBC00360F2A /* MediaControlElements.h */; };
 		417DA6D913734E6E007C57FB /* Internals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 417DA4CF13734326007C57FB /* Internals.cpp */; };
@@ -2632,6 +2632,7 @@
 		7C48A6D0191C9D6500026674 /* WebKitNamespace.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C48A6CE191C9D6500026674 /* WebKitNamespace.cpp */; };
 		7C48A6D1191C9D6500026674 /* WebKitNamespace.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C48A6CF191C9D6500026674 /* WebKitNamespace.h */; };
 		7C4902A218B825F8007D9298 /* DOMWheelEventInternal.h in Copy Generated Headers */ = {isa = PBXBuildFile; fileRef = 85989DCA0ACC8BBD00A0BC51 /* DOMWheelEventInternal.h */; };
+		7C4C96DC1AD4483500365A51 /* WebCoreJSBuiltins.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C4C96D81AD4483500365A51 /* WebCoreJSBuiltins.cpp */; };
 		7C4C96DC1AD4483500365A50 /* JSReadableStream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C4C96D81AD4483500365A50 /* JSReadableStream.cpp */; };
 		7C4C96DD1AD4483500365A50 /* JSReadableStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C4C96D91AD4483500365A50 /* JSReadableStream.h */; };
 		7C4C96DE1AD4483500365A50 /* JSReadableStreamReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C4C96DA1AD4483500365A50 /* JSReadableStreamReader.cpp */; };
@@ -8763,7 +8764,6 @@
 		40ECAE8016B8B68A00C36103 /* JSDOMError.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSDOMError.cpp; sourceTree = "<group>"; };
 		410B7E711045FAB000D8224F /* JSMessageEventCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSMessageEventCustom.cpp; sourceTree = "<group>"; };
 		41189EF71AD8232800B90A0D /* ReadableStreamController.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ReadableStreamController.idl; sourceTree = "<group>"; };
-		411A90411BBAB46D000CF156 /* WebCoreJSBuiltins.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebCoreJSBuiltins.cpp; sourceTree = "<group>"; };
 		4127D5360F8AAB1D00E424F5 /* ScriptState.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScriptState.cpp; sourceTree = "<group>"; };
 		4129DF811BB5B79B00322A16 /* ReadableStreamController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ReadableStreamController.h; sourceTree = "<group>"; };
 		4129DF821BB5B7A600322A16 /* ReadableStreamReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ReadableStreamReader.h; sourceTree = "<group>"; };
@@ -10050,6 +10050,7 @@
 		7C48A6CE191C9D6500026674 /* WebKitNamespace.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebKitNamespace.cpp; sourceTree = "<group>"; };
 		7C48A6CF191C9D6500026674 /* WebKitNamespace.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebKitNamespace.h; sourceTree = "<group>"; };
 		7C48A6D2191C9D8E00026674 /* WebKitNamespace.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = WebKitNamespace.idl; sourceTree = "<group>"; };
+		7C4C96D81AD4483500365A51 /* WebCoreJSBuiltins.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebCoreJSBuiltins.cpp; sourceTree = "<group>"; };
 		7C4C96D81AD4483500365A50 /* JSReadableStream.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSReadableStream.cpp; sourceTree = "<group>"; };
 		7C4C96D91AD4483500365A50 /* JSReadableStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSReadableStream.h; sourceTree = "<group>"; };
 		7C4C96DA1AD4483500365A50 /* JSReadableStreamReader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSReadableStreamReader.cpp; sourceTree = "<group>"; };
@@ -11321,7 +11322,8 @@
 		9B03D8061BB3110D00B764D8 /* ReadableStreamBuiltins.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ReadableStreamBuiltins.h; sourceTree = "<group>"; };
 		9B03D8061BB3110D00B764D9 /* ReadableStreamInternalsBuiltins.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ReadableStreamInternalsBuiltins.h; sourceTree = "<group>"; };
 		9B03D8071BB3110D00B764D8 /* ReadableStreamBuiltinsWrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ReadableStreamBuiltinsWrapper.h; sourceTree = "<group>"; };
-		9B03D8071BB3110D00B764D9 /* ReadableStreamInternalsBuiltinsWrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ReadableStreamInternalsBuiltinsWrapper.h; sourceTree = "<group>"; };
+		9B03D8071BB3110D00B764DA /* ReadableStreamInternalsBuiltinsWrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ReadableStreamInternalsBuiltinsWrapper.h; sourceTree = "<group>"; };
+		9B03D8071BB3110D00B764D9 /* WebCoreJSBuiltinInternals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebCoreJSBuiltinInternals.h; sourceTree = "<group>"; };
 		9B19B67E1B964E5200348745 /* ShadowRoot.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ShadowRoot.idl; sourceTree = "<group>"; };
 		9B1AB0791648C69D0051F3F2 /* HTMLFormControlsCollection.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = HTMLFormControlsCollection.idl; sourceTree = "<group>"; };
 		9B1AB07B1648C7C40051F3F2 /* JSHTMLFormControlsCollectionCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSHTMLFormControlsCollectionCustom.cpp; sourceTree = "<group>"; };
@@ -16279,6 +16281,7 @@
 		41A023FA1A39F13A00F722CF /* Streams */ = {
 			isa = PBXGroup;
 			children = (
+				7C4C96D81AD4483500365A51 /* WebCoreJSBuiltins.cpp */,
 				7C4C96D81AD4483500365A50 /* JSReadableStream.cpp */,
 				7C4C96D91AD4483500365A50 /* JSReadableStream.h */,
 				6C4C96DA1AD4483500365A50 /* JSReadableStreamController.cpp */,
@@ -17070,7 +17073,8 @@
 				9B03D8061BB3110D00B764D8 /* ReadableStreamBuiltins.h */,
 				9B03D8061BB3110D00B764D9 /* ReadableStreamInternalsBuiltins.h */,
 				9B03D8071BB3110D00B764D8 /* ReadableStreamBuiltinsWrapper.h */,
-				9B03D8071BB3110D00B764D9 /* ReadableStreamInternalsBuiltinsWrapper.h */,
+				9B03D8071BB3110D00B764DA /* ReadableStreamInternalsBuiltinsWrapper.h */,
+				9B03D8071BB3110D00B764D9 /* WebCoreJSBuiltinInternals.h */,
 				43B85ED218CBEC5200E31AF4 /* SelectorPseudoClassAndCompatibilityElementMap.cpp */,
 				43B85ED318CBEC5200E31AF4 /* SelectorPseudoClassAndCompatibilityElementMap.gperf */,
 				26AA0F9D18D2A18B00419381 /* SelectorPseudoElementTypeMap.cpp */,
@@ -21667,7 +21671,6 @@
 				1400D7A717136EA70077CE05 /* ScriptWrappableInlines.h */,
 				A75E497510752ACB00C9B896 /* SerializedScriptValue.cpp */,
 				A75E497410752ACB00C9B896 /* SerializedScriptValue.h */,
-				411A90411BBAB46D000CF156 /* WebCoreJSBuiltins.cpp */,
 				BC53D910114310CC000D817E /* WebCoreJSClientData.h */,
 				0F099D0617B968A100FF84B9 /* WebCoreTypedArrayController.cpp */,
 				0F099D0717B968A100FF84B9 /* WebCoreTypedArrayController.h */,
@@ -25721,7 +25724,8 @@
 				FC9E0E4D16419C1E00392BE3 /* JSDOMWindowCSS.h in Headers */,
 				652FBBBC0DE27CB60001D386 /* JSDOMWindowCustom.h in Headers */,
 				BCBFB53D0DCD29CF0019B3E5 /* JSDOMWindowShell.h in Headers */,
-				416E6FEA1BBD1684000A6043 /* ReadableStreamInternalsBuiltinsWrapper.h in Headers */,
+				416E6FEA1BBD1684000A6044 /* ReadableStreamInternalsBuiltinsWrapper.h in Headers */,
+				416E6FEA1BBD1684000A6043 /* WebCoreJSBuiltinInternals.h in Headers */,
 				65E0E9441133C89F00B4CB10 /* JSDOMWrapper.h in Headers */,
 				FD7868BA136B999200D403DF /* JSDynamicsCompressorNode.h in Headers */,
 				65DF31FA09D1CC60000BE325 /* JSElement.h in Headers */,
@@ -29061,7 +29065,6 @@
 				A8EA79F30A1916DF00A8EF5F /* HTMLUListElement.cpp in Sources */,
 				E44613AA0CD6331000FADA75 /* HTMLVideoElement.cpp in Sources */,
 				839AAFEC1A0C0C8D00605F99 /* HTMLWBRElement.cpp in Sources */,
-				411A90421BBAB47A000CF156 /* WebCoreJSBuiltins.cpp in Sources */,
 				0B8C56D40F28627F000502E1 /* HTTPHeaderMap.cpp in Sources */,
 				1AC900C31943C0FC008625B5 /* HTTPHeaderNames.cpp in Sources */,
 				514C76720CE923A1007EF3CD /* HTTPParsers.cpp in Sources */,
@@ -29573,6 +29576,7 @@
 				077664FC183E6B5C00133B92 /* JSQuickTimePluginReplacement.cpp in Sources */,
 				B658FFA11522EF3A00DD5595 /* JSRadioNodeList.cpp in Sources */,
 				65DF320109D1CC60000BE325 /* JSRange.cpp in Sources */,
+				7C4C96DC1AD4483500365A51 /* WebCoreJSBuiltins.cpp in Sources */,
 				7C4C96DC1AD4483500365A50 /* JSReadableStream.cpp in Sources */,
 				6C4C96DE1AD4483500365A50 /* JSReadableStreamController.cpp in Sources */,
 				7C4C96DE1AD4483500365A50 /* JSReadableStreamReader.cpp in Sources */,

Modified: trunk/Source/WebCore/bindings/js/DOMWrapperWorld.cpp (190715 => 190716)


--- trunk/Source/WebCore/bindings/js/DOMWrapperWorld.cpp	2015-10-08 07:33:59 UTC (rev 190715)
+++ trunk/Source/WebCore/bindings/js/DOMWrapperWorld.cpp	2015-10-08 09:55:30 UTC (rev 190716)
@@ -36,14 +36,14 @@
 {
     VM::ClientData* clientData = m_vm.clientData;
     ASSERT(clientData);
-    static_cast<WebCoreJSClientData*>(clientData)->rememberWorld(*this);
+    static_cast<JSVMClientData*>(clientData)->rememberWorld(*this);
 }
 
 DOMWrapperWorld::~DOMWrapperWorld()
 {
     VM::ClientData* clientData = m_vm.clientData;
     ASSERT(clientData);
-    static_cast<WebCoreJSClientData*>(clientData)->forgetWorld(*this);
+    static_cast<JSVMClientData*>(clientData)->forgetWorld(*this);
 
     // These items are created lazily.
     while (!m_scriptControllersWithWindowShells.isEmpty())
@@ -63,7 +63,7 @@
 {
     VM::ClientData* clientData = vm.clientData;
     ASSERT(clientData);
-    return static_cast<WebCoreJSClientData*>(clientData)->normalWorld();
+    return static_cast<JSVMClientData*>(clientData)->normalWorld();
 }
 
 DOMWrapperWorld& mainThreadNormalWorld()

Modified: trunk/Source/WebCore/bindings/js/JSDOMWindowBase.cpp (190715 => 190716)


--- trunk/Source/WebCore/bindings/js/JSDOMWindowBase.cpp	2015-10-08 07:33:59 UTC (rev 190715)
+++ trunk/Source/WebCore/bindings/js/JSDOMWindowBase.cpp	2015-10-08 09:55:30 UTC (rev 190716)
@@ -70,9 +70,7 @@
     , m_windowCloseWatchpoints((window && window->frame()) ? IsWatched : IsInvalidated)
     , m_impl(window)
     , m_shell(shell)
-#if ENABLE(STREAMS_API)
-    , m_readableStreamFunctions(vm)
-#endif
+    , m_privateFunctions(vm)
 {
 }
 
@@ -81,23 +79,21 @@
     Base::finishCreation(vm, shell);
     ASSERT(inherits(info()));
 
-#if ENABLE(STREAMS_API)
-    m_readableStreamFunctions.init(*this);
-#endif
+    m_privateFunctions.init(*this);
 
     GlobalPropertyInfo staticGlobals[] = {
         GlobalPropertyInfo(vm.propertyNames->document, jsNull(), DontDelete | ReadOnly),
         GlobalPropertyInfo(vm.propertyNames->window, m_shell, DontDelete | ReadOnly),
 #if ENABLE(STREAMS_API)
-        GlobalPropertyInfo(static_cast<WebCoreJSClientData*>(vm.clientData)->builtinNames().readableStreamClosedPrivateName(), jsNumber(1), DontDelete | ReadOnly),
-        GlobalPropertyInfo(static_cast<WebCoreJSClientData*>(vm.clientData)->builtinNames().readableStreamErroredPrivateName(), jsNumber(2), DontDelete | ReadOnly),
-        GlobalPropertyInfo(static_cast<WebCoreJSClientData*>(vm.clientData)->builtinNames().readableStreamReadablePrivateName(), jsNumber(3), DontDelete | ReadOnly),
-        GlobalPropertyInfo(static_cast<WebCoreJSClientData*>(vm.clientData)->builtinNames().ReadableStreamControllerPrivateName(), createReadableStreamControllerPrivateConstructor(vm, *this), DontDelete | ReadOnly),
-        GlobalPropertyInfo(static_cast<WebCoreJSClientData*>(vm.clientData)->builtinNames().ReadableStreamReaderPrivateName(), createReadableStreamReaderPrivateConstructor(vm, *this), DontDelete | ReadOnly),
+        GlobalPropertyInfo(static_cast<JSVMClientData*>(vm.clientData)->builtinNames().readableStreamClosedPrivateName(), jsNumber(1), DontDelete | ReadOnly),
+        GlobalPropertyInfo(static_cast<JSVMClientData*>(vm.clientData)->builtinNames().readableStreamErroredPrivateName(), jsNumber(2), DontDelete | ReadOnly),
+        GlobalPropertyInfo(static_cast<JSVMClientData*>(vm.clientData)->builtinNames().readableStreamReadablePrivateName(), jsNumber(3), DontDelete | ReadOnly),
+        GlobalPropertyInfo(static_cast<JSVMClientData*>(vm.clientData)->builtinNames().ReadableStreamControllerPrivateName(), createReadableStreamControllerPrivateConstructor(vm, *this), DontDelete | ReadOnly),
+        GlobalPropertyInfo(static_cast<JSVMClientData*>(vm.clientData)->builtinNames().ReadableStreamReaderPrivateName(), createReadableStreamReaderPrivateConstructor(vm, *this), DontDelete | ReadOnly),
 #define DECLARE_GLOBAL_STATIC(name)\
         GlobalPropertyInfo(\
-            static_cast<WebCoreJSClientData*>(vm.clientData)->readableStreamInternalsBuiltins().name##PrivateName(),\
-            m_readableStreamFunctions.m_##name##Function.get() , DontDelete | ReadOnly),
+            static_cast<JSVMClientData*>(vm.clientData)->builtinFunctions().readableStreamInternalsBuiltins().name##PrivateName(), \
+            m_privateFunctions.readableStreamInternals().m_##name##Function.get() , DontDelete | ReadOnly),
         WEBCOREREADABLESTREAMINTERNALS_FOREACH_BUILTIN_FUNCTION_NAME(DECLARE_GLOBAL_STATIC)
 #undef EXPORT_FUNCTION
 #endif
@@ -111,9 +107,7 @@
     JSDOMWindowBase* thisObject = jsCast<JSDOMWindowBase*>(cell);
     ASSERT_GC_OBJECT_INHERITS(thisObject, info());
     Base::visitChildren(thisObject, visitor);
-#if ENABLE(STREAMS_API)
-    thisObject->m_readableStreamFunctions.visit(visitor);
-#endif
+    thisObject->m_privateFunctions.visit(visitor);
 }
 
 void JSDOMWindowBase::destroy(JSCell* cell)
@@ -297,7 +291,7 @@
 void JSDOMWindowBase::fireFrameClearedWatchpointsForWindow(DOMWindow* window)
 {
     JSC::VM& vm = JSDOMWindowBase::commonVM();
-    WebCoreJSClientData* clientData = static_cast<WebCoreJSClientData*>(vm.clientData);
+    JSVMClientData* clientData = static_cast<JSVMClientData*>(vm.clientData);
     Vector<Ref<DOMWrapperWorld>> wrapperWorlds;
     clientData->getAllWorlds(wrapperWorlds);
     for (unsigned i = 0; i < wrapperWorlds.size(); ++i) {

Modified: trunk/Source/WebCore/bindings/js/JSDOMWindowBase.h (190715 => 190716)


--- trunk/Source/WebCore/bindings/js/JSDOMWindowBase.h	2015-10-08 07:33:59 UTC (rev 190715)
+++ trunk/Source/WebCore/bindings/js/JSDOMWindowBase.h	2015-10-08 09:55:30 UTC (rev 190716)
@@ -22,7 +22,7 @@
 
 #include "JSDOMBinding.h"
 #include "JSDOMGlobalObject.h"
-#include "ReadableStreamInternalsBuiltinsWrapper.h"
+#include "WebCoreJSBuiltinInternals.h"
 #include <wtf/Forward.h>
 
 namespace WebCore {
@@ -87,9 +87,7 @@
         RefPtr<DOMWindow> m_impl;
         JSDOMWindowShell* m_shell;
 
-#if ENABLE(STREAMS_API)
-        ReadableStreamInternalsBuiltinFunctions m_readableStreamFunctions;
-#endif
+        JSBuiltinInternalFunctions m_privateFunctions;
     };
 
     // Returns a JSDOMWindow or jsNull()

Modified: trunk/Source/WebCore/bindings/js/ScriptController.cpp (190715 => 190716)


--- trunk/Source/WebCore/bindings/js/ScriptController.cpp	2015-10-08 07:33:59 UTC (rev 190715)
+++ trunk/Source/WebCore/bindings/js/ScriptController.cpp	2015-10-08 09:55:30 UTC (rev 190716)
@@ -194,7 +194,7 @@
 
 void ScriptController::getAllWorlds(Vector<Ref<DOMWrapperWorld>>& worlds)
 {
-    static_cast<WebCoreJSClientData*>(JSDOMWindow::commonVM().clientData)->getAllWorlds(worlds);
+    static_cast<JSVMClientData*>(JSDOMWindow::commonVM().clientData)->getAllWorlds(worlds);
 }
 
 void ScriptController::clearWindowShell(DOMWindow* newDOMWindow, bool goingIntoPageCache)

Modified: trunk/Source/WebCore/bindings/js/SerializedScriptValue.cpp (190715 => 190716)


--- trunk/Source/WebCore/bindings/js/SerializedScriptValue.cpp	2015-10-08 07:33:59 UTC (rev 190715)
+++ trunk/Source/WebCore/bindings/js/SerializedScriptValue.cpp	2015-10-08 09:55:30 UTC (rev 190716)
@@ -2634,7 +2634,7 @@
 
     auto contents = std::make_unique<ArrayBufferContentsArray>(arrayBuffers.size());
     Vector<Ref<DOMWrapperWorld>> worlds;
-    static_cast<WebCoreJSClientData*>(exec->vm().clientData)->getAllWorlds(worlds);
+    static_cast<JSVMClientData*>(exec->vm().clientData)->getAllWorlds(worlds);
 
     HashSet<JSC::ArrayBuffer*> visited;
     for (size_t arrayBufferIndex = 0; arrayBufferIndex < arrayBuffers.size(); arrayBufferIndex++) {

Deleted: trunk/Source/WebCore/bindings/js/WebCoreJSBuiltins.cpp (190715 => 190716)


--- trunk/Source/WebCore/bindings/js/WebCoreJSBuiltins.cpp	2015-10-08 07:33:59 UTC (rev 190715)
+++ trunk/Source/WebCore/bindings/js/WebCoreJSBuiltins.cpp	2015-10-08 09:55:30 UTC (rev 190716)
@@ -1,35 +0,0 @@
-/*
- * Copyright (C) 2015, Canon Inc. All Rights Reserved.
- *
- * 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.
- */
-
-#include "config.h"
-
-#if ENABLE(STREAMS_API)
-#include "ByteLengthQueuingStrategyBuiltins.cpp"
-#include "CountQueuingStrategyBuiltins.cpp"
-#include "ReadableStreamBuiltins.cpp"
-#include "ReadableStreamControllerBuiltins.cpp"
-#include "ReadableStreamInternalsBuiltins.cpp"
-#include "ReadableStreamReaderBuiltins.cpp"
-#endif

Modified: trunk/Source/WebCore/bindings/js/WebCoreJSClientData.h (190715 => 190716)


--- trunk/Source/WebCore/bindings/js/WebCoreJSClientData.h	2015-10-08 07:33:59 UTC (rev 190715)
+++ trunk/Source/WebCore/bindings/js/WebCoreJSClientData.h	2015-10-08 09:55:30 UTC (rev 190716)
@@ -24,44 +24,26 @@
 
 #include "DOMWrapperWorld.h"
 #include "WebCoreBuiltinNames.h"
+#include "WebCoreJSBuiltins.h"
 #include "WebCoreTypedArrayController.h"
 #include <wtf/HashSet.h>
 #include <wtf/RefPtr.h>
 
-#if ENABLE(STREAMS_API)
-#include "ByteLengthQueuingStrategyBuiltinsWrapper.h"
-#include "CountQueuingStrategyBuiltinsWrapper.h"
-#include "ReadableStreamBuiltinsWrapper.h"
-#include "ReadableStreamControllerBuiltinsWrapper.h"
-#include "ReadableStreamInternalsBuiltinsWrapper.h"
-#include "ReadableStreamReaderBuiltinsWrapper.h"
-#endif
-
 namespace WebCore {
 
-class WebCoreJSClientData : public JSC::VM::ClientData {
-    WTF_MAKE_NONCOPYABLE(WebCoreJSClientData); WTF_MAKE_FAST_ALLOCATED;
+class JSVMClientData : public JSC::VM::ClientData {
+    WTF_MAKE_NONCOPYABLE(JSVMClientData); WTF_MAKE_FAST_ALLOCATED;
     friend class VMWorldIterator;
     friend void initNormalWorldClientData(JSC::VM*);
 
 public:
-    explicit WebCoreJSClientData(JSC::VM& vm)
-        : m_builtinNames(&vm)
-#if ENABLE(STREAMS_API)
-        , m_readableStreamBuiltins(&vm)
-        , m_readableStreamControllerBuiltins(&vm)
-        , m_readableStreamInternalsBuiltins(&vm)
-        , m_readableStreamReaderBuiltins(&vm)
-        , m_byteLengthQueuingStrategyBuiltins(&vm)
-        , m_countQueuingStrategyBuiltins(&vm)
-#endif
+    explicit JSVMClientData(JSC::VM& vm)
+        : m_builtinFunctions(vm)
+        , m_builtinNames(&vm)
     {
-#if ENABLE(STREAMS_API)
-        m_readableStreamInternalsBuiltins.exportNames();
-#endif
     }
 
-    virtual ~WebCoreJSClientData()
+    virtual ~JSVMClientData()
     {
         ASSERT(m_worldSet.contains(m_normalWorld.get()));
         ASSERT(m_worldSet.size() == 1);
@@ -94,37 +76,21 @@
     }
 
     WebCoreBuiltinNames& builtinNames() { return m_builtinNames; }
+    JSBuiltinFunctions& builtinFunctions() { return m_builtinFunctions; }
 
-#if ENABLE(STREAMS_API)
-    ReadableStreamBuiltinsWrapper& readableStreamBuiltins() { return m_readableStreamBuiltins; }
-    ReadableStreamControllerBuiltinsWrapper& readableStreamControllerBuiltins() { return m_readableStreamControllerBuiltins; }
-    ReadableStreamInternalsBuiltinsWrapper& readableStreamInternalsBuiltins() { return m_readableStreamInternalsBuiltins; }
-    ReadableStreamReaderBuiltinsWrapper& readableStreamReaderBuiltins() { return m_readableStreamReaderBuiltins; }
-    ByteLengthQueuingStrategyBuiltinsWrapper& byteLengthQueuingStrategyBuiltins() { return m_byteLengthQueuingStrategyBuiltins; }
-    CountQueuingStrategyBuiltinsWrapper& countQueuingStrategyBuiltins() { return m_countQueuingStrategyBuiltins; }
-#endif
-
 private:
     HashSet<DOMWrapperWorld*> m_worldSet;
     RefPtr<DOMWrapperWorld> m_normalWorld;
 
+    JSBuiltinFunctions m_builtinFunctions;
     WebCoreBuiltinNames m_builtinNames;
-
-#if ENABLE(STREAMS_API)
-    ReadableStreamBuiltinsWrapper m_readableStreamBuiltins;
-    ReadableStreamControllerBuiltinsWrapper m_readableStreamControllerBuiltins;
-    ReadableStreamInternalsBuiltinsWrapper m_readableStreamInternalsBuiltins;
-    ReadableStreamReaderBuiltinsWrapper m_readableStreamReaderBuiltins;
-    ByteLengthQueuingStrategyBuiltinsWrapper m_byteLengthQueuingStrategyBuiltins;
-    CountQueuingStrategyBuiltinsWrapper m_countQueuingStrategyBuiltins;
-#endif
 };
 
 inline void initNormalWorldClientData(JSC::VM* vm)
 {
-    WebCoreJSClientData* webCoreJSClientData = new WebCoreJSClientData(*vm);
-    vm->clientData = webCoreJSClientData; // ~VM deletes this pointer.
-    webCoreJSClientData->m_normalWorld = DOMWrapperWorld::create(*vm, true);
+    JSVMClientData* clientData = new JSVMClientData(*vm);
+    vm->clientData = clientData; // ~VM deletes this pointer.
+    clientData->m_normalWorld = DOMWrapperWorld::create(*vm, true);
     vm->m_typedArrayController = adoptRef(new WebCoreTypedArrayController());
 }
 

Added: trunk/Source/WebCore/generate-js-builtins-allinone (0 => 190716)


--- trunk/Source/WebCore/generate-js-builtins-allinone	                        (rev 0)
+++ trunk/Source/WebCore/generate-js-builtins-allinone	2015-10-08 09:55:30 UTC (rev 190716)
@@ -0,0 +1,236 @@
+#!/usr/bin/python
+# Copyright (C) 2015 Canon Inc. All rights reserved.
+#
+# 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.
+
+
+import argparse
+import filecmp
+import os
+import re
+
+singleLineCommentRegExp = re.compile(r"\/\/ @.*?\n", re.MULTILINE | re.S)
+
+def retrieveGenerationParameters(input):
+    parameters = {}
+    with open(input, 'r') as input_file:
+        content = input_file.read()
+        for match in singleLineCommentRegExp.finditer(content):
+            values = content[match.start() + 4:match.end()].split('=')
+            if len(values) == 1:
+                parameters[values[0].strip()] = True
+            elif len (values) == 2:
+                parameters[values[0].strip()] = values[1].strip()
+            else:
+                print("Skipping potential generation parameter directive:" % values.join('='))
+    return parameters
+
+
+def retrieveFilesWithParameters(inputs):
+    files = []
+    class FileInput: pass
+    for input in inputs:
+        file_input = FileInput()
+        file_input.parameters = retrieveGenerationParameters(input)
+        file_input.optionalif = ("#if ENABLE(" + file_input.parameters["optional"] + ")\n") if "optional" in file_input.parameters else ""
+        file_input.optionalendif = "#endif\n" if "optional" in file_input.parameters else ""
+        file_input.filename = os.path.splitext(os.path.basename(input))[0]
+        file_input.name = file_input.filename[0].lower() + file_input.filename[1:]
+        files.append(file_input)
+    return files
+
+
+def writeConditional(writer, input_file, value):
+    writer.write(input_file.optionalif)
+    writer.write(value)
+    writer.write(input_file.optionalendif)
+
+
+def copytempfile(output):
+    if (not os.path.exists(output)) or (not filecmp.cmp(output + ".tmp", output, shallow=False)):
+        if (os.path.exists(output)):
+            os.remove(output)
+        os.rename(output + ".tmp", output)
+    else:
+        os.remove(output + ".tmp")
+
+
+parser = argparse.ArgumentParser()
+parser.add_argument('--output_dir', default='', help='output directory')
+parser.add_argument('inputs', metavar='input', nargs='+', help='path to input JS files')
+
+args = parser.parse_args()
+files = retrieveFilesWithParameters(args.inputs)
+internals_files = [ f for f in files if "internals" in f.parameters ]
+
+basename = "WebCoreJSBuiltins"
+output_base = os.path.join(args.output_dir, basename)
+basename_internals = "WebCoreJSBuiltinInternals"
+internals_output_base = os.path.join(args.output_dir, basename_internals)
+
+print("Generating WebCore JS builtins wrapper files.")
+
+preamble = """
+/* Generated by generate-js-builtins-allinone do not hand edit. */
+
+/*
+ *
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Lesser General Public
+ *  License as published by the Free Software Foundation; either
+ *  version 2 of the License, or (at your option) any later version.
+ *
+ *  This library is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public
+ *  License along with this library; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+"""
+
+###############
+# Generation of cpp file including all JS builtin generated cpp files with optional #fdef directives as defined by @enable in JS files.
+###############
+builtinsImplementation = open(output_base + ".cpp.tmp", "w")
+builtinsImplementation.write(preamble)
+builtinsImplementation.write("#include \"config.h\"\n\n")
+
+# Including cpp files
+for input_file in files:
+    writeConditional(builtinsImplementation, input_file, "#include \"" + input_file.filename + "Builtins.cpp\"\n");
+
+builtinsImplementation.flush()
+builtinsImplementation.close()
+copytempfile(output_base + ".cpp")
+
+###############
+# Generation of wrapper header file defining access to all builtin functions.
+###############
+builtinsHeader = open(output_base + ".h.tmp", "w")
+builtinsHeader.write(preamble)
+builtinsHeader.write("#ifndef " + basename + "_h\n#define " + basename + "_h\n\n")
+
+for input_file in files:
+    writeConditional(builtinsHeader, input_file, "#include \"" + input_file.filename + "BuiltinsWrapper.h\"\n");
+builtinsHeader.write("""
+
+#include <runtime/VM.h>
+
+namespace WebCore {
+
+class JSBuiltinFunctions {
+public:
+""")
+
+# Constructor
+builtinsHeader.write("    explicit JSBuiltinFunctions(JSC::VM& v)\n        : vm(v)\n");
+for input_file in files:
+    writeConditional(builtinsHeader, input_file, "        , m_" + input_file.name + "Builtins(&vm)\n");
+builtinsHeader.write("    {\n");
+for input_file in internals_files:
+    writeConditional(builtinsHeader, input_file, "        m_" + input_file.name + "Builtins.exportNames();\n");
+builtinsHeader.write("    }\n");
+
+# Getters
+for input_file in files:
+    writeConditional(builtinsHeader, input_file, "    " + input_file.filename + "BuiltinsWrapper& " + input_file.name  + "Builtins() { return m_" + input_file.name  + "Builtins;}\n");
+
+# Declarations
+builtinsHeader.write("""private:
+    JSC::VM& vm;\n""");
+for input_file in files:
+    writeConditional(builtinsHeader, input_file, "    " + input_file.filename + "BuiltinsWrapper m_" + input_file.name  + "Builtins;\n");
+
+builtinsHeader.write("""
+};
+
+}
+
+#endif
+""");
+
+builtinsHeader.flush()
+builtinsHeader.close()
+copytempfile(output_base + ".h")
+
+###############
+# Generation of class wrapping all functions of JS files marked as @internals.
+###############
+builtinInternalsHeader = open(internals_output_base + ".h.tmp", "w")
+builtinInternalsHeader.write(preamble)
+builtinInternalsHeader.write("#ifndef " + basename_internals + "_h\n#define " + basename_internals + "_h\n\n")
+
+# Including all necessrary wrapper headers.
+for input_file in internals_files:
+    writeConditional(builtinInternalsHeader, input_file, "#include \"" + input_file.filename + "BuiltinsWrapper.h\"\n")
+
+# Class definition
+builtinInternalsHeader.write("""
+namespace WebCore {
+
+class JSBuiltinInternalFunctions {
+public:
+""")
+
+# Constructor
+builtinInternalsHeader.write("""explicit JSBuiltinInternalFunctions(JSC::VM& v)\n        : vm(v)\n""")
+for input_file in internals_files:
+    writeConditional(builtinInternalsHeader, input_file, "        , m_" + input_file.name + "Functions(vm)\n")
+builtinInternalsHeader.write("    { }\n\n")
+
+# Getters
+for input_file in internals_files:
+    writeConditional(builtinInternalsHeader, input_file, "    " + input_file.filename + "BuiltinFunctions " + input_file.name + "() { return m_" + input_file.name + "Functions; }\n")
+
+# Visitor wrapper routine
+builtinInternalsHeader.write("    void visit(JSC::SlotVisitor& visitor) {\n")
+for input_file in internals_files:
+    writeConditional(builtinInternalsHeader, input_file, "        m_" + input_file.name + "Functions.visit(visitor);\n")
+builtinInternalsHeader.write("    }\n")
+
+# Init wrapper routine
+builtinInternalsHeader.write("    void init(JSC::JSGlobalObject& globalObject) {\n")
+for input_file in internals_files:
+    writeConditional(builtinInternalsHeader, input_file, "        m_" + input_file.name + "Functions.init(globalObject);\n")
+builtinInternalsHeader.write("    }\n")
+
+# Private member fields
+builtinInternalsHeader.write("""
+private:
+    JSC::VM& vm;\n""")
+for input_file in internals_files:
+    writeConditional(builtinInternalsHeader, input_file, "     " + input_file.filename + "BuiltinFunctions m_" + input_file.name + "Functions;\n")
+
+builtinInternalsHeader.write("""
+};
+
+}
+#endif
+""")
+
+builtinInternalsHeader.flush()
+builtinInternalsHeader.close()
+copytempfile(internals_output_base + ".h")
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to