<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[208613] trunk</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/208613">208613</a></dd>
<dt>Author</dt> <dd>cdumez@apple.com</dd>
<dt>Date</dt> <dd>2016-11-11 14:53:24 -0800 (Fri, 11 Nov 2016)</dd>
</dl>
<h3>Log Message</h3>
<pre>WorkerGlobalScope's indexedDB property should be on the prototype, not the instance
https://bugs.webkit.org/show_bug.cgi?id=164644
Reviewed by Brady Eidson.
Source/WebCore:
WorkerGlobalScope's indexedDB property should be on the prototype, not the instance
as per:
- https://heycam.github.io/webidl/#es-attributes
This is because WorkerGlobalScope is not marked as [Global] or [PrimaryGlobal] in
the IDL:
- https://html.spec.whatwg.org/multipage/workers.html#the-workerglobalscope-common-interface
DedicatedWorkerGlobalScope is the one that is marked as [Global] and that should
have its attributes on the instance:
- https://html.spec.whatwg.org/multipage/workers.html#dedicated-workers-and-the-dedicatedworkerglobalscope-interface
We were getting this mostly right, except for runtime-enabled attributes / operations
which would end up on the instance instead of the prototype. This patch adds support
for [PrimaryGlobal] / [Global] IDL extended attributes which determine the location
of properties. It also improves support for runtime-enabled properties so that they
can now be on either the instance or the prototype, exactly as if they were not
runtimed-enabled.
This gives us 100% pass rate on:
- http://w3c-test.org/IndexedDB/interfaces.worker.html
No new tests, updated existing test.
* bindings/scripts/CodeGeneratorJS.pm:
(IsGlobalOrPrimaryGlobalInterface):
(InterfaceRequiresAttributesOnInstance):
(AttributeShouldBeOnInstance):
(OperationShouldBeOnInstance):
(GenerateHeader):
(GeneratePropertiesHashTable):
(GenerateImplementation):
* bindings/scripts/IDLAttributes.txt:
* bindings/scripts/test/JS/JSInterfaceName.cpp:
(WebCore::JSInterfaceName::finishCreation):
* bindings/scripts/test/JS/JSInterfaceName.h:
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::JSTestActiveDOMObject::finishCreation):
* bindings/scripts/test/JS/JSTestActiveDOMObject.h:
* bindings/scripts/test/JS/JSTestCEReactions.cpp:
(WebCore::JSTestCEReactions::finishCreation):
* bindings/scripts/test/JS/JSTestCEReactions.h:
* bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:
(WebCore::JSTestCEReactionsStringifier::finishCreation):
* bindings/scripts/test/JS/JSTestCEReactionsStringifier.h:
* bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:
(WebCore::JSTestClassWithJSBuiltinConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.h:
* bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
(WebCore::JSTestCustomConstructorWithNoInterfaceObject::finishCreation):
* bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.h:
* bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
(WebCore::JSTestCustomNamedGetter::finishCreation):
* bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
* bindings/scripts/test/JS/JSTestDOMJIT.cpp:
(WebCore::JSTestDOMJIT::finishCreation):
* bindings/scripts/test/JS/JSTestDOMJIT.h:
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore::JSTestEventConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestEventConstructor.h:
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::JSTestEventTarget::finishCreation):
* bindings/scripts/test/JS/JSTestEventTarget.h:
* bindings/scripts/test/JS/JSTestException.cpp:
(WebCore::JSTestException::finishCreation):
* bindings/scripts/test/JS/JSTestException.h:
* bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
(WebCore::JSTestGenerateIsReachable::finishCreation):
* bindings/scripts/test/JS/JSTestGenerateIsReachable.h:
* bindings/scripts/test/JS/JSTestGlobalObject.cpp:
(WebCore::JSTestGlobalObject::finishCreation):
* bindings/scripts/test/JS/JSTestGlobalObject.h:
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::JSTestInterface::finishCreation):
* bindings/scripts/test/JS/JSTestInterface.h:
* bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp:
(WebCore::JSTestInterfaceLeadingUnderscore::finishCreation):
* bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.h:
* bindings/scripts/test/JS/JSTestIterable.cpp:
(WebCore::JSTestIterable::finishCreation):
* bindings/scripts/test/JS/JSTestIterable.h:
* bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:
(WebCore::JSTestJSBuiltinConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestJSBuiltinConstructor.h:
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
(WebCore::JSTestMediaQueryListListener::finishCreation):
* bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
(WebCore::JSTestNamedConstructor::finishCreation):
* bindings/scripts/test/JS/JSTestNamedConstructor.h:
* bindings/scripts/test/JS/JSTestNode.cpp:
(WebCore::JSTestNode::finishCreation):
* bindings/scripts/test/JS/JSTestNode.h:
* bindings/scripts/test/JS/JSTestNondeterministic.cpp:
(WebCore::JSTestNondeterministic::finishCreation):
* bindings/scripts/test/JS/JSTestNondeterministic.h:
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObj::finishCreation):
* bindings/scripts/test/JS/JSTestObj.h:
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::JSTestOverloadedConstructors::finishCreation):
* bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
* bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:
(WebCore::JSTestOverloadedConstructorsWithSequence::finishCreation):
* bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.h:
* bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
(WebCore::JSTestOverrideBuiltins::finishCreation):
* bindings/scripts/test/JS/JSTestOverrideBuiltins.h:
* bindings/scripts/test/JS/JSTestSerialization.cpp:
(WebCore::JSTestSerialization::finishCreation):
* bindings/scripts/test/JS/JSTestSerialization.h:
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::JSTestSerializedScriptValueInterface::finishCreation):
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::JSTestTypedefs::finishCreation):
* bindings/scripts/test/JS/JSTestTypedefs.h:
* bindings/scripts/test/TestGlobalObject.idl:
* page/DOMWindow.idl:
* workers/DedicatedWorkerGlobalScope.idl:
LayoutTests:
Extend layout test coverage to check that:
- WorkerGlobalScope.indexedDB is on the prototype.
- WorkerGlobalScope.IDBDatabase constructor is on the instance
Both are enabled at runtime properties.
* fast/workers/WorkerGlobalScope-properties-prototype-expected.txt:
* fast/workers/WorkerGlobalScope-properties-prototype.html:
* fast/workers/self-hasOwnProperty-expected.txt:
* fast/workers/self-hasOwnProperty.html:</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsfastworkersWorkerGlobalScopepropertiesprototypeexpectedtxt">trunk/LayoutTests/fast/workers/WorkerGlobalScope-properties-prototype-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastworkersWorkerGlobalScopepropertiesprototypehtml">trunk/LayoutTests/fast/workers/WorkerGlobalScope-properties-prototype.html</a></li>
<li><a href="#trunkLayoutTestsfastworkersselfhasOwnPropertyexpectedtxt">trunk/LayoutTests/fast/workers/self-hasOwnProperty-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastworkersselfhasOwnPropertyhtml">trunk/LayoutTests/fast/workers/self-hasOwnProperty.html</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptsCodeGeneratorJSpm">trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptsIDLAttributestxt">trunk/Source/WebCore/bindings/scripts/IDLAttributes.txt</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSInterfaceNamecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSInterfaceName.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSInterfaceNameh">trunk/Source/WebCore/bindings/scripts/test/JS/JSInterfaceName.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestActiveDOMObjectcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestActiveDOMObjecth">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestCEReactionscpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCEReactions.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestCEReactionsh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCEReactions.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestCEReactionsStringifiercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestCEReactionsStringifierh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCEReactionsStringifier.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestClassWithJSBuiltinConstructorcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestClassWithJSBuiltinConstructorh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestCustomConstructorWithNoInterfaceObjectcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestCustomConstructorWithNoInterfaceObjecth">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestCustomNamedGettercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestCustomNamedGetterh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestDOMJITcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDOMJIT.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestDOMJITh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDOMJIT.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestEventConstructorcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestEventConstructorh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestEventTargetcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestEventTargeth">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestExceptioncpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestExceptionh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestGenerateIsReachablecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestGenerateIsReachableh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestGlobalObjectcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGlobalObject.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestGlobalObjecth">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGlobalObject.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestInterfacecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestInterfaceh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestInterfaceLeadingUnderscorecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestInterfaceLeadingUnderscoreh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestIterablecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIterable.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestIterableh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIterable.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestJSBuiltinConstructorcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestJSBuiltinConstructorh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestJSBuiltinConstructor.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestMediaQueryListListenercpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestMediaQueryListListenerh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNamedConstructorcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNamedConstructorh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNodecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNodeh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNondeterministiccpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNondeterministic.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestNondeterministich">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNondeterministic.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestObjcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestObjh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestOverloadedConstructorscpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestOverloadedConstructorsh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestOverloadedConstructorsWithSequencecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestOverloadedConstructorsWithSequenceh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestOverrideBuiltinscpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestOverrideBuiltinsh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverrideBuiltins.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestSerializationcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerialization.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestSerializationh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerialization.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestSerializedScriptValueInterfacecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestSerializedScriptValueInterfaceh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestTypedefscpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestTypedefsh">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestTestGlobalObjectidl">trunk/Source/WebCore/bindings/scripts/test/TestGlobalObject.idl</a></li>
<li><a href="#trunkSourceWebCorepageDOMWindowidl">trunk/Source/WebCore/page/DOMWindow.idl</a></li>
<li><a href="#trunkSourceWebCoreworkersDedicatedWorkerGlobalScopeidl">trunk/Source/WebCore/workers/DedicatedWorkerGlobalScope.idl</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/LayoutTests/ChangeLog        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -1,3 +1,21 @@
</span><ins>+2016-11-11 Chris Dumez <cdumez@apple.com>
+
+ WorkerGlobalScope's indexedDB property should be on the prototype, not the instance
+ https://bugs.webkit.org/show_bug.cgi?id=164644
+
+ Reviewed by Brady Eidson.
+
+ Extend layout test coverage to check that:
+ - WorkerGlobalScope.indexedDB is on the prototype.
+ - WorkerGlobalScope.IDBDatabase constructor is on the instance
+
+ Both are enabled at runtime properties.
+
+ * fast/workers/WorkerGlobalScope-properties-prototype-expected.txt:
+ * fast/workers/WorkerGlobalScope-properties-prototype.html:
+ * fast/workers/self-hasOwnProperty-expected.txt:
+ * fast/workers/self-hasOwnProperty.html:
+
</ins><span class="cx"> 2016-11-11 Antti Koivisto <antti@apple.com>
</span><span class="cx">
</span><span class="cx"> Shadow DOM: Toggling class in `.class ::slotted(*)` does not trigger style recalc
</span></span></pre></div>
<a id="trunkLayoutTestsfastworkersWorkerGlobalScopepropertiesprototypeexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/workers/WorkerGlobalScope-properties-prototype-expected.txt (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/workers/WorkerGlobalScope-properties-prototype-expected.txt        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/LayoutTests/fast/workers/WorkerGlobalScope-properties-prototype-expected.txt        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -4,11 +4,14 @@
</span><span class="cx">
</span><span class="cx">
</span><span class="cx"> self.__proto__.__proto__ === WorkerGlobalScope.prototype: true
</span><ins>+self.__proto__.__proto__.__proto__ === EventTarget.prototype: true
+self.__proto__.__proto__.__proto__.__proto__ === {}.__proto__: true
</ins><span class="cx"> self.__proto__.__proto__.hasOwnProperty('navigator') === true: true
</span><span class="cx"> self.__proto__.__proto__.hasOwnProperty('self') === true: true
</span><span class="cx"> self.__proto__.__proto__.hasOwnProperty('location') === true: true
</span><span class="cx"> self.__proto__.__proto__.hasOwnProperty('close') === true: true
</span><span class="cx"> self.__proto__.__proto__.hasOwnProperty('importScripts') === true: true
</span><ins>+self.__proto__.__proto__.hasOwnProperty('indexedDB') === true: true
</ins><span class="cx"> self.hasOwnProperty('navigator') === false: true
</span><span class="cx"> self.hasOwnProperty('location') === false: true
</span><span class="cx"> self.hasOwnProperty('close') === false: true
</span></span></pre></div>
<a id="trunkLayoutTestsfastworkersWorkerGlobalScopepropertiesprototypehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/workers/WorkerGlobalScope-properties-prototype.html (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/workers/WorkerGlobalScope-properties-prototype.html        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/LayoutTests/fast/workers/WorkerGlobalScope-properties-prototype.html        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -9,11 +9,14 @@
</span><span class="cx">
</span><span class="cx"> var worker = createWorker();
</span><span class="cx"> worker.postMessage("eval self.__proto__.__proto__ === WorkerGlobalScope.prototype");
</span><ins>+worker.postMessage("eval self.__proto__.__proto__.__proto__ === EventTarget.prototype");
+worker.postMessage("eval self.__proto__.__proto__.__proto__.__proto__ === {}.__proto__");
</ins><span class="cx"> worker.postMessage("eval self.__proto__.__proto__.hasOwnProperty('navigator') === true");
</span><span class="cx"> worker.postMessage("eval self.__proto__.__proto__.hasOwnProperty('self') === true");
</span><span class="cx"> worker.postMessage("eval self.__proto__.__proto__.hasOwnProperty('location') === true");
</span><span class="cx"> worker.postMessage("eval self.__proto__.__proto__.hasOwnProperty('close') === true");
</span><span class="cx"> worker.postMessage("eval self.__proto__.__proto__.hasOwnProperty('importScripts') === true");
</span><ins>+worker.postMessage("eval self.__proto__.__proto__.hasOwnProperty('indexedDB') === true");
</ins><span class="cx"> worker.postMessage("eval self.hasOwnProperty('navigator') === false");
</span><span class="cx"> worker.postMessage("eval self.hasOwnProperty('location') === false");
</span><span class="cx"> worker.postMessage("eval self.hasOwnProperty('close') === false");
</span></span></pre></div>
<a id="trunkLayoutTestsfastworkersselfhasOwnPropertyexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/workers/self-hasOwnProperty-expected.txt (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/workers/self-hasOwnProperty-expected.txt        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/LayoutTests/fast/workers/self-hasOwnProperty-expected.txt        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -6,6 +6,7 @@
</span><span class="cx"> self.hasOwnProperty('DedicatedWorkerGlobalScope'): true
</span><span class="cx"> self.hasOwnProperty('WorkerGlobalScope'): true
</span><span class="cx"> self.hasOwnProperty('postMessage'): true
</span><ins>+self.hasOwnProperty('IDBDatabase'): true
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx">
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestsfastworkersselfhasOwnPropertyhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/workers/self-hasOwnProperty.html (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/workers/self-hasOwnProperty.html        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/LayoutTests/fast/workers/self-hasOwnProperty.html        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -11,6 +11,7 @@
</span><span class="cx"> worker.postMessage("eval self.hasOwnProperty('DedicatedWorkerGlobalScope')");
</span><span class="cx"> worker.postMessage("eval self.hasOwnProperty('WorkerGlobalScope')");
</span><span class="cx"> worker.postMessage("eval self.hasOwnProperty('postMessage')");
</span><ins>+worker.postMessage("eval self.hasOwnProperty('IDBDatabase')");
</ins><span class="cx"> worker.postMessage("eval DONE");
</span><span class="cx">
</span><span class="cx"> worker.onmessage = function(evt) {
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/ChangeLog        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -1,3 +1,131 @@
</span><ins>+2016-11-11 Chris Dumez <cdumez@apple.com>
+
+ WorkerGlobalScope's indexedDB property should be on the prototype, not the instance
+ https://bugs.webkit.org/show_bug.cgi?id=164644
+
+ Reviewed by Brady Eidson.
+
+ WorkerGlobalScope's indexedDB property should be on the prototype, not the instance
+ as per:
+ - https://heycam.github.io/webidl/#es-attributes
+
+ This is because WorkerGlobalScope is not marked as [Global] or [PrimaryGlobal] in
+ the IDL:
+ - https://html.spec.whatwg.org/multipage/workers.html#the-workerglobalscope-common-interface
+
+ DedicatedWorkerGlobalScope is the one that is marked as [Global] and that should
+ have its attributes on the instance:
+ - https://html.spec.whatwg.org/multipage/workers.html#dedicated-workers-and-the-dedicatedworkerglobalscope-interface
+
+ We were getting this mostly right, except for runtime-enabled attributes / operations
+ which would end up on the instance instead of the prototype. This patch adds support
+ for [PrimaryGlobal] / [Global] IDL extended attributes which determine the location
+ of properties. It also improves support for runtime-enabled properties so that they
+ can now be on either the instance or the prototype, exactly as if they were not
+ runtimed-enabled.
+
+ This gives us 100% pass rate on:
+ - http://w3c-test.org/IndexedDB/interfaces.worker.html
+
+ No new tests, updated existing test.
+
+ * bindings/scripts/CodeGeneratorJS.pm:
+ (IsGlobalOrPrimaryGlobalInterface):
+ (InterfaceRequiresAttributesOnInstance):
+ (AttributeShouldBeOnInstance):
+ (OperationShouldBeOnInstance):
+ (GenerateHeader):
+ (GeneratePropertiesHashTable):
+ (GenerateImplementation):
+ * bindings/scripts/IDLAttributes.txt:
+ * bindings/scripts/test/JS/JSInterfaceName.cpp:
+ (WebCore::JSInterfaceName::finishCreation):
+ * bindings/scripts/test/JS/JSInterfaceName.h:
+ * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
+ (WebCore::JSTestActiveDOMObject::finishCreation):
+ * bindings/scripts/test/JS/JSTestActiveDOMObject.h:
+ * bindings/scripts/test/JS/JSTestCEReactions.cpp:
+ (WebCore::JSTestCEReactions::finishCreation):
+ * bindings/scripts/test/JS/JSTestCEReactions.h:
+ * bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:
+ (WebCore::JSTestCEReactionsStringifier::finishCreation):
+ * bindings/scripts/test/JS/JSTestCEReactionsStringifier.h:
+ * bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:
+ (WebCore::JSTestClassWithJSBuiltinConstructor::finishCreation):
+ * bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.h:
+ * bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
+ (WebCore::JSTestCustomConstructorWithNoInterfaceObject::finishCreation):
+ * bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.h:
+ * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
+ (WebCore::JSTestCustomNamedGetter::finishCreation):
+ * bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
+ * bindings/scripts/test/JS/JSTestDOMJIT.cpp:
+ (WebCore::JSTestDOMJIT::finishCreation):
+ * bindings/scripts/test/JS/JSTestDOMJIT.h:
+ * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
+ (WebCore::JSTestEventConstructor::finishCreation):
+ * bindings/scripts/test/JS/JSTestEventConstructor.h:
+ * bindings/scripts/test/JS/JSTestEventTarget.cpp:
+ (WebCore::JSTestEventTarget::finishCreation):
+ * bindings/scripts/test/JS/JSTestEventTarget.h:
+ * bindings/scripts/test/JS/JSTestException.cpp:
+ (WebCore::JSTestException::finishCreation):
+ * bindings/scripts/test/JS/JSTestException.h:
+ * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
+ (WebCore::JSTestGenerateIsReachable::finishCreation):
+ * bindings/scripts/test/JS/JSTestGenerateIsReachable.h:
+ * bindings/scripts/test/JS/JSTestGlobalObject.cpp:
+ (WebCore::JSTestGlobalObject::finishCreation):
+ * bindings/scripts/test/JS/JSTestGlobalObject.h:
+ * bindings/scripts/test/JS/JSTestInterface.cpp:
+ (WebCore::JSTestInterface::finishCreation):
+ * bindings/scripts/test/JS/JSTestInterface.h:
+ * bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp:
+ (WebCore::JSTestInterfaceLeadingUnderscore::finishCreation):
+ * bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.h:
+ * bindings/scripts/test/JS/JSTestIterable.cpp:
+ (WebCore::JSTestIterable::finishCreation):
+ * bindings/scripts/test/JS/JSTestIterable.h:
+ * bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:
+ (WebCore::JSTestJSBuiltinConstructor::finishCreation):
+ * bindings/scripts/test/JS/JSTestJSBuiltinConstructor.h:
+ * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
+ (WebCore::JSTestMediaQueryListListener::finishCreation):
+ * bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
+ * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
+ (WebCore::JSTestNamedConstructor::finishCreation):
+ * bindings/scripts/test/JS/JSTestNamedConstructor.h:
+ * bindings/scripts/test/JS/JSTestNode.cpp:
+ (WebCore::JSTestNode::finishCreation):
+ * bindings/scripts/test/JS/JSTestNode.h:
+ * bindings/scripts/test/JS/JSTestNondeterministic.cpp:
+ (WebCore::JSTestNondeterministic::finishCreation):
+ * bindings/scripts/test/JS/JSTestNondeterministic.h:
+ * bindings/scripts/test/JS/JSTestObj.cpp:
+ (WebCore::JSTestObj::finishCreation):
+ * bindings/scripts/test/JS/JSTestObj.h:
+ * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
+ (WebCore::JSTestOverloadedConstructors::finishCreation):
+ * bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
+ * bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:
+ (WebCore::JSTestOverloadedConstructorsWithSequence::finishCreation):
+ * bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.h:
+ * bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
+ (WebCore::JSTestOverrideBuiltins::finishCreation):
+ * bindings/scripts/test/JS/JSTestOverrideBuiltins.h:
+ * bindings/scripts/test/JS/JSTestSerialization.cpp:
+ (WebCore::JSTestSerialization::finishCreation):
+ * bindings/scripts/test/JS/JSTestSerialization.h:
+ * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
+ (WebCore::JSTestSerializedScriptValueInterface::finishCreation):
+ * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
+ * bindings/scripts/test/JS/JSTestTypedefs.cpp:
+ (WebCore::JSTestTypedefs::finishCreation):
+ * bindings/scripts/test/JS/JSTestTypedefs.h:
+ * bindings/scripts/test/TestGlobalObject.idl:
+ * page/DOMWindow.idl:
+ * workers/DedicatedWorkerGlobalScope.idl:
+
</ins><span class="cx"> 2016-11-11 Antti Koivisto <antti@apple.com>
</span><span class="cx">
</span><span class="cx"> Shadow DOM: Toggling class in `.class ::slotted(*)` does not trigger style recalc
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptsCodeGeneratorJSpm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -648,6 +648,13 @@
</span><span class="cx"> || InstanceOverridesGetOwnPropertySlot($interface);
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+sub IsGlobalOrPrimaryGlobalInterface
+{
+ my $interface = shift;
+
+ return $interface->extendedAttributes->{Global} || $interface->extendedAttributes->{PrimaryGlobal};
+}
+
</ins><span class="cx"> sub InterfaceRequiresAttributesOnInstance
</span><span class="cx"> {
</span><span class="cx"> my $interface = shift;
</span><span class="lines">@@ -660,8 +667,7 @@
</span><span class="cx"> # FIXME: We should be able to drop this once <rdar://problem/24466097> is fixed.
</span><span class="cx"> return 1 if $interface->isException;
</span><span class="cx">
</span><del>- # FIXME: Add support for [PrimaryGlobal] / [Global].
- return 1 if IsDOMGlobalObject($interface) && $interface->type->name ne "WorkerGlobalScope";
</del><ins>+ return 1 if IsGlobalOrPrimaryGlobalInterface($interface);
</ins><span class="cx">
</span><span class="cx"> return 0;
</span><span class="cx"> }
</span><span class="lines">@@ -671,9 +677,6 @@
</span><span class="cx"> my $interface = shift;
</span><span class="cx"> my $attribute = shift;
</span><span class="cx">
</span><del>- # FIXME: The bindings generator does not support putting runtime-enabled attributes on the instance yet (except for global objects).
- return 0 if $attribute->extendedAttributes->{EnabledAtRuntime} && !IsDOMGlobalObject($interface);
-
</del><span class="cx"> return 1 if InterfaceRequiresAttributesOnInstance($interface);
</span><span class="cx"> return 1 if $codeGenerator->IsConstructorType($attribute->type);
</span><span class="cx">
</span><span class="lines">@@ -696,8 +699,7 @@
</span><span class="cx"> my $interface = shift;
</span><span class="cx"> my $function = shift;
</span><span class="cx">
</span><del>- # FIXME: Add support for [PrimaryGlobal] / [Global].
- return 1 if IsDOMGlobalObject($interface) && $interface->type->name ne "WorkerGlobalScope";
</del><ins>+ return 1 if IsGlobalOrPrimaryGlobalInterface($interface);
</ins><span class="cx">
</span><span class="cx"> # FIXME: The bindings generator does not support putting runtime-enabled operations on the instance yet (except for global objects).
</span><span class="cx"> return 0 if $function->extendedAttributes->{EnabledAtRuntime};
</span><span class="lines">@@ -1674,19 +1676,14 @@
</span><span class="cx"> push(@headerContent, " $className(JSC::Structure*, JSDOMGlobalObject&);\n\n");
</span><span class="cx"> } else {
</span><span class="cx"> push(@headerContent, " $className(JSC::Structure*, JSDOMGlobalObject&, Ref<$implType>&&);\n\n");
</span><del>- push(@headerContent, " void finishCreation(JSC::VM& vm)\n");
- push(@headerContent, " {\n");
- push(@headerContent, " Base::finishCreation(vm);\n");
- push(@headerContent, " ASSERT(inherits(info()));\n");
- push(@headerContent, " }\n\n");
</del><span class="cx"> }
</span><span class="cx">
</span><del>- if (IsDOMGlobalObject($interface)) {
- if ($interfaceName eq "DOMWindow") {
- push(@headerContent, " void finishCreation(JSC::VM&, JSDOMWindowShell*);\n");
- } else {
- push(@headerContent, " void finishCreation(JSC::VM&, JSC::JSProxy*);\n");
- }
</del><ins>+ if ($interfaceName eq "DOMWindow") {
+ push(@headerContent, " void finishCreation(JSC::VM&, JSDOMWindowShell*);\n");
+ } elsif ($codeGenerator->InheritsInterface($interface, "WorkerGlobalScope")) {
+ push(@headerContent, " void finishCreation(JSC::VM&, JSC::JSProxy*);\n");
+ } else {
+ push(@headerContent, " void finishCreation(JSC::VM&);\n");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> push(@headerContent, " void indexSetter(JSC::ExecState*, unsigned index, JSC::JSValue);\n") if $interface->extendedAttributes->{CustomIndexedSetter};
</span><span class="lines">@@ -1885,7 +1882,7 @@
</span><span class="cx"> next if AttributeShouldBeOnInstance($interface, $attribute) != $isInstance;
</span><span class="cx">
</span><span class="cx"> # Global objects add RuntimeEnabled attributes after creation so do not add them to the static table.
</span><del>- if (IsDOMGlobalObject($interface) && $attribute->extendedAttributes->{EnabledAtRuntime}) {
</del><ins>+ if ($isInstance && $attribute->extendedAttributes->{EnabledAtRuntime}) {
</ins><span class="cx"> $propertyCount -= 1;
</span><span class="cx"> next;
</span><span class="cx"> }
</span><span class="lines">@@ -1915,7 +1912,6 @@
</span><span class="cx"> $conditionals->{$name} = $conditional if $conditional;
</span><span class="cx">
</span><span class="cx"> if ($attribute->extendedAttributes->{EnabledAtRuntime}) {
</span><del>- die "We currently do not support [EnabledAtRuntime] attributes on the instance (except for global objects)." if $isInstance;
</del><span class="cx"> push(@$runtimeEnabledAttributes, $attribute);
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="lines">@@ -1931,7 +1927,7 @@
</span><span class="cx"> next if $function->name eq "[Symbol.Iterator]";
</span><span class="cx">
</span><span class="cx"> # Global objects add RuntimeEnabled operations after creation so do not add them to the static table.
</span><del>- if (IsDOMGlobalObject($interface) && $function->extendedAttributes->{EnabledAtRuntime}) {
</del><ins>+ if ($isInstance && $function->extendedAttributes->{EnabledAtRuntime}) {
</ins><span class="cx"> $propertyCount -= 1;
</span><span class="cx"> next;
</span><span class="cx"> }
</span><span class="lines">@@ -1959,7 +1955,6 @@
</span><span class="cx"> $conditionals->{$name} = $conditional if $conditional;
</span><span class="cx">
</span><span class="cx"> if ($function->extendedAttributes->{EnabledAtRuntime}) {
</span><del>- die "We currently do not support [EnabledAtRuntime] operations on the instance (except for global objects)." if $isInstance;
</del><span class="cx"> push(@$runtimeEnabledFunctions, $function);
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="lines">@@ -2913,7 +2908,7 @@
</span><span class="cx"> push(@implContent, "const ClassInfo ${className}Prototype::s_info = { \"${visibleInterfaceName}Prototype\", &Base::s_info, &${className}PrototypeTable, CREATE_METHOD_TABLE(${className}Prototype) };\n\n");
</span><span class="cx"> }
</span><span class="cx">
</span><del>- if (PrototypeHasStaticPropertyTable($interface) && !IsDOMGlobalObject($interface)) {
</del><ins>+ if (PrototypeHasStaticPropertyTable($interface) && !IsGlobalOrPrimaryGlobalInterface($interface)) {
</ins><span class="cx"> push(@implContent, "void ${className}Prototype::finishCreation(VM& vm)\n");
</span><span class="cx"> push(@implContent, "{\n");
</span><span class="cx"> push(@implContent, " Base::finishCreation(vm);\n");
</span><span class="lines">@@ -3002,75 +2997,82 @@
</span><span class="cx"> push(@implContent, "}\n\n");
</span><span class="cx"> }
</span><span class="cx">
</span><del>- if (IsDOMGlobalObject($interface)) {
- if ($interfaceName eq "DOMWindow") {
- push(@implContent, "void ${className}::finishCreation(VM& vm, JSDOMWindowShell* shell)\n");
- push(@implContent, "{\n");
- push(@implContent, " Base::finishCreation(vm, shell);\n\n");
- } else {
- push(@implContent, "void ${className}::finishCreation(VM& vm, JSProxy* proxy)\n");
- push(@implContent, "{\n");
- push(@implContent, " Base::finishCreation(vm, proxy);\n\n");
- }
- # Support for RuntimeEnabled attributes on global objects.
- foreach my $attribute (@{$interface->attributes}) {
- next unless $attribute->extendedAttributes->{EnabledAtRuntime};
</del><ins>+ if ($interfaceName eq "DOMWindow") {
+ push(@implContent, "void ${className}::finishCreation(VM& vm, JSDOMWindowShell* shell)\n");
+ push(@implContent, "{\n");
+ push(@implContent, " Base::finishCreation(vm, shell);\n\n");
+ } elsif ($codeGenerator->InheritsInterface($interface, "WorkerGlobalScope")) {
+ push(@implContent, "void ${className}::finishCreation(VM& vm, JSProxy* proxy)\n");
+ push(@implContent, "{\n");
+ push(@implContent, " Base::finishCreation(vm, proxy);\n\n");
+ } else {
+ push(@implContent, "void ${className}::finishCreation(VM& vm)\n");
+ push(@implContent, "{\n");
+ push(@implContent, " Base::finishCreation(vm);\n");
+ push(@implContent, " ASSERT(inherits(info()));\n\n");
+ }
</ins><span class="cx">
</span><del>- AddToImplIncludes("RuntimeEnabledFeatures.h");
- my $conditionalString = $codeGenerator->GenerateConditionalString($attribute);
- push(@implContent, "#if ${conditionalString}\n") if $conditionalString;
- my $enable_function = GetRuntimeEnableFunctionName($attribute);
- my $attributeName = $attribute->name;
- push(@implContent, " if (${enable_function}()) {\n");
- my $getter = GetAttributeGetterName($interface, $className, $attribute);
- my $setter = IsReadonly($attribute) ? "nullptr" : GetAttributeSetterName($interface, $className, $attribute);
- push(@implContent, " auto* customGetterSetter = CustomGetterSetter::create(vm, $getter, $setter);\n");
- my $jscAttributes = GetJSCAttributesForAttribute($interface, $attribute);
- push(@implContent, " putDirectCustomAccessor(vm, vm.propertyNames->$attributeName, customGetterSetter, attributesForStructure($jscAttributes));\n");
- push(@implContent, " }\n");
- push(@implContent, "#endif\n") if $conditionalString;
- }
</del><ins>+ # Support for RuntimeEnabled attributes on instances.
+ foreach my $attribute (@{$interface->attributes}) {
+ next unless $attribute->extendedAttributes->{EnabledAtRuntime};
+ next unless AttributeShouldBeOnInstance($interface, $attribute);
</ins><span class="cx">
</span><del>- # Support PrivateIdentifier attributes on global objects
- foreach my $attribute (@{$interface->attributes}) {
- next unless $attribute->extendedAttributes->{PrivateIdentifier};
</del><ins>+ AddToImplIncludes("RuntimeEnabledFeatures.h");
+ my $conditionalString = $codeGenerator->GenerateConditionalString($attribute);
+ push(@implContent, "#if ${conditionalString}\n") if $conditionalString;
+ my $enable_function = GetRuntimeEnableFunctionName($attribute);
+ my $attributeName = $attribute->name;
+ push(@implContent, " if (${enable_function}()) {\n");
+ my $getter = GetAttributeGetterName($interface, $className, $attribute);
+ my $setter = IsReadonly($attribute) ? "nullptr" : GetAttributeSetterName($interface, $className, $attribute);
+ push(@implContent, " auto* customGetterSetter = CustomGetterSetter::create(vm, $getter, $setter);\n");
+ my $jscAttributes = GetJSCAttributesForAttribute($interface, $attribute);
+ push(@implContent, " putDirectCustomAccessor(vm, vm.propertyNames->$attributeName, customGetterSetter, attributesForStructure($jscAttributes));\n");
+ push(@implContent, " }\n");
+ push(@implContent, "#endif\n") if $conditionalString;
+ }
</ins><span class="cx">
</span><del>- AddToImplIncludes("WebCoreJSClientData.h");
- my $conditionalString = $codeGenerator->GenerateConditionalString($attribute);
- my $attributeName = $attribute->name;
- my $getter = GetAttributeGetterName($interface, $className, $attribute);
</del><ins>+ # Support PrivateIdentifier attributes on instances.
+ foreach my $attribute (@{$interface->attributes}) {
+ next unless $attribute->extendedAttributes->{PrivateIdentifier};
+ next unless AttributeShouldBeOnInstance($interface, $attribute);
</ins><span class="cx">
</span><del>- push(@implContent, "#if ${conditionalString}\n") if $conditionalString;
- push(@implContent, " putDirectCustomAccessor(vm, static_cast<JSVMClientData*>(vm.clientData)->builtinNames()." . $attributeName . "PrivateName(), CustomGetterSetter::create(vm, $getter, nullptr), attributesForStructure(DontDelete | ReadOnly));\n");
- push(@implContent, "#endif\n") if $conditionalString;
- }
</del><ins>+ AddToImplIncludes("WebCoreJSClientData.h");
+ my $conditionalString = $codeGenerator->GenerateConditionalString($attribute);
+ my $attributeName = $attribute->name;
+ my $getter = GetAttributeGetterName($interface, $className, $attribute);
</ins><span class="cx">
</span><del>- # Support for RuntimeEnabled operations on global objects.
- foreach my $function (@{$interface->functions}) {
- next unless $function->extendedAttributes->{EnabledAtRuntime};
- next if $function->{overloadIndex} && $function->{overloadIndex} > 1;
</del><ins>+ push(@implContent, "#if ${conditionalString}\n") if $conditionalString;
+ push(@implContent, " putDirectCustomAccessor(vm, static_cast<JSVMClientData*>(vm.clientData)->builtinNames()." . $attributeName . "PrivateName(), CustomGetterSetter::create(vm, $getter, nullptr), attributesForStructure(DontDelete | ReadOnly));\n");
+ push(@implContent, "#endif\n") if $conditionalString;
+ }
</ins><span class="cx">
</span><del>- AddToImplIncludes("RuntimeEnabledFeatures.h");
- my $conditionalString = $codeGenerator->GenerateConditionalString($function);
- push(@implContent, "#if ${conditionalString}\n") if $conditionalString;
- my $enable_function = GetRuntimeEnableFunctionName($function);
- my $functionName = $function->name;
- my $implementationFunction = GetFunctionName($interface, $className, $function);
- my $functionLength = GetFunctionLength($function);
- my $jsAttributes = ComputeFunctionSpecial($interface, $function);
- push(@implContent, " if (${enable_function}())\n");
</del><ins>+ # Support for RuntimeEnabled operations on instances.
+ foreach my $function (@{$interface->functions}) {
+ next unless $function->extendedAttributes->{EnabledAtRuntime};
+ next unless OperationShouldBeOnInstance($interface, $function);
+ next if $function->{overloadIndex} && $function->{overloadIndex} > 1;
</ins><span class="cx">
</span><del>- my $propertyName = "vm.propertyNames->$functionName";
- $propertyName = "static_cast<JSVMClientData*>(vm.clientData)->builtinNames()." . $functionName . "PrivateName()" if $function->extendedAttributes->{PrivateIdentifier};
- if (IsJSBuiltin($interface, $function)) {
- push(@implContent, " putDirectBuiltinFunction(vm, this, $propertyName, $implementationFunction(vm), attributesForStructure($jsAttributes));\n");
- } else {
- push(@implContent, " putDirectNativeFunction(vm, this, $propertyName, $functionLength, $implementationFunction, NoIntrinsic, attributesForStructure($jsAttributes));\n");
- }
- push(@implContent, "#endif\n") if $conditionalString;
</del><ins>+ AddToImplIncludes("RuntimeEnabledFeatures.h");
+ my $conditionalString = $codeGenerator->GenerateConditionalString($function);
+ push(@implContent, "#if ${conditionalString}\n") if $conditionalString;
+ my $enable_function = GetRuntimeEnableFunctionName($function);
+ my $functionName = $function->name;
+ my $implementationFunction = GetFunctionName($interface, $className, $function);
+ my $functionLength = GetFunctionLength($function);
+ my $jsAttributes = ComputeFunctionSpecial($interface, $function);
+ push(@implContent, " if (${enable_function}())\n");
+
+ my $propertyName = "vm.propertyNames->$functionName";
+ $propertyName = "static_cast<JSVMClientData*>(vm.clientData)->builtinNames()." . $functionName . "PrivateName()" if $function->extendedAttributes->{PrivateIdentifier};
+ if (IsJSBuiltin($interface, $function)) {
+ push(@implContent, " putDirectBuiltinFunction(vm, this, $propertyName, $implementationFunction(vm), attributesForStructure($jsAttributes));\n");
+ } else {
+ push(@implContent, " putDirectNativeFunction(vm, this, $propertyName, $functionLength, $implementationFunction, NoIntrinsic, attributesForStructure($jsAttributes));\n");
</ins><span class="cx"> }
</span><del>- push(@implContent, "}\n\n");
</del><ins>+ push(@implContent, "#endif\n") if $conditionalString;
</ins><span class="cx"> }
</span><ins>+ push(@implContent, "}\n\n");
</ins><span class="cx">
</span><span class="cx"> unless (ShouldUseGlobalObjectPrototype($interface)) {
</span><span class="cx"> push(@implContent, "JSObject* ${className}::createPrototype(VM& vm, JSGlobalObject* globalObject)\n");
</span><span class="lines">@@ -5994,7 +5996,7 @@
</span><span class="cx"> push(@$outputArray, " }\n");
</span><span class="cx">
</span><span class="cx"> if (PrototypeHasStaticPropertyTable($interface)) {
</span><del>- if (IsDOMGlobalObject($interface)) {
</del><ins>+ if (IsGlobalOrPrimaryGlobalInterface($interface)) {
</ins><span class="cx"> $structureFlags{"JSC::HasStaticPropertyTable"} = 1;
</span><span class="cx"> } else {
</span><span class="cx"> push(@$outputArray, "\n");
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptsIDLAttributestxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/IDLAttributes.txt (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/IDLAttributes.txt        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/IDLAttributes.txt        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -68,6 +68,7 @@
</span><span class="cx"> GenerateIsReachable=|Impl|ImplWebGLRenderingContext|ImplDocument|ImplElementRoot|ImplFrame|ImplOwnerNodeRoot|ImplScriptExecutionContext
</span><span class="cx"> GetterMayThrowException
</span><span class="cx"> GetterMayThrowLegacyException
</span><ins>+Global=*
</ins><span class="cx"> Immutable
</span><span class="cx"> ImplementedAs=*
</span><span class="cx"> ImplementationLacksVTable
</span><span class="lines">@@ -101,6 +102,7 @@
</span><span class="cx"> NotEnumerable
</span><span class="cx"> OverrideBuiltins
</span><span class="cx"> PassContext
</span><ins>+PrimaryGlobal
</ins><span class="cx"> PrivateIdentifier
</span><span class="cx"> PublicIdentifier
</span><span class="cx"> PutForwards=*
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSInterfaceNamecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSInterfaceName.cpp (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSInterfaceName.cpp        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSInterfaceName.cpp        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -99,6 +99,13 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+void JSInterfaceName::finishCreation(VM& vm)
+{
+ Base::finishCreation(vm);
+ ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSInterfaceName::createPrototype(VM& vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx"> return JSInterfaceNamePrototype::create(vm, globalObject, JSInterfaceNamePrototype::createStructure(vm, globalObject, globalObject->objectPrototype()));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSInterfaceNameh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSInterfaceName.h (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSInterfaceName.h        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSInterfaceName.h        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -55,12 +55,7 @@
</span><span class="cx"> protected:
</span><span class="cx"> JSInterfaceName(JSC::Structure*, JSDOMGlobalObject&, Ref<InterfaceName>&&);
</span><span class="cx">
</span><del>- void finishCreation(JSC::VM& vm)
- {
- Base::finishCreation(vm);
- ASSERT(inherits(info()));
- }
-
</del><ins>+ void finishCreation(JSC::VM&);
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> class JSInterfaceNameOwner : public JSC::WeakHandleOwner {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestActiveDOMObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.cpp (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.cpp        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.cpp        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -125,6 +125,13 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+void JSTestActiveDOMObject::finishCreation(VM& vm)
+{
+ Base::finishCreation(vm);
+ ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestActiveDOMObject::createPrototype(VM& vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx"> return JSTestActiveDOMObjectPrototype::create(vm, globalObject, JSTestActiveDOMObjectPrototype::createStructure(vm, globalObject, globalObject->objectPrototype()));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestActiveDOMObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.h (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.h        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestActiveDOMObject.h        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -54,12 +54,7 @@
</span><span class="cx"> protected:
</span><span class="cx"> JSTestActiveDOMObject(JSC::Structure*, JSDOMGlobalObject&, Ref<TestActiveDOMObject>&&);
</span><span class="cx">
</span><del>- void finishCreation(JSC::VM& vm)
- {
- Base::finishCreation(vm);
- ASSERT(inherits(info()));
- }
-
</del><ins>+ void finishCreation(JSC::VM&);
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> class JSTestActiveDOMObjectOwner : public JSC::WeakHandleOwner {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestCEReactionscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCEReactions.cpp (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCEReactions.cpp        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCEReactions.cpp        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -119,6 +119,13 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+void JSTestCEReactions::finishCreation(VM& vm)
+{
+ Base::finishCreation(vm);
+ ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestCEReactions::createPrototype(VM& vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx"> return JSTestCEReactionsPrototype::create(vm, globalObject, JSTestCEReactionsPrototype::createStructure(vm, globalObject, globalObject->objectPrototype()));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestCEReactionsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCEReactions.h (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCEReactions.h        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCEReactions.h        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -52,12 +52,7 @@
</span><span class="cx"> protected:
</span><span class="cx"> JSTestCEReactions(JSC::Structure*, JSDOMGlobalObject&, Ref<TestCEReactions>&&);
</span><span class="cx">
</span><del>- void finishCreation(JSC::VM& vm)
- {
- Base::finishCreation(vm);
- ASSERT(inherits(info()));
- }
-
</del><ins>+ void finishCreation(JSC::VM&);
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> class JSTestCEReactionsOwner : public JSC::WeakHandleOwner {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestCEReactionsStringifiercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -111,6 +111,13 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+void JSTestCEReactionsStringifier::finishCreation(VM& vm)
+{
+ Base::finishCreation(vm);
+ ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestCEReactionsStringifier::createPrototype(VM& vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx"> return JSTestCEReactionsStringifierPrototype::create(vm, globalObject, JSTestCEReactionsStringifierPrototype::createStructure(vm, globalObject, globalObject->objectPrototype()));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestCEReactionsStringifierh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCEReactionsStringifier.h (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCEReactionsStringifier.h        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCEReactionsStringifier.h        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -52,12 +52,7 @@
</span><span class="cx"> protected:
</span><span class="cx"> JSTestCEReactionsStringifier(JSC::Structure*, JSDOMGlobalObject&, Ref<TestCEReactionsStringifier>&&);
</span><span class="cx">
</span><del>- void finishCreation(JSC::VM& vm)
- {
- Base::finishCreation(vm);
- ASSERT(inherits(info()));
- }
-
</del><ins>+ void finishCreation(JSC::VM&);
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> class JSTestCEReactionsStringifierOwner : public JSC::WeakHandleOwner {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestClassWithJSBuiltinConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -105,6 +105,13 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+void JSTestClassWithJSBuiltinConstructor::finishCreation(VM& vm)
+{
+ Base::finishCreation(vm);
+ ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestClassWithJSBuiltinConstructor::createPrototype(VM& vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx"> return JSTestClassWithJSBuiltinConstructorPrototype::create(vm, globalObject, JSTestClassWithJSBuiltinConstructorPrototype::createStructure(vm, globalObject, globalObject->objectPrototype()));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestClassWithJSBuiltinConstructorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.h (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.h        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.h        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -54,12 +54,7 @@
</span><span class="cx"> protected:
</span><span class="cx"> JSTestClassWithJSBuiltinConstructor(JSC::Structure*, JSDOMGlobalObject&, Ref<TestClassWithJSBuiltinConstructor>&&);
</span><span class="cx">
</span><del>- void finishCreation(JSC::VM& vm)
- {
- Base::finishCreation(vm);
- ASSERT(inherits(info()));
- }
-
</del><ins>+ void finishCreation(JSC::VM&);
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> class JSTestClassWithJSBuiltinConstructorOwner : public JSC::WeakHandleOwner {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestCustomConstructorWithNoInterfaceObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -105,6 +105,13 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+void JSTestCustomConstructorWithNoInterfaceObject::finishCreation(VM& vm)
+{
+ Base::finishCreation(vm);
+ ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestCustomConstructorWithNoInterfaceObject::createPrototype(VM& vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx"> return JSTestCustomConstructorWithNoInterfaceObjectPrototype::create(vm, globalObject, JSTestCustomConstructorWithNoInterfaceObjectPrototype::createStructure(vm, globalObject, globalObject->objectPrototype()));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestCustomConstructorWithNoInterfaceObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.h (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.h        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.h        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -51,12 +51,7 @@
</span><span class="cx"> protected:
</span><span class="cx"> JSTestCustomConstructorWithNoInterfaceObject(JSC::Structure*, JSDOMGlobalObject&, Ref<TestCustomConstructorWithNoInterfaceObject>&&);
</span><span class="cx">
</span><del>- void finishCreation(JSC::VM& vm)
- {
- Base::finishCreation(vm);
- ASSERT(inherits(info()));
- }
-
</del><ins>+ void finishCreation(JSC::VM&);
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> class JSTestCustomConstructorWithNoInterfaceObjectOwner : public JSC::WeakHandleOwner {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestCustomNamedGettercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -108,6 +108,13 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+void JSTestCustomNamedGetter::finishCreation(VM& vm)
+{
+ Base::finishCreation(vm);
+ ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestCustomNamedGetter::createPrototype(VM& vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx"> return JSTestCustomNamedGetterPrototype::create(vm, globalObject, JSTestCustomNamedGetterPrototype::createStructure(vm, globalObject, globalObject->objectPrototype()));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestCustomNamedGetterh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.h (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.h        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCustomNamedGetter.h        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -56,12 +56,7 @@
</span><span class="cx"> protected:
</span><span class="cx"> JSTestCustomNamedGetter(JSC::Structure*, JSDOMGlobalObject&, Ref<TestCustomNamedGetter>&&);
</span><span class="cx">
</span><del>- void finishCreation(JSC::VM& vm)
- {
- Base::finishCreation(vm);
- ASSERT(inherits(info()));
- }
-
</del><ins>+ void finishCreation(JSC::VM&);
</ins><span class="cx"> private:
</span><span class="cx"> bool nameGetter(JSC::ExecState*, JSC::PropertyName, JSC::JSValue&);
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestDOMJITcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDOMJIT.cpp (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDOMJIT.cpp        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDOMJIT.cpp        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -228,6 +228,13 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+void JSTestDOMJIT::finishCreation(VM& vm)
+{
+ Base::finishCreation(vm);
+ ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestDOMJIT::createPrototype(VM& vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx"> return JSTestDOMJITPrototype::create(vm, globalObject, JSTestDOMJITPrototype::createStructure(vm, globalObject, JSNode::prototype(vm, globalObject)));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestDOMJITh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDOMJIT.h (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDOMJIT.h        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDOMJIT.h        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -57,12 +57,7 @@
</span><span class="cx"> protected:
</span><span class="cx"> JSTestDOMJIT(JSC::Structure*, JSDOMGlobalObject&, Ref<TestDOMJIT>&&);
</span><span class="cx">
</span><del>- void finishCreation(JSC::VM& vm)
- {
- Base::finishCreation(vm);
- ASSERT(inherits(info()));
- }
-
</del><ins>+ void finishCreation(JSC::VM&);
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestEventConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -176,6 +176,13 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+void JSTestEventConstructor::finishCreation(VM& vm)
+{
+ Base::finishCreation(vm);
+ ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestEventConstructor::createPrototype(VM& vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx"> return JSTestEventConstructorPrototype::create(vm, globalObject, JSTestEventConstructorPrototype::createStructure(vm, globalObject, JSEvent::prototype(vm, globalObject)));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestEventConstructorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.h (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.h        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.h        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -55,12 +55,7 @@
</span><span class="cx"> protected:
</span><span class="cx"> JSTestEventConstructor(JSC::Structure*, JSDOMGlobalObject&, Ref<TestEventConstructor>&&);
</span><span class="cx">
</span><del>- void finishCreation(JSC::VM& vm)
- {
- Base::finishCreation(vm);
- ASSERT(inherits(info()));
- }
-
</del><ins>+ void finishCreation(JSC::VM&);
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> JSC::JSValue toJS(JSC::ExecState*, JSDOMGlobalObject*, TestEventConstructor&);
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestEventTargetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -108,6 +108,13 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+void JSTestEventTarget::finishCreation(VM& vm)
+{
+ Base::finishCreation(vm);
+ ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestEventTarget::createPrototype(VM& vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx"> return JSTestEventTargetPrototype::create(vm, globalObject, JSTestEventTargetPrototype::createStructure(vm, globalObject, JSEventTarget::prototype(vm, globalObject)));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestEventTargeth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.h (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.h        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.h        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -63,12 +63,7 @@
</span><span class="cx"> protected:
</span><span class="cx"> JSTestEventTarget(JSC::Structure*, JSDOMGlobalObject&, Ref<TestEventTarget>&&);
</span><span class="cx">
</span><del>- void finishCreation(JSC::VM& vm)
- {
- Base::finishCreation(vm);
- ASSERT(inherits(info()));
- }
-
</del><ins>+ void finishCreation(JSC::VM&);
</ins><span class="cx"> private:
</span><span class="cx"> bool nameGetter(JSC::ExecState*, JSC::PropertyName, JSC::JSValue&);
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestExceptioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -115,6 +115,13 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+void JSTestException::finishCreation(VM& vm)
+{
+ Base::finishCreation(vm);
+ ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestException::createPrototype(VM& vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx"> return JSTestExceptionPrototype::create(vm, globalObject, JSTestExceptionPrototype::createStructure(vm, globalObject, globalObject->errorPrototype()));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestExceptionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.h (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.h        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.h        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -55,12 +55,7 @@
</span><span class="cx"> protected:
</span><span class="cx"> JSTestException(JSC::Structure*, JSDOMGlobalObject&, Ref<TestException>&&);
</span><span class="cx">
</span><del>- void finishCreation(JSC::VM& vm)
- {
- Base::finishCreation(vm);
- ASSERT(inherits(info()));
- }
-
</del><ins>+ void finishCreation(JSC::VM&);
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> class JSTestExceptionOwner : public JSC::WeakHandleOwner {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestGenerateIsReachablecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -99,6 +99,13 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+void JSTestGenerateIsReachable::finishCreation(VM& vm)
+{
+ Base::finishCreation(vm);
+ ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestGenerateIsReachable::createPrototype(VM& vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx"> return JSTestGenerateIsReachablePrototype::create(vm, globalObject, JSTestGenerateIsReachablePrototype::createStructure(vm, globalObject, globalObject->objectPrototype()));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestGenerateIsReachableh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.h (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.h        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.h        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -52,12 +52,7 @@
</span><span class="cx"> protected:
</span><span class="cx"> JSTestGenerateIsReachable(JSC::Structure*, JSDOMGlobalObject&, Ref<TestGenerateIsReachable>&&);
</span><span class="cx">
</span><del>- void finishCreation(JSC::VM& vm)
- {
- Base::finishCreation(vm);
- ASSERT(inherits(info()));
- }
-
</del><ins>+ void finishCreation(JSC::VM&);
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> class JSTestGenerateIsReachableOwner : public JSC::WeakHandleOwner {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestGlobalObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGlobalObject.cpp (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGlobalObject.cpp        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGlobalObject.cpp        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -141,9 +141,10 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void JSTestGlobalObject::finishCreation(VM& vm, JSProxy* proxy)
</del><ins>+void JSTestGlobalObject::finishCreation(VM& vm)
</ins><span class="cx"> {
</span><del>- Base::finishCreation(vm, proxy);
</del><ins>+ Base::finishCreation(vm);
+ ASSERT(inherits(info()));
</ins><span class="cx">
</span><span class="cx"> #if ENABLE(TEST_FEATURE)
</span><span class="cx"> if (RuntimeEnabledFeatures::sharedFeatures().testFeatureEnabled()) {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestGlobalObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGlobalObject.h (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGlobalObject.h        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGlobalObject.h        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -56,13 +56,7 @@
</span><span class="cx"> protected:
</span><span class="cx"> JSTestGlobalObject(JSC::Structure*, JSDOMGlobalObject&, Ref<TestGlobalObject>&&);
</span><span class="cx">
</span><del>- void finishCreation(JSC::VM& vm)
- {
- Base::finishCreation(vm);
- ASSERT(inherits(info()));
- }
-
- void finishCreation(JSC::VM&, JSC::JSProxy*);
</del><ins>+ void finishCreation(JSC::VM&);
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> class JSTestGlobalObjectOwner : public JSC::WeakHandleOwner {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestInterfacecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -381,6 +381,13 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+void JSTestInterface::finishCreation(VM& vm)
+{
+ Base::finishCreation(vm);
+ ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestInterface::createPrototype(VM& vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx"> return JSTestInterfacePrototype::create(vm, globalObject, JSTestInterfacePrototype::createStructure(vm, globalObject, globalObject->objectPrototype()));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestInterfaceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.h (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.h        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.h        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -79,12 +79,7 @@
</span><span class="cx"> protected:
</span><span class="cx"> JSTestInterface(JSC::Structure*, JSDOMGlobalObject&, Ref<TestInterface>&&);
</span><span class="cx">
</span><del>- void finishCreation(JSC::VM& vm)
- {
- Base::finishCreation(vm);
- ASSERT(inherits(info()));
- }
-
</del><ins>+ void finishCreation(JSC::VM&);
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> class JSTestInterfaceOwner : public JSC::WeakHandleOwner {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestInterfaceLeadingUnderscorecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -102,6 +102,13 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+void JSTestInterfaceLeadingUnderscore::finishCreation(VM& vm)
+{
+ Base::finishCreation(vm);
+ ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestInterfaceLeadingUnderscore::createPrototype(VM& vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx"> return JSTestInterfaceLeadingUnderscorePrototype::create(vm, globalObject, JSTestInterfaceLeadingUnderscorePrototype::createStructure(vm, globalObject, globalObject->objectPrototype()));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestInterfaceLeadingUnderscoreh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.h (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.h        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.h        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -52,12 +52,7 @@
</span><span class="cx"> protected:
</span><span class="cx"> JSTestInterfaceLeadingUnderscore(JSC::Structure*, JSDOMGlobalObject&, Ref<TestInterfaceLeadingUnderscore>&&);
</span><span class="cx">
</span><del>- void finishCreation(JSC::VM& vm)
- {
- Base::finishCreation(vm);
- ASSERT(inherits(info()));
- }
-
</del><ins>+ void finishCreation(JSC::VM&);
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> class JSTestInterfaceLeadingUnderscoreOwner : public JSC::WeakHandleOwner {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestIterablecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIterable.cpp (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIterable.cpp        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIterable.cpp        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -113,6 +113,13 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+void JSTestIterable::finishCreation(VM& vm)
+{
+ Base::finishCreation(vm);
+ ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestIterable::createPrototype(VM& vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx"> return JSTestIterablePrototype::create(vm, globalObject, JSTestIterablePrototype::createStructure(vm, globalObject, globalObject->objectPrototype()));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestIterableh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIterable.h (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIterable.h        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIterable.h        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -52,12 +52,7 @@
</span><span class="cx"> protected:
</span><span class="cx"> JSTestIterable(JSC::Structure*, JSDOMGlobalObject&, Ref<TestIterable>&&);
</span><span class="cx">
</span><del>- void finishCreation(JSC::VM& vm)
- {
- Base::finishCreation(vm);
- ASSERT(inherits(info()));
- }
-
</del><ins>+ void finishCreation(JSC::VM&);
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> class JSTestIterableOwner : public JSC::WeakHandleOwner {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestJSBuiltinConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -116,6 +116,13 @@
</span><span class="cx"> JSTestJSBuiltinConstructor::JSTestJSBuiltinConstructor(Structure* structure, JSDOMGlobalObject& globalObject)
</span><span class="cx"> : JSDOMObject(structure, globalObject) { }
</span><span class="cx">
</span><ins>+void JSTestJSBuiltinConstructor::finishCreation(VM& vm)
+{
+ Base::finishCreation(vm);
+ ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestJSBuiltinConstructor::createPrototype(VM& vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx"> return JSTestJSBuiltinConstructorPrototype::create(vm, globalObject, JSTestJSBuiltinConstructorPrototype::createStructure(vm, globalObject, globalObject->objectPrototype()));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestJSBuiltinConstructorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestJSBuiltinConstructor.h (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestJSBuiltinConstructor.h        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestJSBuiltinConstructor.h        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -59,6 +59,7 @@
</span><span class="cx"> protected:
</span><span class="cx"> JSTestJSBuiltinConstructor(JSC::Structure*, JSDOMGlobalObject&);
</span><span class="cx">
</span><ins>+ void finishCreation(JSC::VM&);
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestMediaQueryListListenercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -107,6 +107,13 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+void JSTestMediaQueryListListener::finishCreation(VM& vm)
+{
+ Base::finishCreation(vm);
+ ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestMediaQueryListListener::createPrototype(VM& vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx"> return JSTestMediaQueryListListenerPrototype::create(vm, globalObject, JSTestMediaQueryListListenerPrototype::createStructure(vm, globalObject, globalObject->objectPrototype()));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestMediaQueryListListenerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.h (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.h        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.h        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -52,12 +52,7 @@
</span><span class="cx"> protected:
</span><span class="cx"> JSTestMediaQueryListListener(JSC::Structure*, JSDOMGlobalObject&, Ref<TestMediaQueryListListener>&&);
</span><span class="cx">
</span><del>- void finishCreation(JSC::VM& vm)
- {
- Base::finishCreation(vm);
- ASSERT(inherits(info()));
- }
-
</del><ins>+ void finishCreation(JSC::VM&);
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> class JSTestMediaQueryListListenerOwner : public JSC::WeakHandleOwner {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.cpp (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.cpp        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.cpp        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -142,6 +142,13 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+void JSTestNamedConstructor::finishCreation(VM& vm)
+{
+ Base::finishCreation(vm);
+ ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestNamedConstructor::createPrototype(VM& vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx"> return JSTestNamedConstructorPrototype::create(vm, globalObject, JSTestNamedConstructorPrototype::createStructure(vm, globalObject, globalObject->objectPrototype()));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNamedConstructorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.h (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.h        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedConstructor.h        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -53,12 +53,7 @@
</span><span class="cx"> protected:
</span><span class="cx"> JSTestNamedConstructor(JSC::Structure*, JSDOMGlobalObject&, Ref<TestNamedConstructor>&&);
</span><span class="cx">
</span><del>- void finishCreation(JSC::VM& vm)
- {
- Base::finishCreation(vm);
- ASSERT(inherits(info()));
- }
-
</del><ins>+ void finishCreation(JSC::VM&);
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> class JSTestNamedConstructorOwner : public JSC::WeakHandleOwner {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -156,6 +156,13 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+void JSTestNode::finishCreation(VM& vm)
+{
+ Base::finishCreation(vm);
+ ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestNode::createPrototype(VM& vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx"> return JSTestNodePrototype::create(vm, globalObject, JSTestNodePrototype::createStructure(vm, globalObject, JSNode::prototype(vm, globalObject)));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNodeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.h (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.h        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.h        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -56,12 +56,7 @@
</span><span class="cx"> protected:
</span><span class="cx"> JSTestNode(JSC::Structure*, JSDOMGlobalObject&, Ref<TestNode>&&);
</span><span class="cx">
</span><del>- void finishCreation(JSC::VM& vm)
- {
- Base::finishCreation(vm);
- ASSERT(inherits(info()));
- }
-
</del><ins>+ void finishCreation(JSC::VM&);
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> WEBCORE_TESTSUPPORT_EXPORT JSC::JSValue toJS(JSC::ExecState*, JSDOMGlobalObject*, TestNode&);
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNondeterministiccpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNondeterministic.cpp (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNondeterministic.cpp        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNondeterministic.cpp        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -126,6 +126,13 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+void JSTestNondeterministic::finishCreation(VM& vm)
+{
+ Base::finishCreation(vm);
+ ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestNondeterministic::createPrototype(VM& vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx"> return JSTestNondeterministicPrototype::create(vm, globalObject, JSTestNondeterministicPrototype::createStructure(vm, globalObject, globalObject->objectPrototype()));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestNondeterministich"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNondeterministic.h (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNondeterministic.h        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNondeterministic.h        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -52,12 +52,7 @@
</span><span class="cx"> protected:
</span><span class="cx"> JSTestNondeterministic(JSC::Structure*, JSDOMGlobalObject&, Ref<TestNondeterministic>&&);
</span><span class="cx">
</span><del>- void finishCreation(JSC::VM& vm)
- {
- Base::finishCreation(vm);
- ASSERT(inherits(info()));
- }
-
</del><ins>+ void finishCreation(JSC::VM&);
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> class JSTestNondeterministicOwner : public JSC::WeakHandleOwner {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestObjcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -1761,6 +1761,13 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+void JSTestObj::finishCreation(VM& vm)
+{
+ Base::finishCreation(vm);
+ ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestObj::createPrototype(VM& vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx"> return JSTestObjPrototype::create(vm, globalObject, JSTestObjPrototype::createStructure(vm, globalObject, globalObject->objectPrototype()));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestObjh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.h (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.h        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.h        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -72,12 +72,7 @@
</span><span class="cx"> protected:
</span><span class="cx"> JSTestObj(JSC::Structure*, JSDOMGlobalObject&, Ref<TestObj>&&);
</span><span class="cx">
</span><del>- void finishCreation(JSC::VM& vm)
- {
- Base::finishCreation(vm);
- ASSERT(inherits(info()));
- }
-
</del><ins>+ void finishCreation(JSC::VM&);
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> class JSTestObjOwner : public JSC::WeakHandleOwner {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestOverloadedConstructorscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -200,6 +200,13 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+void JSTestOverloadedConstructors::finishCreation(VM& vm)
+{
+ Base::finishCreation(vm);
+ ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestOverloadedConstructors::createPrototype(VM& vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx"> return JSTestOverloadedConstructorsPrototype::create(vm, globalObject, JSTestOverloadedConstructorsPrototype::createStructure(vm, globalObject, globalObject->objectPrototype()));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestOverloadedConstructorsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.h (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.h        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.h        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -52,12 +52,7 @@
</span><span class="cx"> protected:
</span><span class="cx"> JSTestOverloadedConstructors(JSC::Structure*, JSDOMGlobalObject&, Ref<TestOverloadedConstructors>&&);
</span><span class="cx">
</span><del>- void finishCreation(JSC::VM& vm)
- {
- Base::finishCreation(vm);
- ASSERT(inherits(info()));
- }
-
</del><ins>+ void finishCreation(JSC::VM&);
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> class JSTestOverloadedConstructorsOwner : public JSC::WeakHandleOwner {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestOverloadedConstructorsWithSequencecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -151,6 +151,13 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+void JSTestOverloadedConstructorsWithSequence::finishCreation(VM& vm)
+{
+ Base::finishCreation(vm);
+ ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestOverloadedConstructorsWithSequence::createPrototype(VM& vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx"> return JSTestOverloadedConstructorsWithSequencePrototype::create(vm, globalObject, JSTestOverloadedConstructorsWithSequencePrototype::createStructure(vm, globalObject, globalObject->objectPrototype()));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestOverloadedConstructorsWithSequenceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.h (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.h        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.h        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -52,12 +52,7 @@
</span><span class="cx"> protected:
</span><span class="cx"> JSTestOverloadedConstructorsWithSequence(JSC::Structure*, JSDOMGlobalObject&, Ref<TestOverloadedConstructorsWithSequence>&&);
</span><span class="cx">
</span><del>- void finishCreation(JSC::VM& vm)
- {
- Base::finishCreation(vm);
- ASSERT(inherits(info()));
- }
-
</del><ins>+ void finishCreation(JSC::VM&);
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> class JSTestOverloadedConstructorsWithSequenceOwner : public JSC::WeakHandleOwner {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestOverrideBuiltinscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -109,6 +109,13 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+void JSTestOverrideBuiltins::finishCreation(VM& vm)
+{
+ Base::finishCreation(vm);
+ ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestOverrideBuiltins::createPrototype(VM& vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx"> return JSTestOverrideBuiltinsPrototype::create(vm, globalObject, JSTestOverrideBuiltinsPrototype::createStructure(vm, globalObject, globalObject->objectPrototype()));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestOverrideBuiltinsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverrideBuiltins.h (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverrideBuiltins.h        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverrideBuiltins.h        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -57,12 +57,7 @@
</span><span class="cx"> protected:
</span><span class="cx"> JSTestOverrideBuiltins(JSC::Structure*, JSDOMGlobalObject&, Ref<TestOverrideBuiltins>&&);
</span><span class="cx">
</span><del>- void finishCreation(JSC::VM& vm)
- {
- Base::finishCreation(vm);
- ASSERT(inherits(info()));
- }
-
</del><ins>+ void finishCreation(JSC::VM&);
</ins><span class="cx"> private:
</span><span class="cx"> bool nameGetter(JSC::ExecState*, JSC::PropertyName, JSC::JSValue&);
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestSerializationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerialization.cpp (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerialization.cpp        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerialization.cpp        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -122,6 +122,13 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+void JSTestSerialization::finishCreation(VM& vm)
+{
+ Base::finishCreation(vm);
+ ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestSerialization::createPrototype(VM& vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx"> return JSTestSerializationPrototype::create(vm, globalObject, JSTestSerializationPrototype::createStructure(vm, globalObject, globalObject->objectPrototype()));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestSerializationh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerialization.h (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerialization.h        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerialization.h        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -52,12 +52,7 @@
</span><span class="cx"> protected:
</span><span class="cx"> JSTestSerialization(JSC::Structure*, JSDOMGlobalObject&, Ref<TestSerialization>&&);
</span><span class="cx">
</span><del>- void finishCreation(JSC::VM& vm)
- {
- Base::finishCreation(vm);
- ASSERT(inherits(info()));
- }
-
</del><ins>+ void finishCreation(JSC::VM&);
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> class JSTestSerializationOwner : public JSC::WeakHandleOwner {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestSerializedScriptValueInterfacecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -118,6 +118,13 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+void JSTestSerializedScriptValueInterface::finishCreation(VM& vm)
+{
+ Base::finishCreation(vm);
+ ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestSerializedScriptValueInterface::createPrototype(VM& vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx"> return JSTestSerializedScriptValueInterfacePrototype::create(vm, globalObject, JSTestSerializedScriptValueInterfacePrototype::createStructure(vm, globalObject, globalObject->objectPrototype()));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestSerializedScriptValueInterfaceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -58,12 +58,7 @@
</span><span class="cx"> protected:
</span><span class="cx"> JSTestSerializedScriptValueInterface(JSC::Structure*, JSDOMGlobalObject&, Ref<TestSerializedScriptValueInterface>&&);
</span><span class="cx">
</span><del>- void finishCreation(JSC::VM& vm)
- {
- Base::finishCreation(vm);
- ASSERT(inherits(info()));
- }
-
</del><ins>+ void finishCreation(JSC::VM&);
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> class JSTestSerializedScriptValueInterfaceOwner : public JSC::WeakHandleOwner {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestTypedefscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -203,6 +203,13 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+void JSTestTypedefs::finishCreation(VM& vm)
+{
+ Base::finishCreation(vm);
+ ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestTypedefs::createPrototype(VM& vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx"> return JSTestTypedefsPrototype::create(vm, globalObject, JSTestTypedefsPrototype::createStructure(vm, globalObject, globalObject->objectPrototype()));
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestTypedefsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.h (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.h        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.h        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -54,12 +54,7 @@
</span><span class="cx"> protected:
</span><span class="cx"> JSTestTypedefs(JSC::Structure*, JSDOMGlobalObject&, Ref<TestTypedefs>&&);
</span><span class="cx">
</span><del>- void finishCreation(JSC::VM& vm)
- {
- Base::finishCreation(vm);
- ASSERT(inherits(info()));
- }
-
</del><ins>+ void finishCreation(JSC::VM&);
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> class JSTestTypedefsOwner : public JSC::WeakHandleOwner {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestTestGlobalObjectidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/TestGlobalObject.idl (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/TestGlobalObject.idl        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/bindings/scripts/test/TestGlobalObject.idl        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -24,7 +24,9 @@
</span><span class="cx"> */
</span><span class="cx">
</span><span class="cx"> // This interface is recognized as a global object by the bindings generator.
</span><del>-interface TestGlobalObject {
</del><ins>+[
+ Global,
+] interface TestGlobalObject {
</ins><span class="cx"> attribute DOMString regularAttribute;
</span><span class="cx"> [PrivateIdentifier, PublicIdentifier] attribute DOMString publicAndPrivateAttribute;
</span><span class="cx"> [Conditional=TEST_FEATURE, PrivateIdentifier, PublicIdentifier] attribute DOMString publicAndPrivateConditionalAttribute;
</span></span></pre></div>
<a id="trunkSourceWebCorepageDOMWindowidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/DOMWindow.idl (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/DOMWindow.idl        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/page/DOMWindow.idl        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -40,6 +40,7 @@
</span><span class="cx"> JSCustomMarkFunction,
</span><span class="cx"> JSCustomToNativeObject,
</span><span class="cx"> JSLegacyParent=JSDOMWindowBase,
</span><ins>+ PrimaryGlobal,
</ins><span class="cx"> ] interface DOMWindow : EventTarget {
</span><span class="cx"> [Replaceable] readonly attribute Screen screen;
</span><span class="cx"> readonly attribute History history;
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersDedicatedWorkerGlobalScopeidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/DedicatedWorkerGlobalScope.idl (208612 => 208613)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/DedicatedWorkerGlobalScope.idl        2016-11-11 22:52:40 UTC (rev 208612)
+++ trunk/Source/WebCore/workers/DedicatedWorkerGlobalScope.idl        2016-11-11 22:53:24 UTC (rev 208613)
</span><span class="lines">@@ -31,6 +31,7 @@
</span><span class="cx"> [
</span><span class="cx"> CustomProxyToJSObject,
</span><span class="cx"> Exposed=DedicatedWorker,
</span><ins>+ Global=(Worker,DedicatedWorker),
</ins><span class="cx"> JSGenerateToNativeObject,
</span><span class="cx"> ] interface DedicatedWorkerGlobalScope : WorkerGlobalScope {
</span><span class="cx"> [Custom, MayThrowException] void postMessage(any message, optional Array messagePorts);
</span></span></pre>
</div>
</div>
</body>
</html>