<!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  &lt;cdumez@apple.com&gt;
+
+        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  &lt;antti@apple.com&gt;
</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(&quot;eval self.__proto__.__proto__ === WorkerGlobalScope.prototype&quot;);
</span><ins>+worker.postMessage(&quot;eval self.__proto__.__proto__.__proto__ === EventTarget.prototype&quot;);
+worker.postMessage(&quot;eval self.__proto__.__proto__.__proto__.__proto__ === {}.__proto__&quot;);
</ins><span class="cx"> worker.postMessage(&quot;eval self.__proto__.__proto__.hasOwnProperty('navigator') === true&quot;);
</span><span class="cx"> worker.postMessage(&quot;eval self.__proto__.__proto__.hasOwnProperty('self') === true&quot;);
</span><span class="cx"> worker.postMessage(&quot;eval self.__proto__.__proto__.hasOwnProperty('location') === true&quot;);
</span><span class="cx"> worker.postMessage(&quot;eval self.__proto__.__proto__.hasOwnProperty('close') === true&quot;);
</span><span class="cx"> worker.postMessage(&quot;eval self.__proto__.__proto__.hasOwnProperty('importScripts') === true&quot;);
</span><ins>+worker.postMessage(&quot;eval self.__proto__.__proto__.hasOwnProperty('indexedDB') === true&quot;);
</ins><span class="cx"> worker.postMessage(&quot;eval self.hasOwnProperty('navigator') === false&quot;);
</span><span class="cx"> worker.postMessage(&quot;eval self.hasOwnProperty('location') === false&quot;);
</span><span class="cx"> worker.postMessage(&quot;eval self.hasOwnProperty('close') === false&quot;);
</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(&quot;eval self.hasOwnProperty('DedicatedWorkerGlobalScope')&quot;);
</span><span class="cx"> worker.postMessage(&quot;eval self.hasOwnProperty('WorkerGlobalScope')&quot;);
</span><span class="cx"> worker.postMessage(&quot;eval self.hasOwnProperty('postMessage')&quot;);
</span><ins>+worker.postMessage(&quot;eval self.hasOwnProperty('IDBDatabase')&quot;);
</ins><span class="cx"> worker.postMessage(&quot;eval DONE&quot;);
</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  &lt;cdumez@apple.com&gt;
+
+        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  &lt;antti@apple.com&gt;
</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-&gt;extendedAttributes-&gt;{Global} || $interface-&gt;extendedAttributes-&gt;{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 &lt;rdar://problem/24466097&gt; is fixed.
</span><span class="cx">     return 1 if $interface-&gt;isException;
</span><span class="cx"> 
</span><del>-    # FIXME: Add support for [PrimaryGlobal] / [Global].
-    return 1 if IsDOMGlobalObject($interface) &amp;&amp; $interface-&gt;type-&gt;name ne &quot;WorkerGlobalScope&quot;;
</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-&gt;extendedAttributes-&gt;{EnabledAtRuntime} &amp;&amp; !IsDOMGlobalObject($interface);
-
</del><span class="cx">     return 1 if InterfaceRequiresAttributesOnInstance($interface);
</span><span class="cx">     return 1 if $codeGenerator-&gt;IsConstructorType($attribute-&gt;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) &amp;&amp; $interface-&gt;type-&gt;name ne &quot;WorkerGlobalScope&quot;;
</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-&gt;extendedAttributes-&gt;{EnabledAtRuntime};
</span><span class="lines">@@ -1674,19 +1676,14 @@
</span><span class="cx">         push(@headerContent, &quot;    $className(JSC::Structure*, JSDOMGlobalObject&amp;);\n\n&quot;);
</span><span class="cx">      } else {
</span><span class="cx">         push(@headerContent, &quot;    $className(JSC::Structure*, JSDOMGlobalObject&amp;, Ref&lt;$implType&gt;&amp;&amp;);\n\n&quot;);
</span><del>-        push(@headerContent, &quot;    void finishCreation(JSC::VM&amp; vm)\n&quot;);
-        push(@headerContent, &quot;    {\n&quot;);
-        push(@headerContent, &quot;        Base::finishCreation(vm);\n&quot;);
-        push(@headerContent, &quot;        ASSERT(inherits(info()));\n&quot;);
-        push(@headerContent, &quot;    }\n\n&quot;);
</del><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (IsDOMGlobalObject($interface)) {
-        if ($interfaceName eq &quot;DOMWindow&quot;) {
-            push(@headerContent, &quot;    void finishCreation(JSC::VM&amp;, JSDOMWindowShell*);\n&quot;);
-        } else {
-            push(@headerContent, &quot;    void finishCreation(JSC::VM&amp;, JSC::JSProxy*);\n&quot;);
-        }
</del><ins>+    if ($interfaceName eq &quot;DOMWindow&quot;) {
+        push(@headerContent, &quot;    void finishCreation(JSC::VM&amp;, JSDOMWindowShell*);\n&quot;);
+    } elsif ($codeGenerator-&gt;InheritsInterface($interface, &quot;WorkerGlobalScope&quot;)) {
+        push(@headerContent, &quot;    void finishCreation(JSC::VM&amp;, JSC::JSProxy*);\n&quot;);
+    } else {
+        push(@headerContent, &quot;    void finishCreation(JSC::VM&amp;);\n&quot;);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     push(@headerContent, &quot;    void indexSetter(JSC::ExecState*, unsigned index, JSC::JSValue);\n&quot;) if $interface-&gt;extendedAttributes-&gt;{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) &amp;&amp; $attribute-&gt;extendedAttributes-&gt;{EnabledAtRuntime}) {
</del><ins>+        if ($isInstance &amp;&amp; $attribute-&gt;extendedAttributes-&gt;{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-&gt;{$name} = $conditional if $conditional;
</span><span class="cx"> 
</span><span class="cx">         if ($attribute-&gt;extendedAttributes-&gt;{EnabledAtRuntime}) {
</span><del>-            die &quot;We currently do not support [EnabledAtRuntime] attributes on the instance (except for global objects).&quot; 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-&gt;name eq &quot;[Symbol.Iterator]&quot;;
</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) &amp;&amp; $function-&gt;extendedAttributes-&gt;{EnabledAtRuntime}) {
</del><ins>+        if ($isInstance &amp;&amp; $function-&gt;extendedAttributes-&gt;{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-&gt;{$name} = $conditional if $conditional;
</span><span class="cx"> 
</span><span class="cx">         if ($function-&gt;extendedAttributes-&gt;{EnabledAtRuntime}) {
</span><del>-            die &quot;We currently do not support [EnabledAtRuntime] operations on the instance (except for global objects).&quot; 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, &quot;const ClassInfo ${className}Prototype::s_info = { \&quot;${visibleInterfaceName}Prototype\&quot;, &amp;Base::s_info, &amp;${className}PrototypeTable, CREATE_METHOD_TABLE(${className}Prototype) };\n\n&quot;);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (PrototypeHasStaticPropertyTable($interface) &amp;&amp; !IsDOMGlobalObject($interface)) {
</del><ins>+    if (PrototypeHasStaticPropertyTable($interface) &amp;&amp; !IsGlobalOrPrimaryGlobalInterface($interface)) {
</ins><span class="cx">         push(@implContent, &quot;void ${className}Prototype::finishCreation(VM&amp; vm)\n&quot;);
</span><span class="cx">         push(@implContent, &quot;{\n&quot;);
</span><span class="cx">         push(@implContent, &quot;    Base::finishCreation(vm);\n&quot;);
</span><span class="lines">@@ -3002,75 +2997,82 @@
</span><span class="cx">         push(@implContent, &quot;}\n\n&quot;);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (IsDOMGlobalObject($interface)) {
-        if ($interfaceName eq &quot;DOMWindow&quot;) {
-            push(@implContent, &quot;void ${className}::finishCreation(VM&amp; vm, JSDOMWindowShell* shell)\n&quot;);
-            push(@implContent, &quot;{\n&quot;);
-            push(@implContent, &quot;    Base::finishCreation(vm, shell);\n\n&quot;);
-        } else {
-            push(@implContent, &quot;void ${className}::finishCreation(VM&amp; vm, JSProxy* proxy)\n&quot;);
-            push(@implContent, &quot;{\n&quot;);
-            push(@implContent, &quot;    Base::finishCreation(vm, proxy);\n\n&quot;);
-        }
-        # Support for RuntimeEnabled attributes on global objects.
-        foreach my $attribute (@{$interface-&gt;attributes}) {
-            next unless $attribute-&gt;extendedAttributes-&gt;{EnabledAtRuntime};
</del><ins>+    if ($interfaceName eq &quot;DOMWindow&quot;) {
+        push(@implContent, &quot;void ${className}::finishCreation(VM&amp; vm, JSDOMWindowShell* shell)\n&quot;);
+        push(@implContent, &quot;{\n&quot;);
+        push(@implContent, &quot;    Base::finishCreation(vm, shell);\n\n&quot;);
+    } elsif ($codeGenerator-&gt;InheritsInterface($interface, &quot;WorkerGlobalScope&quot;)) {
+        push(@implContent, &quot;void ${className}::finishCreation(VM&amp; vm, JSProxy* proxy)\n&quot;);
+        push(@implContent, &quot;{\n&quot;);
+        push(@implContent, &quot;    Base::finishCreation(vm, proxy);\n\n&quot;);
+    } else {
+        push(@implContent, &quot;void ${className}::finishCreation(VM&amp; vm)\n&quot;);
+        push(@implContent, &quot;{\n&quot;);
+        push(@implContent, &quot;    Base::finishCreation(vm);\n&quot;);
+        push(@implContent, &quot;    ASSERT(inherits(info()));\n\n&quot;);
+    }
</ins><span class="cx"> 
</span><del>-            AddToImplIncludes(&quot;RuntimeEnabledFeatures.h&quot;);
-            my $conditionalString = $codeGenerator-&gt;GenerateConditionalString($attribute);
-            push(@implContent, &quot;#if ${conditionalString}\n&quot;) if $conditionalString;
-            my $enable_function = GetRuntimeEnableFunctionName($attribute);
-            my $attributeName = $attribute-&gt;name;
-            push(@implContent, &quot;    if (${enable_function}()) {\n&quot;);
-            my $getter = GetAttributeGetterName($interface, $className, $attribute);
-            my $setter = IsReadonly($attribute) ? &quot;nullptr&quot; : GetAttributeSetterName($interface, $className, $attribute);
-            push(@implContent, &quot;        auto* customGetterSetter = CustomGetterSetter::create(vm, $getter, $setter);\n&quot;);
-            my $jscAttributes = GetJSCAttributesForAttribute($interface, $attribute);
-            push(@implContent, &quot;        putDirectCustomAccessor(vm, vm.propertyNames-&gt;$attributeName, customGetterSetter, attributesForStructure($jscAttributes));\n&quot;);
-            push(@implContent, &quot;    }\n&quot;);
-            push(@implContent, &quot;#endif\n&quot;) if $conditionalString;
-        }
</del><ins>+    # Support for RuntimeEnabled attributes on instances.
+    foreach my $attribute (@{$interface-&gt;attributes}) {
+        next unless $attribute-&gt;extendedAttributes-&gt;{EnabledAtRuntime};
+        next unless AttributeShouldBeOnInstance($interface, $attribute);
</ins><span class="cx"> 
</span><del>-        # Support PrivateIdentifier attributes on global objects
-        foreach my $attribute (@{$interface-&gt;attributes}) {
-            next unless $attribute-&gt;extendedAttributes-&gt;{PrivateIdentifier};
</del><ins>+        AddToImplIncludes(&quot;RuntimeEnabledFeatures.h&quot;);
+        my $conditionalString = $codeGenerator-&gt;GenerateConditionalString($attribute);
+        push(@implContent, &quot;#if ${conditionalString}\n&quot;) if $conditionalString;
+        my $enable_function = GetRuntimeEnableFunctionName($attribute);
+        my $attributeName = $attribute-&gt;name;
+        push(@implContent, &quot;    if (${enable_function}()) {\n&quot;);
+        my $getter = GetAttributeGetterName($interface, $className, $attribute);
+        my $setter = IsReadonly($attribute) ? &quot;nullptr&quot; : GetAttributeSetterName($interface, $className, $attribute);
+        push(@implContent, &quot;        auto* customGetterSetter = CustomGetterSetter::create(vm, $getter, $setter);\n&quot;);
+        my $jscAttributes = GetJSCAttributesForAttribute($interface, $attribute);
+        push(@implContent, &quot;        putDirectCustomAccessor(vm, vm.propertyNames-&gt;$attributeName, customGetterSetter, attributesForStructure($jscAttributes));\n&quot;);
+        push(@implContent, &quot;    }\n&quot;);
+        push(@implContent, &quot;#endif\n&quot;) if $conditionalString;
+    }
</ins><span class="cx"> 
</span><del>-            AddToImplIncludes(&quot;WebCoreJSClientData.h&quot;);
-            my $conditionalString = $codeGenerator-&gt;GenerateConditionalString($attribute);
-            my $attributeName = $attribute-&gt;name;
-            my $getter = GetAttributeGetterName($interface, $className, $attribute);
</del><ins>+    # Support PrivateIdentifier attributes on instances.
+    foreach my $attribute (@{$interface-&gt;attributes}) {
+        next unless $attribute-&gt;extendedAttributes-&gt;{PrivateIdentifier};
+        next unless AttributeShouldBeOnInstance($interface, $attribute);
</ins><span class="cx"> 
</span><del>-            push(@implContent, &quot;#if ${conditionalString}\n&quot;) if $conditionalString;
-            push(@implContent, &quot;    putDirectCustomAccessor(vm, static_cast&lt;JSVMClientData*&gt;(vm.clientData)-&gt;builtinNames().&quot; . $attributeName . &quot;PrivateName(), CustomGetterSetter::create(vm, $getter, nullptr), attributesForStructure(DontDelete | ReadOnly));\n&quot;);
-            push(@implContent, &quot;#endif\n&quot;) if $conditionalString;
-        }
</del><ins>+        AddToImplIncludes(&quot;WebCoreJSClientData.h&quot;);
+        my $conditionalString = $codeGenerator-&gt;GenerateConditionalString($attribute);
+        my $attributeName = $attribute-&gt;name;
+        my $getter = GetAttributeGetterName($interface, $className, $attribute);
</ins><span class="cx"> 
</span><del>-        # Support for RuntimeEnabled operations on global objects.
-        foreach my $function (@{$interface-&gt;functions}) {
-            next unless $function-&gt;extendedAttributes-&gt;{EnabledAtRuntime};
-            next if $function-&gt;{overloadIndex} &amp;&amp; $function-&gt;{overloadIndex} &gt; 1;
</del><ins>+        push(@implContent, &quot;#if ${conditionalString}\n&quot;) if $conditionalString;
+        push(@implContent, &quot;    putDirectCustomAccessor(vm, static_cast&lt;JSVMClientData*&gt;(vm.clientData)-&gt;builtinNames().&quot; . $attributeName . &quot;PrivateName(), CustomGetterSetter::create(vm, $getter, nullptr), attributesForStructure(DontDelete | ReadOnly));\n&quot;);
+        push(@implContent, &quot;#endif\n&quot;) if $conditionalString;
+    }
</ins><span class="cx"> 
</span><del>-            AddToImplIncludes(&quot;RuntimeEnabledFeatures.h&quot;);
-            my $conditionalString = $codeGenerator-&gt;GenerateConditionalString($function);
-            push(@implContent, &quot;#if ${conditionalString}\n&quot;) if $conditionalString;
-            my $enable_function = GetRuntimeEnableFunctionName($function);
-            my $functionName = $function-&gt;name;
-            my $implementationFunction = GetFunctionName($interface, $className, $function);
-            my $functionLength = GetFunctionLength($function);
-            my $jsAttributes = ComputeFunctionSpecial($interface, $function);
-            push(@implContent, &quot;    if (${enable_function}())\n&quot;);
</del><ins>+    # Support for RuntimeEnabled operations on instances.
+    foreach my $function (@{$interface-&gt;functions}) {
+        next unless $function-&gt;extendedAttributes-&gt;{EnabledAtRuntime};
+        next unless OperationShouldBeOnInstance($interface, $function);
+        next if $function-&gt;{overloadIndex} &amp;&amp; $function-&gt;{overloadIndex} &gt; 1;
</ins><span class="cx"> 
</span><del>-            my $propertyName = &quot;vm.propertyNames-&gt;$functionName&quot;;
-            $propertyName = &quot;static_cast&lt;JSVMClientData*&gt;(vm.clientData)-&gt;builtinNames().&quot; . $functionName . &quot;PrivateName()&quot; if $function-&gt;extendedAttributes-&gt;{PrivateIdentifier};
-            if (IsJSBuiltin($interface, $function)) {
-                push(@implContent, &quot;        putDirectBuiltinFunction(vm, this, $propertyName, $implementationFunction(vm), attributesForStructure($jsAttributes));\n&quot;);
-            } else {
-                push(@implContent, &quot;        putDirectNativeFunction(vm, this, $propertyName, $functionLength, $implementationFunction, NoIntrinsic, attributesForStructure($jsAttributes));\n&quot;);
-            }
-            push(@implContent, &quot;#endif\n&quot;) if $conditionalString;
</del><ins>+        AddToImplIncludes(&quot;RuntimeEnabledFeatures.h&quot;);
+        my $conditionalString = $codeGenerator-&gt;GenerateConditionalString($function);
+        push(@implContent, &quot;#if ${conditionalString}\n&quot;) if $conditionalString;
+        my $enable_function = GetRuntimeEnableFunctionName($function);
+        my $functionName = $function-&gt;name;
+        my $implementationFunction = GetFunctionName($interface, $className, $function);
+        my $functionLength = GetFunctionLength($function);
+        my $jsAttributes = ComputeFunctionSpecial($interface, $function);
+        push(@implContent, &quot;    if (${enable_function}())\n&quot;);
+
+        my $propertyName = &quot;vm.propertyNames-&gt;$functionName&quot;;
+        $propertyName = &quot;static_cast&lt;JSVMClientData*&gt;(vm.clientData)-&gt;builtinNames().&quot; . $functionName . &quot;PrivateName()&quot; if $function-&gt;extendedAttributes-&gt;{PrivateIdentifier};
+        if (IsJSBuiltin($interface, $function)) {
+            push(@implContent, &quot;        putDirectBuiltinFunction(vm, this, $propertyName, $implementationFunction(vm), attributesForStructure($jsAttributes));\n&quot;);
+        } else {
+            push(@implContent, &quot;        putDirectNativeFunction(vm, this, $propertyName, $functionLength, $implementationFunction, NoIntrinsic, attributesForStructure($jsAttributes));\n&quot;);
</ins><span class="cx">         }
</span><del>-        push(@implContent, &quot;}\n\n&quot;);
</del><ins>+        push(@implContent, &quot;#endif\n&quot;) if $conditionalString;
</ins><span class="cx">     }
</span><ins>+    push(@implContent, &quot;}\n\n&quot;);
</ins><span class="cx"> 
</span><span class="cx">     unless (ShouldUseGlobalObjectPrototype($interface)) {
</span><span class="cx">         push(@implContent, &quot;JSObject* ${className}::createPrototype(VM&amp; vm, JSGlobalObject* globalObject)\n&quot;);
</span><span class="lines">@@ -5994,7 +5996,7 @@
</span><span class="cx">     push(@$outputArray, &quot;    }\n&quot;);
</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{&quot;JSC::HasStaticPropertyTable&quot;} = 1;
</span><span class="cx">         } else {
</span><span class="cx">             push(@$outputArray, &quot;\n&quot;);
</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&amp; vm)
+{
+    Base::finishCreation(vm);
+    ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSInterfaceName::createPrototype(VM&amp; vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx">     return JSInterfaceNamePrototype::create(vm, globalObject, JSInterfaceNamePrototype::createStructure(vm, globalObject, globalObject-&gt;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&amp;, Ref&lt;InterfaceName&gt;&amp;&amp;);
</span><span class="cx"> 
</span><del>-    void finishCreation(JSC::VM&amp; vm)
-    {
-        Base::finishCreation(vm);
-        ASSERT(inherits(info()));
-    }
-
</del><ins>+    void finishCreation(JSC::VM&amp;);
</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&amp; vm)
+{
+    Base::finishCreation(vm);
+    ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestActiveDOMObject::createPrototype(VM&amp; vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx">     return JSTestActiveDOMObjectPrototype::create(vm, globalObject, JSTestActiveDOMObjectPrototype::createStructure(vm, globalObject, globalObject-&gt;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&amp;, Ref&lt;TestActiveDOMObject&gt;&amp;&amp;);
</span><span class="cx"> 
</span><del>-    void finishCreation(JSC::VM&amp; vm)
-    {
-        Base::finishCreation(vm);
-        ASSERT(inherits(info()));
-    }
-
</del><ins>+    void finishCreation(JSC::VM&amp;);
</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&amp; vm)
+{
+    Base::finishCreation(vm);
+    ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestCEReactions::createPrototype(VM&amp; vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx">     return JSTestCEReactionsPrototype::create(vm, globalObject, JSTestCEReactionsPrototype::createStructure(vm, globalObject, globalObject-&gt;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&amp;, Ref&lt;TestCEReactions&gt;&amp;&amp;);
</span><span class="cx"> 
</span><del>-    void finishCreation(JSC::VM&amp; vm)
-    {
-        Base::finishCreation(vm);
-        ASSERT(inherits(info()));
-    }
-
</del><ins>+    void finishCreation(JSC::VM&amp;);
</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&amp; vm)
+{
+    Base::finishCreation(vm);
+    ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestCEReactionsStringifier::createPrototype(VM&amp; vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx">     return JSTestCEReactionsStringifierPrototype::create(vm, globalObject, JSTestCEReactionsStringifierPrototype::createStructure(vm, globalObject, globalObject-&gt;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&amp;, Ref&lt;TestCEReactionsStringifier&gt;&amp;&amp;);
</span><span class="cx"> 
</span><del>-    void finishCreation(JSC::VM&amp; vm)
-    {
-        Base::finishCreation(vm);
-        ASSERT(inherits(info()));
-    }
-
</del><ins>+    void finishCreation(JSC::VM&amp;);
</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&amp; vm)
+{
+    Base::finishCreation(vm);
+    ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestClassWithJSBuiltinConstructor::createPrototype(VM&amp; vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx">     return JSTestClassWithJSBuiltinConstructorPrototype::create(vm, globalObject, JSTestClassWithJSBuiltinConstructorPrototype::createStructure(vm, globalObject, globalObject-&gt;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&amp;, Ref&lt;TestClassWithJSBuiltinConstructor&gt;&amp;&amp;);
</span><span class="cx"> 
</span><del>-    void finishCreation(JSC::VM&amp; vm)
-    {
-        Base::finishCreation(vm);
-        ASSERT(inherits(info()));
-    }
-
</del><ins>+    void finishCreation(JSC::VM&amp;);
</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&amp; vm)
+{
+    Base::finishCreation(vm);
+    ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestCustomConstructorWithNoInterfaceObject::createPrototype(VM&amp; vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx">     return JSTestCustomConstructorWithNoInterfaceObjectPrototype::create(vm, globalObject, JSTestCustomConstructorWithNoInterfaceObjectPrototype::createStructure(vm, globalObject, globalObject-&gt;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&amp;, Ref&lt;TestCustomConstructorWithNoInterfaceObject&gt;&amp;&amp;);
</span><span class="cx"> 
</span><del>-    void finishCreation(JSC::VM&amp; vm)
-    {
-        Base::finishCreation(vm);
-        ASSERT(inherits(info()));
-    }
-
</del><ins>+    void finishCreation(JSC::VM&amp;);
</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&amp; vm)
+{
+    Base::finishCreation(vm);
+    ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestCustomNamedGetter::createPrototype(VM&amp; vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx">     return JSTestCustomNamedGetterPrototype::create(vm, globalObject, JSTestCustomNamedGetterPrototype::createStructure(vm, globalObject, globalObject-&gt;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&amp;, Ref&lt;TestCustomNamedGetter&gt;&amp;&amp;);
</span><span class="cx"> 
</span><del>-    void finishCreation(JSC::VM&amp; vm)
-    {
-        Base::finishCreation(vm);
-        ASSERT(inherits(info()));
-    }
-
</del><ins>+    void finishCreation(JSC::VM&amp;);
</ins><span class="cx"> private:
</span><span class="cx">     bool nameGetter(JSC::ExecState*, JSC::PropertyName, JSC::JSValue&amp;);
</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&amp; vm)
+{
+    Base::finishCreation(vm);
+    ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestDOMJIT::createPrototype(VM&amp; 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&amp;, Ref&lt;TestDOMJIT&gt;&amp;&amp;);
</span><span class="cx"> 
</span><del>-    void finishCreation(JSC::VM&amp; vm)
-    {
-        Base::finishCreation(vm);
-        ASSERT(inherits(info()));
-    }
-
</del><ins>+    void finishCreation(JSC::VM&amp;);
</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&amp; vm)
+{
+    Base::finishCreation(vm);
+    ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestEventConstructor::createPrototype(VM&amp; 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&amp;, Ref&lt;TestEventConstructor&gt;&amp;&amp;);
</span><span class="cx"> 
</span><del>-    void finishCreation(JSC::VM&amp; vm)
-    {
-        Base::finishCreation(vm);
-        ASSERT(inherits(info()));
-    }
-
</del><ins>+    void finishCreation(JSC::VM&amp;);
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> JSC::JSValue toJS(JSC::ExecState*, JSDOMGlobalObject*, TestEventConstructor&amp;);
</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&amp; vm)
+{
+    Base::finishCreation(vm);
+    ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestEventTarget::createPrototype(VM&amp; 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&amp;, Ref&lt;TestEventTarget&gt;&amp;&amp;);
</span><span class="cx"> 
</span><del>-    void finishCreation(JSC::VM&amp; vm)
-    {
-        Base::finishCreation(vm);
-        ASSERT(inherits(info()));
-    }
-
</del><ins>+    void finishCreation(JSC::VM&amp;);
</ins><span class="cx"> private:
</span><span class="cx">     bool nameGetter(JSC::ExecState*, JSC::PropertyName, JSC::JSValue&amp;);
</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&amp; vm)
+{
+    Base::finishCreation(vm);
+    ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestException::createPrototype(VM&amp; vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx">     return JSTestExceptionPrototype::create(vm, globalObject, JSTestExceptionPrototype::createStructure(vm, globalObject, globalObject-&gt;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&amp;, Ref&lt;TestException&gt;&amp;&amp;);
</span><span class="cx"> 
</span><del>-    void finishCreation(JSC::VM&amp; vm)
-    {
-        Base::finishCreation(vm);
-        ASSERT(inherits(info()));
-    }
-
</del><ins>+    void finishCreation(JSC::VM&amp;);
</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&amp; vm)
+{
+    Base::finishCreation(vm);
+    ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestGenerateIsReachable::createPrototype(VM&amp; vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx">     return JSTestGenerateIsReachablePrototype::create(vm, globalObject, JSTestGenerateIsReachablePrototype::createStructure(vm, globalObject, globalObject-&gt;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&amp;, Ref&lt;TestGenerateIsReachable&gt;&amp;&amp;);
</span><span class="cx"> 
</span><del>-    void finishCreation(JSC::VM&amp; vm)
-    {
-        Base::finishCreation(vm);
-        ASSERT(inherits(info()));
-    }
-
</del><ins>+    void finishCreation(JSC::VM&amp;);
</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&amp; vm, JSProxy* proxy)
</del><ins>+void JSTestGlobalObject::finishCreation(VM&amp; 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&amp;, Ref&lt;TestGlobalObject&gt;&amp;&amp;);
</span><span class="cx"> 
</span><del>-    void finishCreation(JSC::VM&amp; vm)
-    {
-        Base::finishCreation(vm);
-        ASSERT(inherits(info()));
-    }
-
-    void finishCreation(JSC::VM&amp;, JSC::JSProxy*);
</del><ins>+    void finishCreation(JSC::VM&amp;);
</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&amp; vm)
+{
+    Base::finishCreation(vm);
+    ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestInterface::createPrototype(VM&amp; vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx">     return JSTestInterfacePrototype::create(vm, globalObject, JSTestInterfacePrototype::createStructure(vm, globalObject, globalObject-&gt;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&amp;, Ref&lt;TestInterface&gt;&amp;&amp;);
</span><span class="cx"> 
</span><del>-    void finishCreation(JSC::VM&amp; vm)
-    {
-        Base::finishCreation(vm);
-        ASSERT(inherits(info()));
-    }
-
</del><ins>+    void finishCreation(JSC::VM&amp;);
</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&amp; vm)
+{
+    Base::finishCreation(vm);
+    ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestInterfaceLeadingUnderscore::createPrototype(VM&amp; vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx">     return JSTestInterfaceLeadingUnderscorePrototype::create(vm, globalObject, JSTestInterfaceLeadingUnderscorePrototype::createStructure(vm, globalObject, globalObject-&gt;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&amp;, Ref&lt;TestInterfaceLeadingUnderscore&gt;&amp;&amp;);
</span><span class="cx"> 
</span><del>-    void finishCreation(JSC::VM&amp; vm)
-    {
-        Base::finishCreation(vm);
-        ASSERT(inherits(info()));
-    }
-
</del><ins>+    void finishCreation(JSC::VM&amp;);
</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&amp; vm)
+{
+    Base::finishCreation(vm);
+    ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestIterable::createPrototype(VM&amp; vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx">     return JSTestIterablePrototype::create(vm, globalObject, JSTestIterablePrototype::createStructure(vm, globalObject, globalObject-&gt;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&amp;, Ref&lt;TestIterable&gt;&amp;&amp;);
</span><span class="cx"> 
</span><del>-    void finishCreation(JSC::VM&amp; vm)
-    {
-        Base::finishCreation(vm);
-        ASSERT(inherits(info()));
-    }
-
</del><ins>+    void finishCreation(JSC::VM&amp;);
</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&amp; globalObject)
</span><span class="cx">     : JSDOMObject(structure, globalObject) { }
</span><span class="cx"> 
</span><ins>+void JSTestJSBuiltinConstructor::finishCreation(VM&amp; vm)
+{
+    Base::finishCreation(vm);
+    ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestJSBuiltinConstructor::createPrototype(VM&amp; vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx">     return JSTestJSBuiltinConstructorPrototype::create(vm, globalObject, JSTestJSBuiltinConstructorPrototype::createStructure(vm, globalObject, globalObject-&gt;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&amp;);
</span><span class="cx"> 
</span><ins>+    void finishCreation(JSC::VM&amp;);
</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&amp; vm)
+{
+    Base::finishCreation(vm);
+    ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestMediaQueryListListener::createPrototype(VM&amp; vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx">     return JSTestMediaQueryListListenerPrototype::create(vm, globalObject, JSTestMediaQueryListListenerPrototype::createStructure(vm, globalObject, globalObject-&gt;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&amp;, Ref&lt;TestMediaQueryListListener&gt;&amp;&amp;);
</span><span class="cx"> 
</span><del>-    void finishCreation(JSC::VM&amp; vm)
-    {
-        Base::finishCreation(vm);
-        ASSERT(inherits(info()));
-    }
-
</del><ins>+    void finishCreation(JSC::VM&amp;);
</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&amp; vm)
+{
+    Base::finishCreation(vm);
+    ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestNamedConstructor::createPrototype(VM&amp; vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx">     return JSTestNamedConstructorPrototype::create(vm, globalObject, JSTestNamedConstructorPrototype::createStructure(vm, globalObject, globalObject-&gt;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&amp;, Ref&lt;TestNamedConstructor&gt;&amp;&amp;);
</span><span class="cx"> 
</span><del>-    void finishCreation(JSC::VM&amp; vm)
-    {
-        Base::finishCreation(vm);
-        ASSERT(inherits(info()));
-    }
-
</del><ins>+    void finishCreation(JSC::VM&amp;);
</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&amp; vm)
+{
+    Base::finishCreation(vm);
+    ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestNode::createPrototype(VM&amp; 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&amp;, Ref&lt;TestNode&gt;&amp;&amp;);
</span><span class="cx"> 
</span><del>-    void finishCreation(JSC::VM&amp; vm)
-    {
-        Base::finishCreation(vm);
-        ASSERT(inherits(info()));
-    }
-
</del><ins>+    void finishCreation(JSC::VM&amp;);
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> WEBCORE_TESTSUPPORT_EXPORT JSC::JSValue toJS(JSC::ExecState*, JSDOMGlobalObject*, TestNode&amp;);
</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&amp; vm)
+{
+    Base::finishCreation(vm);
+    ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestNondeterministic::createPrototype(VM&amp; vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx">     return JSTestNondeterministicPrototype::create(vm, globalObject, JSTestNondeterministicPrototype::createStructure(vm, globalObject, globalObject-&gt;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&amp;, Ref&lt;TestNondeterministic&gt;&amp;&amp;);
</span><span class="cx"> 
</span><del>-    void finishCreation(JSC::VM&amp; vm)
-    {
-        Base::finishCreation(vm);
-        ASSERT(inherits(info()));
-    }
-
</del><ins>+    void finishCreation(JSC::VM&amp;);
</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&amp; vm)
+{
+    Base::finishCreation(vm);
+    ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestObj::createPrototype(VM&amp; vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx">     return JSTestObjPrototype::create(vm, globalObject, JSTestObjPrototype::createStructure(vm, globalObject, globalObject-&gt;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&amp;, Ref&lt;TestObj&gt;&amp;&amp;);
</span><span class="cx"> 
</span><del>-    void finishCreation(JSC::VM&amp; vm)
-    {
-        Base::finishCreation(vm);
-        ASSERT(inherits(info()));
-    }
-
</del><ins>+    void finishCreation(JSC::VM&amp;);
</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&amp; vm)
+{
+    Base::finishCreation(vm);
+    ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestOverloadedConstructors::createPrototype(VM&amp; vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx">     return JSTestOverloadedConstructorsPrototype::create(vm, globalObject, JSTestOverloadedConstructorsPrototype::createStructure(vm, globalObject, globalObject-&gt;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&amp;, Ref&lt;TestOverloadedConstructors&gt;&amp;&amp;);
</span><span class="cx"> 
</span><del>-    void finishCreation(JSC::VM&amp; vm)
-    {
-        Base::finishCreation(vm);
-        ASSERT(inherits(info()));
-    }
-
</del><ins>+    void finishCreation(JSC::VM&amp;);
</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&amp; vm)
+{
+    Base::finishCreation(vm);
+    ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestOverloadedConstructorsWithSequence::createPrototype(VM&amp; vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx">     return JSTestOverloadedConstructorsWithSequencePrototype::create(vm, globalObject, JSTestOverloadedConstructorsWithSequencePrototype::createStructure(vm, globalObject, globalObject-&gt;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&amp;, Ref&lt;TestOverloadedConstructorsWithSequence&gt;&amp;&amp;);
</span><span class="cx"> 
</span><del>-    void finishCreation(JSC::VM&amp; vm)
-    {
-        Base::finishCreation(vm);
-        ASSERT(inherits(info()));
-    }
-
</del><ins>+    void finishCreation(JSC::VM&amp;);
</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&amp; vm)
+{
+    Base::finishCreation(vm);
+    ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestOverrideBuiltins::createPrototype(VM&amp; vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx">     return JSTestOverrideBuiltinsPrototype::create(vm, globalObject, JSTestOverrideBuiltinsPrototype::createStructure(vm, globalObject, globalObject-&gt;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&amp;, Ref&lt;TestOverrideBuiltins&gt;&amp;&amp;);
</span><span class="cx"> 
</span><del>-    void finishCreation(JSC::VM&amp; vm)
-    {
-        Base::finishCreation(vm);
-        ASSERT(inherits(info()));
-    }
-
</del><ins>+    void finishCreation(JSC::VM&amp;);
</ins><span class="cx"> private:
</span><span class="cx">     bool nameGetter(JSC::ExecState*, JSC::PropertyName, JSC::JSValue&amp;);
</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&amp; vm)
+{
+    Base::finishCreation(vm);
+    ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestSerialization::createPrototype(VM&amp; vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx">     return JSTestSerializationPrototype::create(vm, globalObject, JSTestSerializationPrototype::createStructure(vm, globalObject, globalObject-&gt;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&amp;, Ref&lt;TestSerialization&gt;&amp;&amp;);
</span><span class="cx"> 
</span><del>-    void finishCreation(JSC::VM&amp; vm)
-    {
-        Base::finishCreation(vm);
-        ASSERT(inherits(info()));
-    }
-
</del><ins>+    void finishCreation(JSC::VM&amp;);
</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&amp; vm)
+{
+    Base::finishCreation(vm);
+    ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestSerializedScriptValueInterface::createPrototype(VM&amp; vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx">     return JSTestSerializedScriptValueInterfacePrototype::create(vm, globalObject, JSTestSerializedScriptValueInterfacePrototype::createStructure(vm, globalObject, globalObject-&gt;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&amp;, Ref&lt;TestSerializedScriptValueInterface&gt;&amp;&amp;);
</span><span class="cx"> 
</span><del>-    void finishCreation(JSC::VM&amp; vm)
-    {
-        Base::finishCreation(vm);
-        ASSERT(inherits(info()));
-    }
-
</del><ins>+    void finishCreation(JSC::VM&amp;);
</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&amp; vm)
+{
+    Base::finishCreation(vm);
+    ASSERT(inherits(info()));
+
+}
+
</ins><span class="cx"> JSObject* JSTestTypedefs::createPrototype(VM&amp; vm, JSGlobalObject* globalObject)
</span><span class="cx"> {
</span><span class="cx">     return JSTestTypedefsPrototype::create(vm, globalObject, JSTestTypedefsPrototype::createStructure(vm, globalObject, globalObject-&gt;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&amp;, Ref&lt;TestTypedefs&gt;&amp;&amp;);
</span><span class="cx"> 
</span><del>-    void finishCreation(JSC::VM&amp; vm)
-    {
-        Base::finishCreation(vm);
-        ASSERT(inherits(info()));
-    }
-
</del><ins>+    void finishCreation(JSC::VM&amp;);
</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>