Changeset 190198 in webkit


Ignore:
Timestamp:
Sep 24, 2015 2:18:15 AM (9 years ago)
Author:
youenn.fablet@crf.canon.fr
Message:

[Streams API] Add support for JS builtins constructor
https://bugs.webkit.org/show_bug.cgi?id=149497

Reviewed by Darin Adler.

Source/JavaScriptCore:

  • runtime/JSFunction.h: exporting createBuiltinFunction.

Source/WebCore:

Covered by existing tests.

Making CountQueuingStrategy fully JS built-in implemented.
Adding support for calling a JS builtin initialization function just after creating the JSXX object.
This JS function must be named initializeXX and be in XX.Js file.
The JSBuiltinConstructor keyword is added to the binding generator.

  • CMakeLists.txt: Adding CountQueuingStrategy.js, removing JSCountQueuingStrategyCustom.cpp.
  • DerivedSources.cpp: Ditto.
  • DerivedSources.make: Ditto.
  • Modules/streams/CountQueuingStrategy.h: Making CountQueuingStrategy a dummy class.

(WebCore::CountQueuingStrategy::create):
(WebCore::CountQueuingStrategy::~CountQueuingStrategy):
(WebCore::CountQueuingStrategy::CountQueuingStrategy):

  • Modules/streams/CountQueuingStrategy.idl:
  • Modules/streams/CountQueuingStrategy.js: Added.

(size):
(initializeCountQueuingStrategy):

  • WebCore.vcxproj/WebCore.vcxproj: Removing JSCountQueuingStrategyCustom.cpp.
  • WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • bindings/js/JSBindingsAllInOne.cpp: Ditto.
  • bindings/js/JSCountQueuingStrategyCustom.cpp: Removed.
  • bindings/js/JSDOMBinding.cpp: Adding support for DOMConstructorJSBuiltinObject.

(WebCore::callInitializeFunction):
(WebCore::DOMConstructorJSBuiltinObject::visitChildren):

  • bindings/js/JSDOMBinding.h: Diitto.

(WebCore::createFromJSBuiltin):
(WebCore::DOMConstructorJSBuiltinObject::DOMConstructorJSBuiltinObject):

  • bindings/js/WebCoreJSClientData.h: Adding support for CQS builtins functions.

(WebCore::WebCoreJSClientData::WebCoreJSClientData):
(WebCore::WebCoreJSClientData::countQueuingStrategyBuiltins):

  • bindings/scripts/CodeGeneratorJS.pm:

(GetJSBuiltinFunctionName):
(GetFunctionName):
(InstanceNeedsVisitChildren): Generating visitChildren method in case of JSBuiltinConstructor.
(GetParentConstructorClassName): Refactoring to make JSXXConstructor derive from DOMConstructorJSBuiltinObject in case of JSBuiltinConstructor.
(GenerateConstructorDeclaration): Ditto.
(GenerateConstructorDefinition): Generate specific constructor in case of JSBuiltinConstructor.
(GenerateConstructorHelperMethods): Refactoring to use Base class.
(IsConstructable): Ditto.
(ConstructorHasProperties): Deleted.

  • bindings/scripts/IDLAttributes.txt: Adding JSBuiltinConstructor.
  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:

(WebCore::JSTestActiveDOMObjectConstructor::JSTestActiveDOMObjectConstructor):

  • bindings/scripts/test/JS/JSTestCallback.cpp:

(WebCore::JSTestCallbackConstructor::JSTestCallbackConstructor):

  • bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:

(WebCore::JSTestCustomConstructorWithNoInterfaceObjectConstructor::JSTestCustomConstructorWithNoInterfaceObjectConstructor):

  • bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:

(WebCore::JSTestCustomNamedGetterConstructor::JSTestCustomNamedGetterConstructor):

  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:

(WebCore::JSTestEventConstructorConstructor::JSTestEventConstructorConstructor):

  • bindings/scripts/test/JS/JSTestEventTarget.cpp:

(WebCore::JSTestEventTargetConstructor::JSTestEventTargetConstructor):

  • bindings/scripts/test/JS/JSTestException.cpp:

(WebCore::JSTestExceptionConstructor::JSTestExceptionConstructor):

  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:

(WebCore::JSTestGenerateIsReachableConstructor::JSTestGenerateIsReachableConstructor):

  • bindings/scripts/test/JS/JSTestInterface.cpp:

(WebCore::JSTestInterfaceConstructor::JSTestInterfaceConstructor):

  • bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:

(WebCore::JSTestMediaQueryListListenerConstructor::JSTestMediaQueryListListenerConstructor):

  • bindings/scripts/test/JS/JSTestNamedConstructor.cpp:

(WebCore::JSTestNamedConstructorConstructor::JSTestNamedConstructorConstructor):
(WebCore::JSTestNamedConstructorNamedConstructor::JSTestNamedConstructorNamedConstructor):

  • bindings/scripts/test/JS/JSTestNode.cpp:

(WebCore::JSTestNodeConstructor::JSTestNodeConstructor):

  • bindings/scripts/test/JS/JSTestNondeterministic.cpp:

(WebCore::JSTestNondeterministicConstructor::JSTestNondeterministicConstructor):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::JSTestObjConstructor::JSTestObjConstructor):

  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:

(WebCore::JSTestOverloadedConstructorsConstructor::JSTestOverloadedConstructorsConstructor):

  • bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:

(WebCore::JSTestOverrideBuiltinsConstructor::JSTestOverrideBuiltinsConstructor):

  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:

(WebCore::JSTestSerializedScriptValueInterfaceConstructor::JSTestSerializedScriptValueInterfaceConstructor):

  • bindings/scripts/test/JS/JSTestTypedefs.cpp:

(WebCore::JSTestTypedefsConstructor::JSTestTypedefsConstructor):

  • bindings/scripts/test/JS/JSattribute.cpp:

(WebCore::JSattributeConstructor::JSattributeConstructor):

  • bindings/scripts/test/JS/JSreadonly.cpp:

(WebCore::JSreadonlyConstructor::JSreadonlyConstructor):

Location:
trunk/Source
Files:
1 added
1 deleted
37 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r190188 r190198  
     12015-09-24  Youenn Fablet  <youenn.fablet@crf.canon.fr>
     2
     3        [Streams API] Add support for JS builtins constructor
     4        https://bugs.webkit.org/show_bug.cgi?id=149497
     5
     6        Reviewed by Darin Adler.
     7
     8        * runtime/JSFunction.h: exporting createBuiltinFunction.
     9
    1102015-09-23  Saam barati  <sbarati@apple.com>
    211
  • trunk/Source/JavaScriptCore/runtime/JSFunction.h

    r189124 r190198  
    7676#endif
    7777
    78     static JSFunction* createBuiltinFunction(VM&, FunctionExecutable*, JSGlobalObject*);
     78    JS_EXPORT_PRIVATE static JSFunction* createBuiltinFunction(VM&, FunctionExecutable*, JSGlobalObject*);
    7979    static JSFunction* createBuiltinFunction(VM&, FunctionExecutable*, JSGlobalObject*, const String& name);
    8080
  • trunk/Source/WebCore/CMakeLists.txt

    r190181 r190198  
    11031103    bindings/js/JSCharacterDataCustom.cpp
    11041104    bindings/js/JSCommandLineAPIHostCustom.cpp
    1105     bindings/js/JSCountQueuingStrategyCustom.cpp
    11061105    bindings/js/JSCryptoAlgorithmBuilder.cpp
    11071106    bindings/js/JSCryptoAlgorithmDictionary.cpp
     
    33433342
    33443343set(WEBCORE_JS_BUILTINS
     3344    ${WEBCORE_DIR}/Modules/streams/CountQueuingStrategy.js
    33453345    ${WEBCORE_DIR}/Modules/streams/ReadableStream.js
    33463346)
  • trunk/Source/WebCore/ChangeLog

    r190195 r190198  
     12015-09-24  Youenn Fablet  <youenn.fablet@crf.canon.fr>
     2
     3        [Streams API] Add support for JS builtins constructor
     4        https://bugs.webkit.org/show_bug.cgi?id=149497
     5
     6        Reviewed by Darin Adler.
     7
     8        Covered by existing tests.
     9
     10        Making CountQueuingStrategy fully JS built-in implemented.
     11        Adding support for calling a JS builtin initialization function just after creating the JSXX object.
     12        This JS function must be named initializeXX and be in XX.Js file.
     13        The JSBuiltinConstructor keyword is added to the binding generator.
     14
     15        * CMakeLists.txt: Adding CountQueuingStrategy.js, removing JSCountQueuingStrategyCustom.cpp.
     16        * DerivedSources.cpp: Ditto.
     17        * DerivedSources.make: Ditto.
     18        * Modules/streams/CountQueuingStrategy.h: Making CountQueuingStrategy a dummy class.
     19        (WebCore::CountQueuingStrategy::create):
     20        (WebCore::CountQueuingStrategy::~CountQueuingStrategy):
     21        (WebCore::CountQueuingStrategy::CountQueuingStrategy):
     22        * Modules/streams/CountQueuingStrategy.idl:
     23        * Modules/streams/CountQueuingStrategy.js: Added.
     24        (size):
     25        (initializeCountQueuingStrategy):
     26        * WebCore.vcxproj/WebCore.vcxproj: Removing JSCountQueuingStrategyCustom.cpp.
     27        * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
     28        * WebCore.xcodeproj/project.pbxproj: Ditto.
     29        * bindings/js/JSBindingsAllInOne.cpp: Ditto.
     30        * bindings/js/JSCountQueuingStrategyCustom.cpp: Removed.
     31        * bindings/js/JSDOMBinding.cpp: Adding support for DOMConstructorJSBuiltinObject.
     32        (WebCore::callInitializeFunction):
     33        (WebCore::DOMConstructorJSBuiltinObject::visitChildren):
     34        * bindings/js/JSDOMBinding.h: Diitto.
     35        (WebCore::createFromJSBuiltin):
     36        (WebCore::DOMConstructorJSBuiltinObject::DOMConstructorJSBuiltinObject):
     37        * bindings/js/WebCoreJSClientData.h: Adding support for CQS builtins functions.
     38        (WebCore::WebCoreJSClientData::WebCoreJSClientData):
     39        (WebCore::WebCoreJSClientData::countQueuingStrategyBuiltins):
     40        * bindings/scripts/CodeGeneratorJS.pm:
     41        (GetJSBuiltinFunctionName):
     42        (GetFunctionName):
     43        (InstanceNeedsVisitChildren): Generating visitChildren method in case of JSBuiltinConstructor.
     44        (GetParentConstructorClassName): Refactoring to make JSXXConstructor derive from DOMConstructorJSBuiltinObject in case of JSBuiltinConstructor.
     45        (GenerateConstructorDeclaration): Ditto.
     46        (GenerateConstructorDefinition): Generate specific constructor in case of JSBuiltinConstructor.
     47        (GenerateConstructorHelperMethods): Refactoring to use Base class.
     48        (IsConstructable): Ditto.
     49        (ConstructorHasProperties): Deleted.
     50        * bindings/scripts/IDLAttributes.txt: Adding JSBuiltinConstructor.
     51        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
     52        (WebCore::JSTestActiveDOMObjectConstructor::JSTestActiveDOMObjectConstructor):
     53        * bindings/scripts/test/JS/JSTestCallback.cpp:
     54        (WebCore::JSTestCallbackConstructor::JSTestCallbackConstructor):
     55        * bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
     56        (WebCore::JSTestCustomConstructorWithNoInterfaceObjectConstructor::JSTestCustomConstructorWithNoInterfaceObjectConstructor):
     57        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
     58        (WebCore::JSTestCustomNamedGetterConstructor::JSTestCustomNamedGetterConstructor):
     59        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
     60        (WebCore::JSTestEventConstructorConstructor::JSTestEventConstructorConstructor):
     61        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
     62        (WebCore::JSTestEventTargetConstructor::JSTestEventTargetConstructor):
     63        * bindings/scripts/test/JS/JSTestException.cpp:
     64        (WebCore::JSTestExceptionConstructor::JSTestExceptionConstructor):
     65        * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
     66        (WebCore::JSTestGenerateIsReachableConstructor::JSTestGenerateIsReachableConstructor):
     67        * bindings/scripts/test/JS/JSTestInterface.cpp:
     68        (WebCore::JSTestInterfaceConstructor::JSTestInterfaceConstructor):
     69        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
     70        (WebCore::JSTestMediaQueryListListenerConstructor::JSTestMediaQueryListListenerConstructor):
     71        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
     72        (WebCore::JSTestNamedConstructorConstructor::JSTestNamedConstructorConstructor):
     73        (WebCore::JSTestNamedConstructorNamedConstructor::JSTestNamedConstructorNamedConstructor):
     74        * bindings/scripts/test/JS/JSTestNode.cpp:
     75        (WebCore::JSTestNodeConstructor::JSTestNodeConstructor):
     76        * bindings/scripts/test/JS/JSTestNondeterministic.cpp:
     77        (WebCore::JSTestNondeterministicConstructor::JSTestNondeterministicConstructor):
     78        * bindings/scripts/test/JS/JSTestObj.cpp:
     79        (WebCore::JSTestObjConstructor::JSTestObjConstructor):
     80        * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
     81        (WebCore::JSTestOverloadedConstructorsConstructor::JSTestOverloadedConstructorsConstructor):
     82        * bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
     83        (WebCore::JSTestOverrideBuiltinsConstructor::JSTestOverrideBuiltinsConstructor):
     84        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
     85        (WebCore::JSTestSerializedScriptValueInterfaceConstructor::JSTestSerializedScriptValueInterfaceConstructor):
     86        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
     87        (WebCore::JSTestTypedefsConstructor::JSTestTypedefsConstructor):
     88        * bindings/scripts/test/JS/JSattribute.cpp:
     89        (WebCore::JSattributeConstructor::JSattributeConstructor):
     90        * bindings/scripts/test/JS/JSreadonly.cpp:
     91        (WebCore::JSreadonlyConstructor::JSreadonlyConstructor):
     92
    1932015-09-23  Chris Dumez  <cdumez@apple.com>
    294
  • trunk/Source/WebCore/DerivedSources.cpp

    r190155 r190198  
    4343#include "JSCanvasRenderingContext2D.cpp"
    4444#if ENABLE(STREAMS_API)
     45#include "CountQueuingStrategyBuiltins.cpp"
    4546#include "JSCountQueuingStrategy.cpp"
    4647#endif
  • trunk/Source/WebCore/DerivedSources.make

    r190178 r190198  
    12511251
    12521252WEBCORE_JS_BUILTINS = \
    1253     $(WebCore)/Modules/streams/ReadableStream.js
     1253    $(WebCore)/Modules/streams/CountQueuingStrategy.js \
     1254    $(WebCore)/Modules/streams/ReadableStream.js \
     1255#
    12541256
    12551257all : $(WEBCORE_JS_BUILTINS:%.js=%Builtins.cpp)
  • trunk/Source/WebCore/Modules/streams/CountQueuingStrategy.h

    r188127 r190198  
    3434
    3535#include <wtf/RefCounted.h>
     36#include <wtf/RefPtr.h>
    3637
    3738namespace WebCore {
    3839
    39 // CountQueuingStrategy implements a strategy for streams that counts chunks one by one according to the spec. See
    40 // https://streams.spec.whatwg.org/#cqs-class
     40// CountQueuingStrategy is implemented as JS builtin.
     41// This class only serves to integrate with WebIDL auto-generated code.
    4142class CountQueuingStrategy : public RefCounted<CountQueuingStrategy> {
    4243public:
     44    static Ref<CountQueuingStrategy> create() { return adoptRef(*new CountQueuingStrategy); }
     45
    4346    virtual ~CountQueuingStrategy() { }
    4447
    45     inline static int size() { return 1; }
     48private:
     49    CountQueuingStrategy() { }
    4650};
    4751
  • trunk/Source/WebCore/Modules/streams/CountQueuingStrategy.idl

    r188127 r190198  
    2929
    3030[
    31     CustomConstructor(any properties),
     31    JSBuiltinConstructor,
    3232    Conditional=STREAMS_API,
    3333] interface CountQueuingStrategy {
    34     [CustomBinding] double size();
     34    [JSBuiltin] double size();
    3535};
  • trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj

    r190169 r190198  
    39473947      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|x64'">true</ExcludedFromBuild>
    39483948    </ClCompile>
     3949    <ClCompile Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\CountQueuingStrategyBuiltins.cpp">
     3950      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
     3951      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
     3952      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|Win32'">true</ExcludedFromBuild>
     3953      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|x64'">true</ExcludedFromBuild>
     3954      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|Win32'">true</ExcludedFromBuild>
     3955      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|x64'">true</ExcludedFromBuild>
     3956      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
     3957      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
     3958      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|Win32'">true</ExcludedFromBuild>
     3959      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|x64'">true</ExcludedFromBuild>
     3960      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild>
     3961      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|x64'">true</ExcludedFromBuild>
     3962    </ClCompile>
    39493963    <ClCompile Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\ReadableStreamBuiltins.cpp">
    39503964      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
     
    1737817392    </ClCompile>
    1737917393    <ClCompile Include="..\bindings\js\CallbackFunction.cpp">
    17380       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
    17381       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
    17382       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|Win32'">true</ExcludedFromBuild>
    17383       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|x64'">true</ExcludedFromBuild>
    17384       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|Win32'">true</ExcludedFromBuild>
    17385       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|x64'">true</ExcludedFromBuild>
    17386       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
    17387       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
    17388       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|Win32'">true</ExcludedFromBuild>
    17389       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|x64'">true</ExcludedFromBuild>
    17390       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild>
    17391       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|x64'">true</ExcludedFromBuild>
    17392     </ClCompile>
    17393     <ClCompile Include="..\bindings\js\JSCountQueuingStrategyCustom.cpp">
    1739417394      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
    1739517395      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
  • trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters

    r190120 r190198  
    42464246      <Filter>bindings\js</Filter>
    42474247    </ClCompile>
    4248     <ClCompile Include="..\bindings\js\JSCountQueuingStrategyCustom.cpp">
    4249       <Filter>bindings\js</Filter>
    4250     </ClCompile>
    42514248    <ClCompile Include="..\bindings\js\JSCSSRuleCustom.cpp">
    42524249      <Filter>bindings\js</Filter>
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r190178 r190198  
    620620                148AFDA50AF58360008CC700 /* ExceptionHandlers.h in Headers */ = {isa = PBXBuildFile; fileRef = 148AFDA30AF58360008CC700 /* ExceptionHandlers.h */; settings = {ATTRIBUTES = (Private, ); }; };
    621621                148AFDA60AF58360008CC700 /* ExceptionHandlers.mm in Sources */ = {isa = PBXBuildFile; fileRef = 148AFDA40AF58360008CC700 /* ExceptionHandlers.mm */; };
    622                 148B4FF81B69042100C954E4 /* JSCountQueuingStrategyCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 148B4FF71B69042100C954E4 /* JSCountQueuingStrategyCustom.cpp */; };
    623622                148B4FFE1B6904AA00C954E4 /* CountQueuingStrategy.h in Headers */ = {isa = PBXBuildFile; fileRef = 148B4FFD1B6904AA00C954E4 /* CountQueuingStrategy.h */; };
    624623                14947FFD12F80CD200A0F631 /* DocumentOrderedMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 14947FFB12F80CD200A0F631 /* DocumentOrderedMap.cpp */; };
     
    25972596                7C4902A218B825F8007D9298 /* DOMWheelEventInternal.h in Copy Generated Headers */ = {isa = PBXBuildFile; fileRef = 85989DCA0ACC8BBD00A0BC51 /* DOMWheelEventInternal.h */; };
    25982597                7C4C96DC1AD4483500365A50 /* JSReadableStream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C4C96D81AD4483500365A50 /* JSReadableStream.cpp */; };
     2598                7C4C96DC1AD4483500365A52 /* CountQueuingStrategyBuiltins.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C4C96D81AD4483500365A52 /* CountQueuingStrategyBuiltins.cpp */; };
    25992599                7C4C96DC1AD4483500365A51 /* ReadableStreamBuiltins.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C4C96D81AD4483500365A51 /* ReadableStreamBuiltins.cpp */; };
    26002600                7C4C96DD1AD4483500365A50 /* JSReadableStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C4C96D91AD4483500365A50 /* JSReadableStream.h */; };
     
    77977797                148AFDA30AF58360008CC700 /* ExceptionHandlers.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ExceptionHandlers.h; sourceTree = "<group>"; };
    77987798                148AFDA40AF58360008CC700 /* ExceptionHandlers.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = ExceptionHandlers.mm; sourceTree = "<group>"; };
    7799                 148B4FF71B69042100C954E4 /* JSCountQueuingStrategyCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSCountQueuingStrategyCustom.cpp; sourceTree = "<group>"; };
    78007799                148B4FFD1B6904AA00C954E4 /* CountQueuingStrategy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CountQueuingStrategy.h; sourceTree = "<group>"; };
    78017800                148B4FFF1B6904C500C954E4 /* CountQueuingStrategy.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CountQueuingStrategy.idl; sourceTree = "<group>"; };
     
    99889987                7C48A6D2191C9D8E00026674 /* WebKitNamespace.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = WebKitNamespace.idl; sourceTree = "<group>"; };
    99899988                7C4C96D81AD4483500365A50 /* JSReadableStream.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSReadableStream.cpp; sourceTree = "<group>"; };
     9989                7C4C96D81AD4483500365A52 /* CountQueuingStrategyBuiltins.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CountQueuingStrategyBuiltins.cpp; sourceTree = "<group>"; };
    99909990                7C4C96D81AD4483500365A51 /* ReadableStreamBuiltins.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ReadableStreamBuiltins.cpp; sourceTree = "<group>"; };
    99919991                7C4C96D91AD4483500365A50 /* JSReadableStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSReadableStream.h; sourceTree = "<group>"; };
     
    1621616216                        isa = PBXGroup;
    1621716217                        children = (
     16218                                7C4C96D81AD4483500365A52 /* CountQueuingStrategyBuiltins.cpp */,
    1621816219                                7C4C96D81AD4483500365A51 /* ReadableStreamBuiltins.cpp */,
    1621916220                                7C4C96D81AD4483500365A50 /* JSReadableStream.cpp */,
     
    2162921630                                7C33F3581B4A044800502CAF /* JSCharacterDataCustom.cpp */,
    2163021631                                A584FE371864DAC100843B10 /* JSCommandLineAPIHostCustom.cpp */,
    21631                                 148B4FF71B69042100C954E4 /* JSCountQueuingStrategyCustom.cpp */,
    2163221632                                209B456A16796A7E00E54E4E /* JSCryptoCustom.cpp */,
    2163321633                                E157A8E618184C67009F821D /* JSCryptoKeyCustom.cpp */,
     
    2889428894                                A871DC260A15205700B12A68 /* HTMLStyleElement.cpp in Sources */,
    2889528895                                310D71951B335C9D009C7B73 /* ThemeCocoa.cpp in Sources */,
    28896                                 148B4FF81B69042100C954E4 /* JSCountQueuingStrategyCustom.cpp in Sources */,
    2889728896                                D3D4E972130C7CFE007BA540 /* HTMLSummaryElement.cpp in Sources */,
    2889828897                                A871DB320A150BD600B12A68 /* HTMLTableCaptionElement.cpp in Sources */,
     
    2941529414                                B658FFA11522EF3A00DD5595 /* JSRadioNodeList.cpp in Sources */,
    2941629415                                65DF320109D1CC60000BE325 /* JSRange.cpp in Sources */,
     29416                                7C4C96DC1AD4483500365A52 /* CountQueuingStrategyBuiltins.cpp in Sources */,
    2941729417                                7C4C96DC1AD4483500365A51 /* ReadableStreamBuiltins.cpp in Sources */,
    2941829418                                7C4C96DC1AD4483500365A50 /* JSReadableStream.cpp in Sources */,
  • trunk/Source/WebCore/bindings/js/JSBindingsAllInOne.cpp

    r190030 r190198  
    3535#include "JSAudioTrackListCustom.cpp"
    3636#include "JSBlobCustom.cpp"
    37 #if ENABLE(STREAMS_API)
    38 #include "JSCountQueuingStrategyCustom.cpp"
    39 #endif
    4037#include "JSCSSRuleCustom.cpp"
    4138#include "JSCSSRuleListCustom.cpp"
  • trunk/Source/WebCore/bindings/js/JSDOMBinding.cpp

    r186231 r190198  
    647647}
    648648
     649void callFunctionWithCurrentArguments(JSC::ExecState& state, JSC::JSObject& thisObject, JSC::JSFunction& function)
     650{
     651    JSC::CallData callData;
     652    JSC::CallType callType = JSC::getCallData(&function, callData);
     653    ASSERT(callType != CallTypeNone);
     654
     655    JSC::MarkedArgumentBuffer arguments;
     656    for (unsigned i = 0; i < state.argumentCount(); ++i)
     657        arguments.append(state.uncheckedArgument(i));
     658    JSC::call(&state, &function, callType, callData, &thisObject, arguments);
     659}
     660
     661void DOMConstructorJSBuiltinObject::visitChildren(JSC::JSCell* cell, JSC::SlotVisitor& visitor)
     662{
     663    auto* thisObject = jsCast<DOMConstructorJSBuiltinObject*>(cell);
     664    ASSERT_GC_OBJECT_INHERITS(thisObject, info());
     665    Base::visitChildren(thisObject, visitor);
     666    visitor.append(&thisObject->m_initializeFunction);
     667}
     668
    649669} // namespace WebCore
  • trunk/Source/WebCore/bindings/js/JSDOMBinding.h

    r190093 r190198  
    4646#include <runtime/TypedArrayInlines.h>
    4747#include <runtime/TypedArrays.h>
     48#include <runtime/WriteBarrier.h>
    4849#include <wtf/Forward.h>
    4950#include <wtf/GetPtr.h>
     
    5354namespace JSC {
    5455class HashEntry;
     56class JSFunction;
    5557}
    5658
     
    8486WEBCORE_EXPORT JSC::EncodedJSValue throwThisTypeError(JSC::ExecState&, const char* interfaceName, const char* functionName);
    8587
     88void callFunctionWithCurrentArguments(JSC::ExecState&, JSC::JSObject& thisObject, JSC::JSFunction&);
     89
     90template<typename WrapperClass, typename DOMClass> inline JSC::EncodedJSValue createFromJSBuiltin(JSC::ExecState& state, JSC::JSFunction& initializeFunction, JSDOMGlobalObject& globalObject)
     91{
     92    JSC::JSObject* object = asObject(toJS(&state, &globalObject, DOMClass::create()));
     93    callFunctionWithCurrentArguments(state, *object, initializeFunction);
     94    return JSC::JSValue::encode(object);
     95}
     96
    8697// Base class for all constructor objects in the JSC bindings.
    8798class DOMConstructorObject : public JSDOMWrapper {
     
    100111    {
    101112    }
     113};
     114
     115class DOMConstructorJSBuiltinObject : public DOMConstructorObject {
     116public:
     117    typedef DOMConstructorObject Base;
     118
     119protected:
     120    DOMConstructorJSBuiltinObject(JSC::Structure* structure, JSDOMGlobalObject* globalObject)
     121        : DOMConstructorObject(structure, globalObject) { }
     122
     123    static void visitChildren(JSC::JSCell*, JSC::SlotVisitor&);
     124
     125    JSC::JSFunction* initializeFunction() { return m_initializeFunction.get(); }
     126    void setInitializeFunction(JSC::VM& vm, JSC::JSFunction& function) { m_initializeFunction.set(vm, this, &function); }
     127
     128private:
     129    JSC::WriteBarrier<JSC::JSFunction> m_initializeFunction;
    102130};
    103131
  • trunk/Source/WebCore/bindings/js/WebCoreJSClientData.h

    r190155 r190198  
    2323#define WebCoreJSClientData_h
    2424
     25#include "CountQueuingStrategyBuiltinsWrapper.h"
    2526#include "DOMWrapperWorld.h"
    2627#include "ReadableStreamBuiltinsWrapper.h"
     
    3738
    3839public:
    39     WebCoreJSClientData(JSC::VM& vm)
     40    explicit WebCoreJSClientData(JSC::VM& vm)
    4041#if ENABLE(STREAMS_API)
    4142        : m_readableStreamBuiltins(&vm)
     43        , m_countQueuingStrategyBuiltins(&vm)
    4244#endif
    4345    {
     
    7880#if ENABLE(STREAMS_API)
    7981    ReadableStreamBuiltinsWrapper& readableStreamBuiltins() { return m_readableStreamBuiltins; }
     82    CountQueuingStrategyBuiltinsWrapper& countQueuingStrategyBuiltins() { return m_countQueuingStrategyBuiltins; }
    8083#endif
    8184
     
    8689#if ENABLE(STREAMS_API)
    8790    ReadableStreamBuiltinsWrapper m_readableStreamBuiltins;
     91    CountQueuingStrategyBuiltinsWrapper m_countQueuingStrategyBuiltins;
    8892#endif
    8993};
  • trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm

    r190190 r190198  
    546546}
    547547
     548sub GetJSBuiltinFunctionName
     549{
     550    my ($className, $functionName) = @_;
     551    return $codeGenerator->WK_lcfirst(substr $className, 2) . $codeGenerator->WK_ucfirst($functionName) . "CodeGenerator";
     552}
     553
    548554sub GetFunctionName
    549555{
     
    556562
    557563    if ($function->signature->extendedAttributes->{"JSBuiltin"}) {
    558         return $codeGenerator->WK_lcfirst($scopeName) . $codeGenerator->WK_ucfirst($function->signature->name) . "CodeGenerator";
     564        return GetJSBuiltinFunctionName($className, $function->signature->name);
    559565    }
    560566
     
    784790        || $interface->extendedAttributes->{"EventTarget"}
    785791        || $interface->name eq "EventTarget"
    786         || $interface->extendedAttributes->{"ReportExtraMemoryCost"};
     792        || $interface->extendedAttributes->{"ReportExtraMemoryCost"}
     793        || $interface->extendedAttributes->{"JSBuiltinConstructor"};
    787794}
    788795
     
    45324539}
    45334540
     4541sub GetParentConstructorClassName
     4542{
     4543    my $interface = shift;
     4544    if ($interface->extendedAttributes->{"JSBuiltinConstructor"}) {
     4545        return "DOMConstructorJSBuiltinObject";
     4546    }
     4547    return "DOMConstructorObject";
     4548
     4549}
     4550
    45344551sub GenerateConstructorDeclaration
    45354552{
     
    45404557
    45414558    my $constructorClassName = "${className}Constructor";
    4542 
    4543     push(@$outputArray, "class ${constructorClassName} : public DOMConstructorObject {\n");
     4559    my $parentClassName = GetParentConstructorClassName($interface);
     4560
     4561    push(@$outputArray, "class ${constructorClassName} : public " . $parentClassName . " {\n");
    45444562    push(@$outputArray, "private:\n");
    45454563    push(@$outputArray, "    ${constructorClassName}(JSC::Structure*, JSDOMGlobalObject*);\n");
     
    45474565
    45484566    push(@$outputArray, "public:\n");
    4549     push(@$outputArray, "    typedef DOMConstructorObject Base;\n");
     4567    push(@$outputArray, "    typedef " . $parentClassName . " Base;\n");
    45504568    push(@$outputArray, "    static $constructorClassName* create(JSC::VM& vm, JSC::Structure* structure, JSDOMGlobalObject* globalObject)\n");
    45514569    push(@$outputArray, "    {\n");
     
    47694787
    47704788END
     4789        } elsif ($interface->extendedAttributes->{"JSBuiltinConstructor"}) {
     4790            push(@$outputArray, "JSC::EncodedJSValue JSC_HOST_CALL ${constructorClassName}::construct${className}(JSC::ExecState* state)\n");
     4791            push(@$outputArray, "{\n");
     4792
     4793            push(@$outputArray, "    auto* castedThis = jsCast<${constructorClassName}*>(state->callee());\n");
     4794            push(@$outputArray, "    return createFromJSBuiltin<${className}, ${interfaceName}>(*state, *castedThis->initializeFunction(), *castedThis->globalObject());\n");
     4795
     4796            push(@$outputArray, "}\n\n");
    47714797        } elsif (!HasCustomConstructor($interface) && (!$interface->extendedAttributes->{"NamedConstructor"} || $generatingNamedConstructor)) {
    47724798            my $overloadedIndexString = "";
     
    48834909
    48844910    my $constructorClassName = $generatingNamedConstructor ? "${className}NamedConstructor" : "${className}Constructor";
    4885     my $constructorParentClassName = $generatingNamedConstructor ? "DOMConstructorWithDocument" : "DOMConstructorObject";
    48864911    my $leastConstructorLength = 0;
    48874912    if ($codeGenerator->IsConstructorTemplate($interface, "Event")) {
     
    49024927
    49034928    push(@$outputArray, "${constructorClassName}::${constructorClassName}(Structure* structure, JSDOMGlobalObject* globalObject)\n");
    4904     push(@$outputArray, "    : ${constructorParentClassName}(structure, globalObject)\n");
     4929    push(@$outputArray, "    : Base(structure, globalObject)\n");
    49054930    push(@$outputArray, "{\n");
    49064931    push(@$outputArray, "}\n\n");
     
    49354960    if (ConstructorHasProperties($interface)) {
    49364961        push(@$outputArray, "    reifyStaticProperties(vm, ${className}ConstructorTableValues, *this);\n");
     4962    }
     4963
     4964    if ($interface->extendedAttributes->{"JSBuiltinConstructor"}) {
     4965        my $initializeFunctionName = GetJSBuiltinFunctionName(${className}, "initialize" . ${interfaceName});
     4966        push(@$outputArray, "    setInitializeFunction(vm, *JSC::JSFunction::createBuiltinFunction(vm, ${initializeFunctionName}(vm), globalObject));\n");
    49374967    }
    49384968
     
    49975027    my $interface = shift;
    49985028
    4999     return HasCustomConstructor($interface) || $interface->extendedAttributes->{"Constructor"} || $interface->extendedAttributes->{"NamedConstructor"} || $interface->extendedAttributes->{"ConstructorTemplate"};
     5029    return HasCustomConstructor($interface) || $interface->extendedAttributes->{"Constructor"} || $interface->extendedAttributes->{"NamedConstructor"} || $interface->extendedAttributes->{"ConstructorTemplate"} || $interface->extendedAttributes->{"JSBuiltinConstructor"};
    50005030}
    50015031
  • trunk/Source/WebCore/bindings/scripts/IDLAttributes.txt

    r190155 r190198  
    7575IsWeakCallback
    7676JSBuiltin
     77JSBuiltinConstructor
    7778JSCustomDefineOwnProperty
    7879JSCustomDefineOwnPropertyOnPrototype
  • trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.cpp

    r190190 r190198  
    109109
    110110JSTestActiveDOMObjectConstructor::JSTestActiveDOMObjectConstructor(Structure* structure, JSDOMGlobalObject* globalObject)
    111     : DOMConstructorObject(structure, globalObject)
     111    : Base(structure, globalObject)
    112112{
    113113}
  • trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallback.cpp

    r190028 r190198  
    9696
    9797JSTestCallbackConstructor::JSTestCallbackConstructor(Structure* structure, JSDOMGlobalObject* globalObject)
    98     : DOMConstructorObject(structure, globalObject)
     98    : Base(structure, globalObject)
    9999{
    100100}
  • trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp

    r190190 r190198  
    8484
    8585JSTestCustomConstructorWithNoInterfaceObjectConstructor::JSTestCustomConstructorWithNoInterfaceObjectConstructor(Structure* structure, JSDOMGlobalObject* globalObject)
    86     : DOMConstructorObject(structure, globalObject)
     86    : Base(structure, globalObject)
    8787{
    8888}
  • trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp

    r190190 r190198  
    104104
    105105JSTestCustomNamedGetterConstructor::JSTestCustomNamedGetterConstructor(Structure* structure, JSDOMGlobalObject* globalObject)
    106     : DOMConstructorObject(structure, globalObject)
     106    : Base(structure, globalObject)
    107107{
    108108}
  • trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp

    r190190 r190198  
    133133
    134134JSTestEventConstructorConstructor::JSTestEventConstructorConstructor(Structure* structure, JSDOMGlobalObject* globalObject)
    135     : DOMConstructorObject(structure, globalObject)
     135    : Base(structure, globalObject)
    136136{
    137137}
  • trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp

    r190190 r190198  
    113113
    114114JSTestEventTargetConstructor::JSTestEventTargetConstructor(Structure* structure, JSDOMGlobalObject* globalObject)
    115     : DOMConstructorObject(structure, globalObject)
     115    : Base(structure, globalObject)
    116116{
    117117}
  • trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp

    r190190 r190198  
    100100
    101101JSTestExceptionConstructor::JSTestExceptionConstructor(Structure* structure, JSDOMGlobalObject* globalObject)
    102     : DOMConstructorObject(structure, globalObject)
     102    : Base(structure, globalObject)
    103103{
    104104}
  • trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp

    r190190 r190198  
    8383
    8484JSTestGenerateIsReachableConstructor::JSTestGenerateIsReachableConstructor(Structure* structure, JSDOMGlobalObject* globalObject)
    85     : DOMConstructorObject(structure, globalObject)
     85    : Base(structure, globalObject)
    8686{
    8787}
  • trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp

    r190190 r190198  
    292292
    293293JSTestInterfaceConstructor::JSTestInterfaceConstructor(Structure* structure, JSDOMGlobalObject* globalObject)
    294     : DOMConstructorObject(structure, globalObject)
     294    : Base(structure, globalObject)
    295295{
    296296}
  • trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp

    r190190 r190198  
    9090
    9191JSTestMediaQueryListListenerConstructor::JSTestMediaQueryListListenerConstructor(Structure* structure, JSDOMGlobalObject* globalObject)
    92     : DOMConstructorObject(structure, globalObject)
     92    : Base(structure, globalObject)
    9393{
    9494}
  • trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.cpp

    r190190 r190198  
    111111
    112112JSTestNamedConstructorConstructor::JSTestNamedConstructorConstructor(Structure* structure, JSDOMGlobalObject* globalObject)
    113     : DOMConstructorObject(structure, globalObject)
     113    : Base(structure, globalObject)
    114114{
    115115}
     
    150150
    151151JSTestNamedConstructorNamedConstructor::JSTestNamedConstructorNamedConstructor(Structure* structure, JSDOMGlobalObject* globalObject)
    152     : DOMConstructorWithDocument(structure, globalObject)
     152    : Base(structure, globalObject)
    153153{
    154154}
  • trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp

    r190190 r190198  
    9999
    100100JSTestNodeConstructor::JSTestNodeConstructor(Structure* structure, JSDOMGlobalObject* globalObject)
    101     : DOMConstructorObject(structure, globalObject)
     101    : Base(structure, globalObject)
    102102{
    103103}
  • trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNondeterministic.cpp

    r190190 r190198  
    106106
    107107JSTestNondeterministicConstructor::JSTestNondeterministicConstructor(Structure* structure, JSDOMGlobalObject* globalObject)
    108     : DOMConstructorObject(structure, globalObject)
     108    : Base(structure, globalObject)
    109109{
    110110}
  • trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp

    r190190 r190198  
    484484
    485485JSTestObjConstructor::JSTestObjConstructor(Structure* structure, JSDOMGlobalObject* globalObject)
    486     : DOMConstructorObject(structure, globalObject)
     486    : Base(structure, globalObject)
    487487{
    488488}
  • trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp

    r190190 r190198  
    171171
    172172JSTestOverloadedConstructorsConstructor::JSTestOverloadedConstructorsConstructor(Structure* structure, JSDOMGlobalObject* globalObject)
    173     : DOMConstructorObject(structure, globalObject)
     173    : Base(structure, globalObject)
    174174{
    175175}
  • trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp

    r190190 r190198  
    106106
    107107JSTestOverrideBuiltinsConstructor::JSTestOverrideBuiltinsConstructor(Structure* structure, JSDOMGlobalObject* globalObject)
    108     : DOMConstructorObject(structure, globalObject)
     108    : Base(structure, globalObject)
    109109{
    110110}
  • trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp

    r190190 r190198  
    9797
    9898JSTestSerializedScriptValueInterfaceConstructor::JSTestSerializedScriptValueInterfaceConstructor(Structure* structure, JSDOMGlobalObject* globalObject)
    99     : DOMConstructorObject(structure, globalObject)
     99    : Base(structure, globalObject)
    100100{
    101101}
  • trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp

    r190190 r190198  
    162162
    163163JSTestTypedefsConstructor::JSTestTypedefsConstructor(Structure* structure, JSDOMGlobalObject* globalObject)
    164     : DOMConstructorObject(structure, globalObject)
     164    : Base(structure, globalObject)
    165165{
    166166}
  • trunk/Source/WebCore/bindings/scripts/test/JS/JSattribute.cpp

    r190190 r190198  
    8686
    8787JSattributeConstructor::JSattributeConstructor(Structure* structure, JSDOMGlobalObject* globalObject)
    88     : DOMConstructorObject(structure, globalObject)
     88    : Base(structure, globalObject)
    8989{
    9090}
  • trunk/Source/WebCore/bindings/scripts/test/JS/JSreadonly.cpp

    r190190 r190198  
    8383
    8484JSreadonlyConstructor::JSreadonlyConstructor(Structure* structure, JSDOMGlobalObject* globalObject)
    85     : DOMConstructorObject(structure, globalObject)
     85    : Base(structure, globalObject)
    8686{
    8787}
Note: See TracChangeset for help on using the changeset viewer.