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")