<!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>[202280] trunk/Source</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/202280">202280</a></dd>
<dt>Author</dt> <dd>keith_miller@apple.com</dd>
<dt>Date</dt> <dd>2016-06-21 10:54:33 -0700 (Tue, 21 Jun 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>It should be easy to add a private global helper function for builtins
https://bugs.webkit.org/show_bug.cgi?id=158893

Reviewed by Mark Lam.

Source/JavaScriptCore:

This patch does two things. First it moves all the builtin names
out of CommonIdentifiers and into BuiltinNames. This means that
adding a new function to the Builtins does not require rebuilding
all of JavaScriptCore. This patch also adds a new decorator to our
builtins @privateGlobal that will automatically put the function
on the global object. The name of the property will be the same as
the private name of the function.

This patch, also, removes the JSArrayIterator.h/.cpp files
as they no longer appear to be used in any real way. Finally,
the builtins tests have been rebaselined. It appears this has
not been done for a while so the expected files contain other
changes.

* CMakeLists.txt:
* JavaScriptCore.xcodeproj/project.pbxproj:
* Scripts/builtins/builtins_generate_combined_header.py:
(BuiltinsCombinedHeaderGenerator.generate_output):
(generate_section_for_code_name_macro):
(generate_section_for_global_private_code_name_macro):
* Scripts/builtins/builtins_model.py:
(BuiltinFunction.__init__):
(BuiltinFunction.fromString):
* Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Combined.js-result:
* Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Separate.js-result:
* Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Combined.js-result:
* Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Separate.js-result:
* Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Combined.js-result:
* Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Separate.js-result:
* Scripts/tests/builtins/expected/JavaScriptCore-InternalClashingNames-Combined.js-result:
* Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result:
* Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result:
* Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result:
* Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result:
* Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result:
* builtins/ArrayIteratorPrototype.js:
* builtins/ArrayPrototype.js:
* builtins/BuiltinNames.h:
* builtins/GeneratorPrototype.js:
* builtins/GlobalObject.js:
* builtins/PromiseOperations.js:
* builtins/RegExpPrototype.js:
* builtins/StringPrototype.js:
* bytecode/BytecodeIntrinsicRegistry.cpp:
* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::initializeArrowFunctionContextScopeIfNeeded):
(JSC::BytecodeGenerator::expectedFunctionForIdentifier):
(JSC::BytecodeGenerator::emitGetTemplateObject):
(JSC::BytecodeGenerator::emitLoadNewTargetFromArrowFunctionLexicalEnvironment):
(JSC::BytecodeGenerator::emitLoadDerivedConstructorFromArrowFunctionLexicalEnvironment):
(JSC::BytecodeGenerator::emitPutNewTargetToArrowFunctionContextScope):
(JSC::BytecodeGenerator::emitPutDerivedConstructorToArrowFunctionContextScope):
(JSC::BytecodeGenerator::emitGeneratorStateChange):
* bytecompiler/NodesCodegen.cpp:
(JSC::emitHomeObjectForCallee):
(JSC::emitPutHomeObject):
(JSC::FunctionNode::emitBytecode):
* dfg/DFGOperations.cpp:
* inspector/JSInjectedScriptHost.cpp:
(Inspector::JSInjectedScriptHost::subtype):
(Inspector::JSInjectedScriptHost::getInternalProperties): Deleted.
* parser/Lexer.cpp:
(JSC::Lexer&lt;LChar&gt;::parseIdentifier):
(JSC::Lexer&lt;UChar&gt;::parseIdentifier):
* parser/Nodes.h:
* parser/Parser.cpp:
(JSC::Parser&lt;LexerType&gt;::createGeneratorParameters):
(JSC::Parser&lt;LexerType&gt;::parseExportDeclaration):
* runtime/ArrayIteratorPrototype.cpp:
* runtime/ArrayIteratorPrototype.h:
* runtime/ArrayPrototype.cpp:
* runtime/CommonIdentifiers.cpp:
(JSC::CommonIdentifiers::CommonIdentifiers): Deleted.
* runtime/CommonIdentifiers.h:
* runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
* runtime/IntlDateTimeFormat.cpp:
* runtime/IntlDateTimeFormatPrototype.cpp:
(JSC::IntlDateTimeFormatPrototypeGetterFormat):
(JSC::IntlDateTimeFormatPrototypeFuncResolvedOptions):
* runtime/IntlNumberFormatPrototype.cpp:
(JSC::IntlNumberFormatPrototypeGetterFormat):
(JSC::IntlNumberFormatPrototypeFuncResolvedOptions):
* runtime/IntlObjectInlines.h:
(JSC::constructIntlInstanceWithWorkaroundForLegacyIntlConstructor):
* runtime/JSArrayIterator.cpp: Removed.
(JSC::JSArrayIterator::finishCreation): Deleted.
(JSC::JSArrayIterator::kind): Deleted.
(JSC::JSArrayIterator::iteratedValue): Deleted.
* runtime/JSArrayIterator.h: Removed.
(JSC::JSArrayIterator::createStructure): Deleted.
(JSC::JSArrayIterator::create): Deleted.
(JSC::JSArrayIterator::JSArrayIterator): Deleted.
* runtime/JSGenericTypedArrayViewConstructorInlines.h:
(JSC::JSGenericTypedArrayViewConstructor&lt;ViewClass&gt;::finishCreation):
* runtime/JSGenericTypedArrayViewPrototypeFunctions.h:
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
* runtime/JSInternalPromise.cpp:
* runtime/JSInternalPromiseDeferred.cpp:
(JSC::JSInternalPromiseDeferred::create):
* runtime/JSPromise.cpp:
(JSC::JSPromise::finishCreation):
(JSC::JSPromise::result):
* runtime/JSPromiseDeferred.cpp:
(JSC::JSPromiseDeferred::create):
* runtime/JSStringIterator.cpp:
(JSC::JSStringIterator::finishCreation):
(JSC::JSStringIterator::iteratedValue):
(JSC::JSStringIterator::clone):
* runtime/MapPrototype.cpp:
(JSC::MapPrototype::finishCreation):
* runtime/ObjectConstructor.cpp:
(JSC::ObjectConstructor::finishCreation):
* runtime/ReflectObject.cpp:
(JSC::ReflectObject::finishCreation):
* runtime/StringPrototype.cpp:
(JSC::StringPrototype::finishCreation):
* runtime/TypedArrayInlines.h:

Source/WebCore:

Add JSCJSValueInlines.h to fix build issues.

* platform/mock/mediasource/MockBox.cpp:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoreCMakeListstxt">trunk/Source/JavaScriptCore/CMakeLists.txt</a></li>
<li><a href="#trunkSourceJavaScriptCoreChangeLog">trunk/Source/JavaScriptCore/ChangeLog</a></li>
<li><a href="#trunkSourceJavaScriptCoreJavaScriptCorexcodeprojprojectpbxproj">trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptsbuiltinsbuiltins_generate_combined_headerpy">trunk/Source/JavaScriptCore/Scripts/builtins/builtins_generate_combined_header.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptsbuiltinsbuiltins_modelpy">trunk/Source/JavaScriptCore/Scripts/builtins/builtins_model.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedJavaScriptCoreBuiltinPromiseCombinedjsresult">trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Combined.js-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedJavaScriptCoreBuiltinPromiseSeparatejsresult">trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Separate.js-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedJavaScriptCoreBuiltinprototypeCombinedjsresult">trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Combined.js-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedJavaScriptCoreBuiltinprototypeSeparatejsresult">trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Separate.js-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedJavaScriptCoreBuiltinConstructorCombinedjsresult">trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Combined.js-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedJavaScriptCoreBuiltinConstructorSeparatejsresult">trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Separate.js-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedJavaScriptCoreInternalClashingNamesCombinedjsresult">trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-InternalClashingNames-Combined.js-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedWebCoreArbitraryConditionalGuardSeparatejsresult">trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedWebCoreGuardedBuiltinSeparatejsresult">trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedWebCoreGuardedInternalBuiltinSeparatejsresult">trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedWebCoreUnguardedBuiltinSeparatejsresult">trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedWebCorexmlCasingTestSeparatejsresult">trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result</a></li>
<li><a href="#trunkSourceJavaScriptCorebuiltinsArrayIteratorPrototypejs">trunk/Source/JavaScriptCore/builtins/ArrayIteratorPrototype.js</a></li>
<li><a href="#trunkSourceJavaScriptCorebuiltinsArrayPrototypejs">trunk/Source/JavaScriptCore/builtins/ArrayPrototype.js</a></li>
<li><a href="#trunkSourceJavaScriptCorebuiltinsBuiltinNamesh">trunk/Source/JavaScriptCore/builtins/BuiltinNames.h</a></li>
<li><a href="#trunkSourceJavaScriptCorebuiltinsGeneratorPrototypejs">trunk/Source/JavaScriptCore/builtins/GeneratorPrototype.js</a></li>
<li><a href="#trunkSourceJavaScriptCorebuiltinsGlobalObjectjs">trunk/Source/JavaScriptCore/builtins/GlobalObject.js</a></li>
<li><a href="#trunkSourceJavaScriptCorebuiltinsPromiseOperationsjs">trunk/Source/JavaScriptCore/builtins/PromiseOperations.js</a></li>
<li><a href="#trunkSourceJavaScriptCorebuiltinsRegExpPrototypejs">trunk/Source/JavaScriptCore/builtins/RegExpPrototype.js</a></li>
<li><a href="#trunkSourceJavaScriptCorebuiltinsStringPrototypejs">trunk/Source/JavaScriptCore/builtins/StringPrototype.js</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecodeBytecodeIntrinsicRegistrycpp">trunk/Source/JavaScriptCore/bytecode/BytecodeIntrinsicRegistry.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecompilerBytecodeGeneratorcpp">trunk/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecompilerNodesCodegencpp">trunk/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGOperationscpp">trunk/Source/JavaScriptCore/dfg/DFGOperations.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorJSInjectedScriptHostcpp">trunk/Source/JavaScriptCore/inspector/JSInjectedScriptHost.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorejsccpp">trunk/Source/JavaScriptCore/jsc.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreparserLexercpp">trunk/Source/JavaScriptCore/parser/Lexer.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreparserNodesh">trunk/Source/JavaScriptCore/parser/Nodes.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreparserParsercpp">trunk/Source/JavaScriptCore/parser/Parser.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeArrayIteratorPrototypecpp">trunk/Source/JavaScriptCore/runtime/ArrayIteratorPrototype.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeArrayIteratorPrototypeh">trunk/Source/JavaScriptCore/runtime/ArrayIteratorPrototype.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeArrayPrototypecpp">trunk/Source/JavaScriptCore/runtime/ArrayPrototype.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeCommonIdentifierscpp">trunk/Source/JavaScriptCore/runtime/CommonIdentifiers.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeCommonIdentifiersh">trunk/Source/JavaScriptCore/runtime/CommonIdentifiers.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeCommonSlowPathscpp">trunk/Source/JavaScriptCore/runtime/CommonSlowPaths.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeIntlDateTimeFormatcpp">trunk/Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeIntlDateTimeFormatPrototypecpp">trunk/Source/JavaScriptCore/runtime/IntlDateTimeFormatPrototype.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeIntlNumberFormatPrototypecpp">trunk/Source/JavaScriptCore/runtime/IntlNumberFormatPrototype.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeIntlObjectInlinesh">trunk/Source/JavaScriptCore/runtime/IntlObjectInlines.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSGenericTypedArrayViewConstructorInlinesh">trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayViewConstructorInlines.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSGenericTypedArrayViewPrototypeFunctionsh">trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayViewPrototypeFunctions.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSGlobalObjectcpp">trunk/Source/JavaScriptCore/runtime/JSGlobalObject.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSInternalPromisecpp">trunk/Source/JavaScriptCore/runtime/JSInternalPromise.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSInternalPromiseDeferredcpp">trunk/Source/JavaScriptCore/runtime/JSInternalPromiseDeferred.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSPromisecpp">trunk/Source/JavaScriptCore/runtime/JSPromise.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSPromiseDeferredcpp">trunk/Source/JavaScriptCore/runtime/JSPromiseDeferred.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSStringIteratorcpp">trunk/Source/JavaScriptCore/runtime/JSStringIterator.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeMapPrototypecpp">trunk/Source/JavaScriptCore/runtime/MapPrototype.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeObjectConstructorcpp">trunk/Source/JavaScriptCore/runtime/ObjectConstructor.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeReflectObjectcpp">trunk/Source/JavaScriptCore/runtime/ReflectObject.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeStringPrototypecpp">trunk/Source/JavaScriptCore/runtime/StringPrototype.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeTypedArrayInlinesh">trunk/Source/JavaScriptCore/runtime/TypedArrayInlines.h</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreplatformmockmediasourceMockBoxcpp">trunk/Source/WebCore/platform/mock/mediasource/MockBox.cpp</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSArrayIteratorcpp">trunk/Source/JavaScriptCore/runtime/JSArrayIterator.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSArrayIteratorh">trunk/Source/JavaScriptCore/runtime/JSArrayIterator.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceJavaScriptCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/CMakeLists.txt (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/CMakeLists.txt        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/CMakeLists.txt        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -685,7 +685,6 @@
</span><span class="cx">     runtime/JSArrayBufferConstructor.cpp
</span><span class="cx">     runtime/JSArrayBufferPrototype.cpp
</span><span class="cx">     runtime/JSArrayBufferView.cpp
</span><del>-    runtime/JSArrayIterator.cpp
</del><span class="cx">     runtime/JSBoundFunction.cpp
</span><span class="cx">     runtime/JSCJSValue.cpp
</span><span class="cx">     runtime/JSCallee.cpp
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ChangeLog (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ChangeLog        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/ChangeLog        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -1,3 +1,130 @@
</span><ins>+2016-06-21  Keith Miller  &lt;keith_miller@apple.com&gt;
+
+        It should be easy to add a private global helper function for builtins
+        https://bugs.webkit.org/show_bug.cgi?id=158893
+
+        Reviewed by Mark Lam.
+
+        This patch does two things. First it moves all the builtin names
+        out of CommonIdentifiers and into BuiltinNames. This means that
+        adding a new function to the Builtins does not require rebuilding
+        all of JavaScriptCore. This patch also adds a new decorator to our
+        builtins @privateGlobal that will automatically put the function
+        on the global object. The name of the property will be the same as
+        the private name of the function.
+
+        This patch, also, removes the JSArrayIterator.h/.cpp files
+        as they no longer appear to be used in any real way. Finally,
+        the builtins tests have been rebaselined. It appears this has
+        not been done for a while so the expected files contain other
+        changes.
+
+        * CMakeLists.txt:
+        * JavaScriptCore.xcodeproj/project.pbxproj:
+        * Scripts/builtins/builtins_generate_combined_header.py:
+        (BuiltinsCombinedHeaderGenerator.generate_output):
+        (generate_section_for_code_name_macro):
+        (generate_section_for_global_private_code_name_macro):
+        * Scripts/builtins/builtins_model.py:
+        (BuiltinFunction.__init__):
+        (BuiltinFunction.fromString):
+        * Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Combined.js-result:
+        * Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Separate.js-result:
+        * Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Combined.js-result:
+        * Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Separate.js-result:
+        * Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Combined.js-result:
+        * Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Separate.js-result:
+        * Scripts/tests/builtins/expected/JavaScriptCore-InternalClashingNames-Combined.js-result:
+        * Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result:
+        * Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result:
+        * Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result:
+        * Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result:
+        * Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result:
+        * builtins/ArrayIteratorPrototype.js:
+        * builtins/ArrayPrototype.js:
+        * builtins/BuiltinNames.h:
+        * builtins/GeneratorPrototype.js:
+        * builtins/GlobalObject.js:
+        * builtins/PromiseOperations.js:
+        * builtins/RegExpPrototype.js:
+        * builtins/StringPrototype.js:
+        * bytecode/BytecodeIntrinsicRegistry.cpp:
+        * bytecompiler/BytecodeGenerator.cpp:
+        (JSC::BytecodeGenerator::initializeArrowFunctionContextScopeIfNeeded):
+        (JSC::BytecodeGenerator::expectedFunctionForIdentifier):
+        (JSC::BytecodeGenerator::emitGetTemplateObject):
+        (JSC::BytecodeGenerator::emitLoadNewTargetFromArrowFunctionLexicalEnvironment):
+        (JSC::BytecodeGenerator::emitLoadDerivedConstructorFromArrowFunctionLexicalEnvironment):
+        (JSC::BytecodeGenerator::emitPutNewTargetToArrowFunctionContextScope):
+        (JSC::BytecodeGenerator::emitPutDerivedConstructorToArrowFunctionContextScope):
+        (JSC::BytecodeGenerator::emitGeneratorStateChange):
+        * bytecompiler/NodesCodegen.cpp:
+        (JSC::emitHomeObjectForCallee):
+        (JSC::emitPutHomeObject):
+        (JSC::FunctionNode::emitBytecode):
+        * dfg/DFGOperations.cpp:
+        * inspector/JSInjectedScriptHost.cpp:
+        (Inspector::JSInjectedScriptHost::subtype):
+        (Inspector::JSInjectedScriptHost::getInternalProperties): Deleted.
+        * parser/Lexer.cpp:
+        (JSC::Lexer&lt;LChar&gt;::parseIdentifier):
+        (JSC::Lexer&lt;UChar&gt;::parseIdentifier):
+        * parser/Nodes.h:
+        * parser/Parser.cpp:
+        (JSC::Parser&lt;LexerType&gt;::createGeneratorParameters):
+        (JSC::Parser&lt;LexerType&gt;::parseExportDeclaration):
+        * runtime/ArrayIteratorPrototype.cpp:
+        * runtime/ArrayIteratorPrototype.h:
+        * runtime/ArrayPrototype.cpp:
+        * runtime/CommonIdentifiers.cpp:
+        (JSC::CommonIdentifiers::CommonIdentifiers): Deleted.
+        * runtime/CommonIdentifiers.h:
+        * runtime/CommonSlowPaths.cpp:
+        (JSC::SLOW_PATH_DECL):
+        * runtime/IntlDateTimeFormat.cpp:
+        * runtime/IntlDateTimeFormatPrototype.cpp:
+        (JSC::IntlDateTimeFormatPrototypeGetterFormat):
+        (JSC::IntlDateTimeFormatPrototypeFuncResolvedOptions):
+        * runtime/IntlNumberFormatPrototype.cpp:
+        (JSC::IntlNumberFormatPrototypeGetterFormat):
+        (JSC::IntlNumberFormatPrototypeFuncResolvedOptions):
+        * runtime/IntlObjectInlines.h:
+        (JSC::constructIntlInstanceWithWorkaroundForLegacyIntlConstructor):
+        * runtime/JSArrayIterator.cpp: Removed.
+        (JSC::JSArrayIterator::finishCreation): Deleted.
+        (JSC::JSArrayIterator::kind): Deleted.
+        (JSC::JSArrayIterator::iteratedValue): Deleted.
+        * runtime/JSArrayIterator.h: Removed.
+        (JSC::JSArrayIterator::createStructure): Deleted.
+        (JSC::JSArrayIterator::create): Deleted.
+        (JSC::JSArrayIterator::JSArrayIterator): Deleted.
+        * runtime/JSGenericTypedArrayViewConstructorInlines.h:
+        (JSC::JSGenericTypedArrayViewConstructor&lt;ViewClass&gt;::finishCreation):
+        * runtime/JSGenericTypedArrayViewPrototypeFunctions.h:
+        * runtime/JSGlobalObject.cpp:
+        (JSC::JSGlobalObject::init):
+        * runtime/JSInternalPromise.cpp:
+        * runtime/JSInternalPromiseDeferred.cpp:
+        (JSC::JSInternalPromiseDeferred::create):
+        * runtime/JSPromise.cpp:
+        (JSC::JSPromise::finishCreation):
+        (JSC::JSPromise::result):
+        * runtime/JSPromiseDeferred.cpp:
+        (JSC::JSPromiseDeferred::create):
+        * runtime/JSStringIterator.cpp:
+        (JSC::JSStringIterator::finishCreation):
+        (JSC::JSStringIterator::iteratedValue):
+        (JSC::JSStringIterator::clone):
+        * runtime/MapPrototype.cpp:
+        (JSC::MapPrototype::finishCreation):
+        * runtime/ObjectConstructor.cpp:
+        (JSC::ObjectConstructor::finishCreation):
+        * runtime/ReflectObject.cpp:
+        (JSC::ReflectObject::finishCreation):
+        * runtime/StringPrototype.cpp:
+        (JSC::StringPrototype::finishCreation):
+        * runtime/TypedArrayInlines.h:
+
</ins><span class="cx"> 2016-06-20  Yusuke Suzuki  &lt;utatane.tea@gmail.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [JSC] Use bytecode intrinsic to expose Module's loading status to builtin JS
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreJavaScriptCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -189,7 +189,7 @@
</span><span class="cx">                 0F2B66F017B6B5AB00A7AE3F /* JSFloat64Array.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F2B66C217B6B5AB00A7AE3F /* JSFloat64Array.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 0F2B66F117B6B5AB00A7AE3F /* JSGenericTypedArrayView.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F2B66C317B6B5AB00A7AE3F /* JSGenericTypedArrayView.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 0F2B66F217B6B5AB00A7AE3F /* JSGenericTypedArrayViewConstructor.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F2B66C417B6B5AB00A7AE3F /* JSGenericTypedArrayViewConstructor.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><del>-                0F2B66F317B6B5AB00A7AE3F /* JSGenericTypedArrayViewConstructorInlines.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F2B66C517B6B5AB00A7AE3F /* JSGenericTypedArrayViewConstructorInlines.h */; settings = {ATTRIBUTES = (Private, ); }; };
</del><ins>+                0F2B66F317B6B5AB00A7AE3F /* JSGenericTypedArrayViewConstructorInlines.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F2B66C517B6B5AB00A7AE3F /* JSGenericTypedArrayViewConstructorInlines.h */; };
</ins><span class="cx">                 0F2B66F417B6B5AB00A7AE3F /* JSGenericTypedArrayViewInlines.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F2B66C617B6B5AB00A7AE3F /* JSGenericTypedArrayViewInlines.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 0F2B66F517B6B5AB00A7AE3F /* JSGenericTypedArrayViewPrototype.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F2B66C717B6B5AB00A7AE3F /* JSGenericTypedArrayViewPrototype.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 0F2B66F617B6B5AB00A7AE3F /* JSGenericTypedArrayViewPrototypeInlines.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F2B66C817B6B5AB00A7AE3F /* JSGenericTypedArrayViewPrototypeInlines.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="lines">@@ -1237,7 +1237,7 @@
</span><span class="cx">                 705B41B01A6E501E00716757 /* SymbolObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 705B41A81A6E501E00716757 /* SymbolObject.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 705B41B11A6E501E00716757 /* SymbolPrototype.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 705B41A91A6E501E00716757 /* SymbolPrototype.cpp */; };
</span><span class="cx">                 705B41B21A6E501E00716757 /* SymbolPrototype.h in Headers */ = {isa = PBXBuildFile; fileRef = 705B41AA1A6E501E00716757 /* SymbolPrototype.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><del>-                708EBE241CE8F35800453146 /* IntlObjectInlines.h in Headers */ = {isa = PBXBuildFile; fileRef = 708EBE231CE8F35000453146 /* IntlObjectInlines.h */; settings = {ATTRIBUTES = (Private, ); }; };
</del><ins>+                708EBE241CE8F35800453146 /* IntlObjectInlines.h in Headers */ = {isa = PBXBuildFile; fileRef = 708EBE231CE8F35000453146 /* IntlObjectInlines.h */; };
</ins><span class="cx">                 7094C4DE1AE439530041A2EE /* BytecodeIntrinsicRegistry.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7094C4DC1AE439530041A2EE /* BytecodeIntrinsicRegistry.cpp */; };
</span><span class="cx">                 7094C4DF1AE439530041A2EE /* BytecodeIntrinsicRegistry.h in Headers */ = {isa = PBXBuildFile; fileRef = 7094C4DD1AE439530041A2EE /* BytecodeIntrinsicRegistry.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 709FB8671AE335C60039D069 /* JSWeakSet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 709FB8611AE335C60039D069 /* JSWeakSet.cpp */; };
</span><span class="lines">@@ -1727,7 +1727,7 @@
</span><span class="cx">                 A77F1821164088B200640A47 /* CodeCache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A77F181F164088B200640A47 /* CodeCache.cpp */; };
</span><span class="cx">                 A77F1822164088B200640A47 /* CodeCache.h in Headers */ = {isa = PBXBuildFile; fileRef = A77F1820164088B200640A47 /* CodeCache.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 A77F1825164192C700640A47 /* ParserModes.h in Headers */ = {isa = PBXBuildFile; fileRef = A77F18241641925400640A47 /* ParserModes.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><del>-                A784A26111D16622005776AC /* ASTBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A7A7EE7411B98B8D0065A14F /* ASTBuilder.h */; settings = {ATTRIBUTES = (Private, ); }; };
</del><ins>+                A784A26111D16622005776AC /* ASTBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A7A7EE7411B98B8D0065A14F /* ASTBuilder.h */; };
</ins><span class="cx">                 A784A26411D16622005776AC /* SyntaxChecker.h in Headers */ = {isa = PBXBuildFile; fileRef = A7A7EE7711B98B8D0065A14F /* SyntaxChecker.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 A78507D717CBC6FD0011F6E7 /* MapData.h in Headers */ = {isa = PBXBuildFile; fileRef = A78507D517CBC6FD0011F6E7 /* MapData.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 A785F6BC18C553FE00F10626 /* SpillRegistersMode.h in Headers */ = {isa = PBXBuildFile; fileRef = A7FF647A18C52E8500B55307 /* SpillRegistersMode.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="lines">@@ -1766,8 +1766,6 @@
</span><span class="cx">                 A7B601821639FD2A00372BA3 /* UnlinkedCodeBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = A79E781F15EECBA80047C855 /* UnlinkedCodeBlock.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 A7BDAEC817F4EA1400F6140C /* ArrayIteratorPrototype.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7BDAEC217F4EA1400F6140C /* ArrayIteratorPrototype.cpp */; };
</span><span class="cx">                 A7BDAEC917F4EA1400F6140C /* ArrayIteratorPrototype.h in Headers */ = {isa = PBXBuildFile; fileRef = A7BDAEC317F4EA1400F6140C /* ArrayIteratorPrototype.h */; };
</span><del>-                A7BDAECA17F4EA1400F6140C /* JSArrayIterator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7BDAEC417F4EA1400F6140C /* JSArrayIterator.cpp */; };
-                A7BDAECB17F4EA1400F6140C /* JSArrayIterator.h in Headers */ = {isa = PBXBuildFile; fileRef = A7BDAEC517F4EA1400F6140C /* JSArrayIterator.h */; };
</del><span class="cx">                 A7BFF3C0179868940002F462 /* DFGFiltrationResult.h in Headers */ = {isa = PBXBuildFile; fileRef = A7BFF3BF179868940002F462 /* DFGFiltrationResult.h */; };
</span><span class="cx">                 A7C0C4AC168103020017011D /* JSScriptRefPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = A7C0C4AB167C08CD0017011D /* JSScriptRefPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 A7C0C4AD1681067E0017011D /* JSScriptRef.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7C0C4AA167C08CD0017011D /* JSScriptRef.cpp */; };
</span><span class="lines">@@ -1879,7 +1877,7 @@
</span><span class="cx">                 BC18C4310E16F5CD00B34460 /* Lexer.h in Headers */ = {isa = PBXBuildFile; fileRef = F692A8660255597D01FF60F7 /* Lexer.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 BC18C4370E16F5CD00B34460 /* Lookup.h in Headers */ = {isa = PBXBuildFile; fileRef = F692A8690255597D01FF60F7 /* Lookup.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 BC18C43C0E16F5CD00B34460 /* MathObject.h in Headers */ = {isa = PBXBuildFile; fileRef = F692A86B0255597D01FF60F7 /* MathObject.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><del>-                BC18C43F0E16F5CD00B34460 /* Nodes.h in Headers */ = {isa = PBXBuildFile; fileRef = F692A86E0255597D01FF60F7 /* Nodes.h */; settings = {ATTRIBUTES = (Private, ); }; };
</del><ins>+                BC18C43F0E16F5CD00B34460 /* Nodes.h in Headers */ = {isa = PBXBuildFile; fileRef = F692A86E0255597D01FF60F7 /* Nodes.h */; };
</ins><span class="cx">                 BC18C4410E16F5CD00B34460 /* NumberConstructor.h in Headers */ = {isa = PBXBuildFile; fileRef = BC2680C30E16D4E900A06E92 /* NumberConstructor.h */; };
</span><span class="cx">                 BC18C4420E16F5CD00B34460 /* NumberConstructor.lut.h in Headers */ = {isa = PBXBuildFile; fileRef = BC2680E60E16D52300A06E92 /* NumberConstructor.lut.h */; };
</span><span class="cx">                 BC18C4430E16F5CD00B34460 /* NumberObject.h in Headers */ = {isa = PBXBuildFile; fileRef = F692A8710255597D01FF60F7 /* NumberObject.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="lines">@@ -3986,8 +3984,6 @@
</span><span class="cx">                 A7B4ACAE1484C9CE00B38A36 /* JSExportMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSExportMacros.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 A7BDAEC217F4EA1400F6140C /* ArrayIteratorPrototype.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; path = ArrayIteratorPrototype.cpp; sourceTree = &quot;&lt;group&gt;&quot;; xcLanguageSpecificationIdentifier = xcode.lang.cpp; };
</span><span class="cx">                 A7BDAEC317F4EA1400F6140C /* ArrayIteratorPrototype.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ArrayIteratorPrototype.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                A7BDAEC417F4EA1400F6140C /* JSArrayIterator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; path = JSArrayIterator.cpp; sourceTree = &quot;&lt;group&gt;&quot;; xcLanguageSpecificationIdentifier = xcode.lang.cpp; };
-                A7BDAEC517F4EA1400F6140C /* JSArrayIterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSArrayIterator.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 A7BFF3BF179868940002F462 /* DFGFiltrationResult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DFGFiltrationResult.h; path = dfg/DFGFiltrationResult.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 A7C0C4AA167C08CD0017011D /* JSScriptRef.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSScriptRef.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 A7C0C4AB167C08CD0017011D /* JSScriptRefPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSScriptRefPrivate.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -5717,8 +5713,6 @@
</span><span class="cx">                                 0F2B66BA17B6B5AB00A7AE3F /* JSArrayBufferView.cpp */,
</span><span class="cx">                                 0F2B66BB17B6B5AB00A7AE3F /* JSArrayBufferView.h */,
</span><span class="cx">                                 0F2B66BC17B6B5AB00A7AE3F /* JSArrayBufferViewInlines.h */,
</span><del>-                                A7BDAEC417F4EA1400F6140C /* JSArrayIterator.cpp */,
-                                A7BDAEC517F4EA1400F6140C /* JSArrayIterator.h */,
</del><span class="cx">                                 86FA9E8F142BBB2D001773B7 /* JSBoundFunction.cpp */,
</span><span class="cx">                                 86FA9E90142BBB2E001773B7 /* JSBoundFunction.h */,
</span><span class="cx">                                 657CF45619BF6662004ACBF2 /* JSCallee.cpp */,
</span><span class="lines">@@ -7660,7 +7654,6 @@
</span><span class="cx">                                 0F2B66E717B6B5AB00A7AE3F /* JSArrayBufferPrototype.h in Headers */,
</span><span class="cx">                                 0F2B66E917B6B5AB00A7AE3F /* JSArrayBufferView.h in Headers */,
</span><span class="cx">                                 0F2B66EA17B6B5AB00A7AE3F /* JSArrayBufferViewInlines.h in Headers */,
</span><del>-                                A7BDAECB17F4EA1400F6140C /* JSArrayIterator.h in Headers */,
</del><span class="cx">                                 BC18C4180E16F5CD00B34460 /* JSBase.h in Headers */,
</span><span class="cx">                                 140D17D70E8AD4A9000CD17D /* JSBasePrivate.h in Headers */,
</span><span class="cx">                                 86FA9E92142BBB2E001773B7 /* JSBoundFunction.h in Headers */,
</span><span class="lines">@@ -9107,7 +9100,6 @@
</span><span class="cx">                                 0F2B66E617B6B5AB00A7AE3F /* JSArrayBufferPrototype.cpp in Sources */,
</span><span class="cx">                                 0F2B66E817B6B5AB00A7AE3F /* JSArrayBufferView.cpp in Sources */,
</span><span class="cx">                                 A5311C371C77CECA00E6B1B6 /* HeapSnapshotBuilder.cpp in Sources */,
</span><del>-                                A7BDAECA17F4EA1400F6140C /* JSArrayIterator.cpp in Sources */,
</del><span class="cx">                                 1421359B0A677F4F00A8195E /* JSBase.cpp in Sources */,
</span><span class="cx">                                 86FA9E91142BBB2E001773B7 /* JSBoundFunction.cpp in Sources */,
</span><span class="cx">                                 1440F8AF0A508D200005F061 /* JSCallbackConstructor.cpp in Sources */,
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptsbuiltinsbuiltins_generate_combined_headerpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/Scripts/builtins/builtins_generate_combined_header.py (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/builtins/builtins_generate_combined_header.py        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/Scripts/builtins/builtins_generate_combined_header.py        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><span class="cx"> #!/usr/bin/env python
</span><span class="cx"> #
</span><del>-# Copyright (c) 2014, 2015 Apple Inc. All rights reserved.
</del><ins>+# Copyright (c) 2014-2016 Apple Inc. All rights reserved.
</ins><span class="cx"> # Copyright (c) 2014 University of Washington. All rights reserved.
</span><span class="cx"> #
</span><span class="cx"> # Redistribution and use in source and binary forms, with or without
</span><span class="lines">@@ -60,6 +60,7 @@
</span><span class="cx">             sections.append(self.generate_section_for_object(object))
</span><span class="cx">         sections.append(self.generate_section_for_code_table_macro())
</span><span class="cx">         sections.append(self.generate_section_for_code_name_macro())
</span><ins>+        sections.append(self.generate_section_for_global_private_code_name_macro())
</ins><span class="cx">         sections.append(Template(Templates.CombinedHeaderStaticMacros).substitute(args))
</span><span class="cx">         sections.append(Template(Templates.NamespaceBottom).substitute(args))
</span><span class="cx">         sections.append(Template(Templates.HeaderIncludeGuardBottom).substitute(args))
</span><span class="lines">@@ -150,3 +151,22 @@
</span><span class="cx"> 
</span><span class="cx">             lines.append(&quot;    macro(%(funcName)s) \\&quot; % function_args)
</span><span class="cx">         return '\n'.join(lines)
</span><ins>+
+    def generate_section_for_global_private_code_name_macro(self):
+        args = {
+            'macroPrefix': self.model().framework.setting('macro_prefix'),
+        }
+
+        lines = []
+        lines.append(&quot;#define %(macroPrefix)s_FOREACH_BUILTIN_FUNCTION_PRIVATE_GLOBAL_NAME(macro) \\&quot; % args)
+        functions = filter(lambda function: function.is_global_private, self.model().all_functions())
+        functions.sort(key=lambda x: x.function_name)
+        for function in functions:
+            function_args = {
+                'funcName': function.function_name,
+                'codeName': BuiltinsGenerator.mangledNameForFunction(function),
+            }
+
+            lines.append(&quot;    macro(%(funcName)s, %(codeName)s) \\&quot; % function_args)
+
+        return '\n'.join(lines)
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptsbuiltinsbuiltins_modelpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/Scripts/builtins/builtins_model.py (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/builtins/builtins_model.py        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/Scripts/builtins/builtins_model.py        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -41,8 +41,9 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> functionHeadRegExp = re.compile(r&quot;(?:@[\w|=]+\s*\n)*function\s+\w+\s*\(.*?\)&quot;, re.MULTILINE | re.DOTALL)
</span><del>-functionIntrinsicRegExp = re.compile(r&quot;^@intrinsic=(\w+)\s*\n&quot;, re.MULTILINE | re.DOTALL)
-functionIsConstructorRegExp = re.compile(r&quot;^@constructor&quot;, re.MULTILINE | re.DOTALL)
</del><ins>+functionGlobalPrivateRegExp = re.compile(r&quot;.*^@globalPrivate&quot;, re.MULTILINE | re.DOTALL)
+functionIntrinsicRegExp = re.compile(r&quot;.*^@intrinsic=(\w+)&quot;, re.MULTILINE | re.DOTALL)
+functionIsConstructorRegExp = re.compile(r&quot;.*^@constructor&quot;, re.MULTILINE | re.DOTALL)
</ins><span class="cx"> functionNameRegExp = re.compile(r&quot;function\s+(\w+)\s*\(&quot;, re.MULTILINE | re.DOTALL)
</span><span class="cx"> functionParameterFinder = re.compile(r&quot;^function\s+(?:\w+)\s*\(((?:\s*\w+)?\s*(?:\s*,\s*\w+)*)?\s*\)&quot;, re.MULTILINE | re.DOTALL)
</span><span class="cx"> 
</span><span class="lines">@@ -94,11 +95,12 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> class BuiltinFunction:
</span><del>-    def __init__(self, function_name, function_source, is_constructor, parameters, intrinsic):
</del><ins>+    def __init__(self, function_name, function_source, parameters, is_constructor, is_global_private, intrinsic):
</ins><span class="cx">         self.function_name = function_name
</span><span class="cx">         self.function_source = function_source
</span><ins>+        self.parameters = parameters
</ins><span class="cx">         self.is_constructor = is_constructor
</span><del>-        self.parameters = parameters
</del><ins>+        self.is_global_private = is_global_private
</ins><span class="cx">         self.intrinsic = intrinsic
</span><span class="cx">         self.object = None  # Set by the owning BuiltinObject
</span><span class="cx"> 
</span><span class="lines">@@ -119,11 +121,12 @@
</span><span class="cx"> 
</span><span class="cx">         function_name = functionNameRegExp.findall(function_source)[0]
</span><span class="cx">         is_constructor = functionIsConstructorRegExp.match(function_source) != None
</span><ins>+        is_global_private = functionGlobalPrivateRegExp.match(function_source) != None
</ins><span class="cx">         parameters = [s.strip() for s in functionParameterFinder.findall(function_source)[0].split(',')]
</span><span class="cx">         if len(parameters[0]) == 0:
</span><span class="cx">             parameters = []
</span><span class="cx"> 
</span><del>-        return BuiltinFunction(function_name, function_source, is_constructor, parameters, intrinsic)
</del><ins>+        return BuiltinFunction(function_name, function_source, parameters, is_constructor, is_global_private, intrinsic)
</ins><span class="cx"> 
</span><span class="cx">     def __str__(self):
</span><span class="cx">         interface = &quot;%s(%s)&quot; % (self.function_name, ', '.join(self.parameters))
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedJavaScriptCoreBuiltinPromiseCombinedjsresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Combined.js-result (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Combined.js-result        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Combined.js-result        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -60,6 +60,8 @@
</span><span class="cx">     macro(fulfillPromise) \
</span><span class="cx">     macro(rejectPromise) \
</span><span class="cx"> 
</span><ins>+#define JSC_FOREACH_BUILTIN_FUNCTION_PRIVATE_GLOBAL_NAME(macro) \
+
</ins><span class="cx"> #define DECLARE_BUILTIN_GENERATOR(codeName, functionName, argumentCount) \
</span><span class="cx">     JSC::FunctionExecutable* codeName##Generator(JSC::VM&amp;);
</span><span class="cx"> 
</span><span class="lines">@@ -107,6 +109,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;BuiltinExecutables.h&quot;
</span><span class="cx"> #include &quot;Executable.h&quot;
</span><ins>+#include &quot;Intrinsic.h&quot;
</ins><span class="cx"> #include &quot;JSCellInlines.h&quot;
</span><span class="cx"> #include &quot;VM.h&quot;
</span><span class="cx"> 
</span><span class="lines">@@ -113,39 +116,35 @@
</span><span class="cx"> namespace JSC {
</span><span class="cx"> 
</span><span class="cx"> const JSC::ConstructAbility s_builtinPromiseRejectPromiseCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
</span><del>-const int s_builtinPromiseRejectPromiseCodeLength = 413;
</del><ins>+const int s_builtinPromiseRejectPromiseCodeLength = 410;
+static const JSC::Intrinsic s_builtinPromiseRejectPromiseCodeIntrinsic = JSC::NoIntrinsic;
</ins><span class="cx"> const char* s_builtinPromiseRejectPromiseCode =
</span><span class="cx">     &quot;(function (promise, reason)\n&quot; \
</span><span class="cx">     &quot;{\n&quot; \
</span><span class="cx">     &quot;    \&quot;use strict\&quot;;\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    var reactions = promise.@promiseRejectReactions;\n&quot; \
</span><span class="cx">     &quot;    promise.@promiseResult = reason;\n&quot; \
</span><span class="cx">     &quot;    promise.@promiseFulfillReactions = undefined;\n&quot; \
</span><span class="cx">     &quot;    promise.@promiseRejectReactions = undefined;\n&quot; \
</span><span class="cx">     &quot;    promise.@promiseState = @promiseRejected;\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    @InspectorInstrumentation.promiseRejected(promise, reason, reactions);\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    @triggerPromiseReactions(reactions, reason);\n&quot; \
</span><span class="cx">     &quot;})\n&quot; \
</span><span class="cx"> ;
</span><span class="cx"> 
</span><span class="cx"> const JSC::ConstructAbility s_builtinPromiseFulfillPromiseCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
</span><del>-const int s_builtinPromiseFulfillPromiseCodeLength = 412;
</del><ins>+const int s_builtinPromiseFulfillPromiseCodeLength = 409;
+static const JSC::Intrinsic s_builtinPromiseFulfillPromiseCodeIntrinsic = JSC::NoIntrinsic;
</ins><span class="cx"> const char* s_builtinPromiseFulfillPromiseCode =
</span><span class="cx">     &quot;(function (promise, value)\n&quot; \
</span><span class="cx">     &quot;{\n&quot; \
</span><span class="cx">     &quot;    \&quot;use strict\&quot;;\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    var reactions = promise.@promiseFulfillReactions;\n&quot; \
</span><span class="cx">     &quot;    promise.@promiseResult = value;\n&quot; \
</span><span class="cx">     &quot;    promise.@promiseFulfillReactions = undefined;\n&quot; \
</span><span class="cx">     &quot;    promise.@promiseRejectReactions = undefined;\n&quot; \
</span><span class="cx">     &quot;    promise.@promiseState = @promiseFulfilled;\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    @InspectorInstrumentation.promiseFulfilled(promise, value, reactions);\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    @triggerPromiseReactions(reactions, value);\n&quot; \
</span><span class="cx">     &quot;})\n&quot; \
</span><span class="cx"> ;
</span><span class="lines">@@ -154,7 +153,7 @@
</span><span class="cx"> #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, argumentCount) \
</span><span class="cx"> JSC::FunctionExecutable* codeName##Generator(JSC::VM&amp; vm) \
</span><span class="cx"> {\
</span><del>-    return vm.builtinExecutables()-&gt;codeName##Executable()-&gt;link(vm, vm.builtinExecutables()-&gt;codeName##Source()); }
</del><ins>+    return vm.builtinExecutables()-&gt;codeName##Executable()-&gt;link(vm, vm.builtinExecutables()-&gt;codeName##Source(), Nullopt, s_##codeName##Intrinsic); }
</ins><span class="cx"> JSC_FOREACH_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
</span><span class="cx"> #undef DEFINE_BUILTIN_GENERATOR
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedJavaScriptCoreBuiltinPromiseSeparatejsresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Separate.js-result (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Separate.js-result        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Separate.js-result        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -109,6 +109,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;BuiltinExecutables.h&quot;
</span><span class="cx"> #include &quot;Executable.h&quot;
</span><ins>+#include &quot;Intrinsic.h&quot;
</ins><span class="cx"> #include &quot;JSCellInlines.h&quot;
</span><span class="cx"> #include &quot;VM.h&quot;
</span><span class="cx"> 
</span><span class="lines">@@ -115,39 +116,35 @@
</span><span class="cx"> namespace JSC {
</span><span class="cx"> 
</span><span class="cx"> const JSC::ConstructAbility s_builtinPromiseRejectPromiseCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
</span><del>-const int s_builtinPromiseRejectPromiseCodeLength = 413;
</del><ins>+const int s_builtinPromiseRejectPromiseCodeLength = 410;
+static const JSC::Intrinsic s_builtinPromiseRejectPromiseCodeIntrinsic = JSC::NoIntrinsic;
</ins><span class="cx"> const char* s_builtinPromiseRejectPromiseCode =
</span><span class="cx">     &quot;(function (promise, reason)\n&quot; \
</span><span class="cx">     &quot;{\n&quot; \
</span><span class="cx">     &quot;    \&quot;use strict\&quot;;\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    var reactions = promise.@promiseRejectReactions;\n&quot; \
</span><span class="cx">     &quot;    promise.@promiseResult = reason;\n&quot; \
</span><span class="cx">     &quot;    promise.@promiseFulfillReactions = undefined;\n&quot; \
</span><span class="cx">     &quot;    promise.@promiseRejectReactions = undefined;\n&quot; \
</span><span class="cx">     &quot;    promise.@promiseState = @promiseRejected;\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    @InspectorInstrumentation.promiseRejected(promise, reason, reactions);\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    @triggerPromiseReactions(reactions, reason);\n&quot; \
</span><span class="cx">     &quot;})\n&quot; \
</span><span class="cx"> ;
</span><span class="cx"> 
</span><span class="cx"> const JSC::ConstructAbility s_builtinPromiseFulfillPromiseCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
</span><del>-const int s_builtinPromiseFulfillPromiseCodeLength = 412;
</del><ins>+const int s_builtinPromiseFulfillPromiseCodeLength = 409;
+static const JSC::Intrinsic s_builtinPromiseFulfillPromiseCodeIntrinsic = JSC::NoIntrinsic;
</ins><span class="cx"> const char* s_builtinPromiseFulfillPromiseCode =
</span><span class="cx">     &quot;(function (promise, value)\n&quot; \
</span><span class="cx">     &quot;{\n&quot; \
</span><span class="cx">     &quot;    \&quot;use strict\&quot;;\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    var reactions = promise.@promiseFulfillReactions;\n&quot; \
</span><span class="cx">     &quot;    promise.@promiseResult = value;\n&quot; \
</span><span class="cx">     &quot;    promise.@promiseFulfillReactions = undefined;\n&quot; \
</span><span class="cx">     &quot;    promise.@promiseRejectReactions = undefined;\n&quot; \
</span><span class="cx">     &quot;    promise.@promiseState = @promiseFulfilled;\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    @InspectorInstrumentation.promiseFulfilled(promise, value, reactions);\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    @triggerPromiseReactions(reactions, value);\n&quot; \
</span><span class="cx">     &quot;})\n&quot; \
</span><span class="cx"> ;
</span><span class="lines">@@ -156,7 +153,7 @@
</span><span class="cx"> #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, argumentCount) \
</span><span class="cx"> JSC::FunctionExecutable* codeName##Generator(JSC::VM&amp; vm) \
</span><span class="cx"> {\
</span><del>-    return vm.builtinExecutables()-&gt;codeName##Executable()-&gt;link(vm, vm.builtinExecutables()-&gt;codeName##Source()); }
</del><ins>+    return vm.builtinExecutables()-&gt;codeName##Executable()-&gt;link(vm, vm.builtinExecutables()-&gt;codeName##Source(), Nullopt, s_##codeName##Intrinsic); }
</ins><span class="cx"> JSC_FOREACH_BUILTIN.PROMISE_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
</span><span class="cx"> #undef DEFINE_BUILTIN_GENERATOR
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedJavaScriptCoreBuiltinprototypeCombinedjsresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Combined.js-result (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Combined.js-result        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Combined.js-result        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -61,6 +61,8 @@
</span><span class="cx">     macro(every) \
</span><span class="cx">     macro(forEach) \
</span><span class="cx"> 
</span><ins>+#define JSC_FOREACH_BUILTIN_FUNCTION_PRIVATE_GLOBAL_NAME(macro) \
+
</ins><span class="cx"> #define DECLARE_BUILTIN_GENERATOR(codeName, functionName, argumentCount) \
</span><span class="cx">     JSC::FunctionExecutable* codeName##Generator(JSC::VM&amp;);
</span><span class="cx"> 
</span><span class="lines">@@ -109,6 +111,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;BuiltinExecutables.h&quot;
</span><span class="cx"> #include &quot;Executable.h&quot;
</span><ins>+#include &quot;Intrinsic.h&quot;
</ins><span class="cx"> #include &quot;JSCellInlines.h&quot;
</span><span class="cx"> #include &quot;VM.h&quot;
</span><span class="cx"> 
</span><span class="lines">@@ -115,12 +118,12 @@
</span><span class="cx"> namespace JSC {
</span><span class="cx"> 
</span><span class="cx"> const JSC::ConstructAbility s_builtinPrototypeEveryCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
</span><del>-const int s_builtinPrototypeEveryCodeLength = 762;
</del><ins>+const int s_builtinPrototypeEveryCodeLength = 760;
+static const JSC::Intrinsic s_builtinPrototypeEveryCodeIntrinsic = JSC::NoIntrinsic;
</ins><span class="cx"> const char* s_builtinPrototypeEveryCode =
</span><span class="cx">     &quot;(function (callback )\n&quot; \
</span><span class="cx">     &quot;{\n&quot; \
</span><span class="cx">     &quot;    \&quot;use strict\&quot;;\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    if (this === null)\n&quot; \
</span><span class="cx">     &quot;        throw new @TypeError(\&quot;Array.prototype.every requires that |this| not be null\&quot;);\n&quot; \
</span><span class="cx">     &quot;    \n&quot; \
</span><span class="lines">@@ -129,7 +132,6 @@
</span><span class="cx">     &quot;    \n&quot; \
</span><span class="cx">     &quot;    var array = @Object(this);\n&quot; \
</span><span class="cx">     &quot;    var length = @toLength(array.length);\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    if (typeof callback !== \&quot;function\&quot;)\n&quot; \
</span><span class="cx">     &quot;        throw new @TypeError(\&quot;Array.prototype.every callback must be a function\&quot;);\n&quot; \
</span><span class="cx">     &quot;    \n&quot; \
</span><span class="lines">@@ -147,12 +149,12 @@
</span><span class="cx"> ;
</span><span class="cx"> 
</span><span class="cx"> const JSC::ConstructAbility s_builtinPrototypeForEachCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
</span><del>-const int s_builtinPrototypeForEachCodeLength = 694;
</del><ins>+const int s_builtinPrototypeForEachCodeLength = 692;
+static const JSC::Intrinsic s_builtinPrototypeForEachCodeIntrinsic = JSC::NoIntrinsic;
</ins><span class="cx"> const char* s_builtinPrototypeForEachCode =
</span><span class="cx">     &quot;(function (callback )\n&quot; \
</span><span class="cx">     &quot;{\n&quot; \
</span><span class="cx">     &quot;    \&quot;use strict\&quot;;\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    if (this === null)\n&quot; \
</span><span class="cx">     &quot;        throw new @TypeError(\&quot;Array.prototype.forEach requires that |this| not be null\&quot;);\n&quot; \
</span><span class="cx">     &quot;    \n&quot; \
</span><span class="lines">@@ -161,7 +163,6 @@
</span><span class="cx">     &quot;    \n&quot; \
</span><span class="cx">     &quot;    var array = @Object(this);\n&quot; \
</span><span class="cx">     &quot;    var length = @toLength(array.length);\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    if (typeof callback !== \&quot;function\&quot;)\n&quot; \
</span><span class="cx">     &quot;        throw new @TypeError(\&quot;Array.prototype.forEach callback must be a function\&quot;);\n&quot; \
</span><span class="cx">     &quot;    \n&quot; \
</span><span class="lines">@@ -178,7 +179,7 @@
</span><span class="cx"> #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, argumentCount) \
</span><span class="cx"> JSC::FunctionExecutable* codeName##Generator(JSC::VM&amp; vm) \
</span><span class="cx"> {\
</span><del>-    return vm.builtinExecutables()-&gt;codeName##Executable()-&gt;link(vm, vm.builtinExecutables()-&gt;codeName##Source()); }
</del><ins>+    return vm.builtinExecutables()-&gt;codeName##Executable()-&gt;link(vm, vm.builtinExecutables()-&gt;codeName##Source(), Nullopt, s_##codeName##Intrinsic); }
</ins><span class="cx"> JSC_FOREACH_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
</span><span class="cx"> #undef DEFINE_BUILTIN_GENERATOR
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedJavaScriptCoreBuiltinprototypeSeparatejsresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Separate.js-result (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Separate.js-result        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Separate.js-result        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -111,6 +111,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;BuiltinExecutables.h&quot;
</span><span class="cx"> #include &quot;Executable.h&quot;
</span><ins>+#include &quot;Intrinsic.h&quot;
</ins><span class="cx"> #include &quot;JSCellInlines.h&quot;
</span><span class="cx"> #include &quot;VM.h&quot;
</span><span class="cx"> 
</span><span class="lines">@@ -117,12 +118,12 @@
</span><span class="cx"> namespace JSC {
</span><span class="cx"> 
</span><span class="cx"> const JSC::ConstructAbility s_builtinPrototypeEveryCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
</span><del>-const int s_builtinPrototypeEveryCodeLength = 762;
</del><ins>+const int s_builtinPrototypeEveryCodeLength = 760;
+static const JSC::Intrinsic s_builtinPrototypeEveryCodeIntrinsic = JSC::NoIntrinsic;
</ins><span class="cx"> const char* s_builtinPrototypeEveryCode =
</span><span class="cx">     &quot;(function (callback )\n&quot; \
</span><span class="cx">     &quot;{\n&quot; \
</span><span class="cx">     &quot;    \&quot;use strict\&quot;;\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    if (this === null)\n&quot; \
</span><span class="cx">     &quot;        throw new @TypeError(\&quot;Array.prototype.every requires that |this| not be null\&quot;);\n&quot; \
</span><span class="cx">     &quot;    \n&quot; \
</span><span class="lines">@@ -131,7 +132,6 @@
</span><span class="cx">     &quot;    \n&quot; \
</span><span class="cx">     &quot;    var array = @Object(this);\n&quot; \
</span><span class="cx">     &quot;    var length = @toLength(array.length);\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    if (typeof callback !== \&quot;function\&quot;)\n&quot; \
</span><span class="cx">     &quot;        throw new @TypeError(\&quot;Array.prototype.every callback must be a function\&quot;);\n&quot; \
</span><span class="cx">     &quot;    \n&quot; \
</span><span class="lines">@@ -149,12 +149,12 @@
</span><span class="cx"> ;
</span><span class="cx"> 
</span><span class="cx"> const JSC::ConstructAbility s_builtinPrototypeForEachCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
</span><del>-const int s_builtinPrototypeForEachCodeLength = 694;
</del><ins>+const int s_builtinPrototypeForEachCodeLength = 692;
+static const JSC::Intrinsic s_builtinPrototypeForEachCodeIntrinsic = JSC::NoIntrinsic;
</ins><span class="cx"> const char* s_builtinPrototypeForEachCode =
</span><span class="cx">     &quot;(function (callback )\n&quot; \
</span><span class="cx">     &quot;{\n&quot; \
</span><span class="cx">     &quot;    \&quot;use strict\&quot;;\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    if (this === null)\n&quot; \
</span><span class="cx">     &quot;        throw new @TypeError(\&quot;Array.prototype.forEach requires that |this| not be null\&quot;);\n&quot; \
</span><span class="cx">     &quot;    \n&quot; \
</span><span class="lines">@@ -163,7 +163,6 @@
</span><span class="cx">     &quot;    \n&quot; \
</span><span class="cx">     &quot;    var array = @Object(this);\n&quot; \
</span><span class="cx">     &quot;    var length = @toLength(array.length);\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    if (typeof callback !== \&quot;function\&quot;)\n&quot; \
</span><span class="cx">     &quot;        throw new @TypeError(\&quot;Array.prototype.forEach callback must be a function\&quot;);\n&quot; \
</span><span class="cx">     &quot;    \n&quot; \
</span><span class="lines">@@ -180,7 +179,7 @@
</span><span class="cx"> #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, argumentCount) \
</span><span class="cx"> JSC::FunctionExecutable* codeName##Generator(JSC::VM&amp; vm) \
</span><span class="cx"> {\
</span><del>-    return vm.builtinExecutables()-&gt;codeName##Executable()-&gt;link(vm, vm.builtinExecutables()-&gt;codeName##Source()); }
</del><ins>+    return vm.builtinExecutables()-&gt;codeName##Executable()-&gt;link(vm, vm.builtinExecutables()-&gt;codeName##Source(), Nullopt, s_##codeName##Intrinsic); }
</ins><span class="cx"> JSC_FOREACH_BUILTIN.PROTOTYPE_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
</span><span class="cx"> #undef DEFINE_BUILTIN_GENERATOR
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedJavaScriptCoreBuiltinConstructorCombinedjsresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Combined.js-result (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Combined.js-result        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Combined.js-result        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -60,6 +60,8 @@
</span><span class="cx">     macro(from) \
</span><span class="cx">     macro(of) \
</span><span class="cx"> 
</span><ins>+#define JSC_FOREACH_BUILTIN_FUNCTION_PRIVATE_GLOBAL_NAME(macro) \
+
</ins><span class="cx"> #define DECLARE_BUILTIN_GENERATOR(codeName, functionName, argumentCount) \
</span><span class="cx">     JSC::FunctionExecutable* codeName##Generator(JSC::VM&amp;);
</span><span class="cx"> 
</span><span class="lines">@@ -107,6 +109,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;BuiltinExecutables.h&quot;
</span><span class="cx"> #include &quot;Executable.h&quot;
</span><ins>+#include &quot;Intrinsic.h&quot;
</ins><span class="cx"> #include &quot;JSCellInlines.h&quot;
</span><span class="cx"> #include &quot;VM.h&quot;
</span><span class="cx"> 
</span><span class="lines">@@ -113,14 +116,13 @@
</span><span class="cx"> namespace JSC {
</span><span class="cx"> 
</span><span class="cx"> const JSC::ConstructAbility s_builtinConstructorOfCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
</span><del>-const int s_builtinConstructorOfCodeLength = 294;
</del><ins>+const int s_builtinConstructorOfCodeLength = 286;
+static const JSC::Intrinsic s_builtinConstructorOfCodeIntrinsic = JSC::NoIntrinsic;
</ins><span class="cx"> const char* s_builtinConstructorOfCode =
</span><span class="cx">     &quot;(function ()\n&quot; \
</span><span class="cx">     &quot;{\n&quot; \
</span><span class="cx">     &quot;    \&quot;use strict\&quot;;\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    var length = arguments.length;\n&quot; \
</span><del>-    &quot;    //\n&quot; \
</del><span class="cx">     &quot;    var array = typeof this === 'function' ? new this(length) : new @Array(length);\n&quot; \
</span><span class="cx">     &quot;    for (var k = 0; k &lt; length; ++k)\n&quot; \
</span><span class="cx">     &quot;        @putByValDirect(array, k, arguments[k]);\n&quot; \
</span><span class="lines">@@ -130,49 +132,35 @@
</span><span class="cx"> ;
</span><span class="cx"> 
</span><span class="cx"> const JSC::ConstructAbility s_builtinConstructorFromCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
</span><del>-const int s_builtinConstructorFromCodeLength = 2046;
</del><ins>+const int s_builtinConstructorFromCodeLength = 1979;
+static const JSC::Intrinsic s_builtinConstructorFromCodeIntrinsic = JSC::NoIntrinsic;
</ins><span class="cx"> const char* s_builtinConstructorFromCode =
</span><span class="cx">     &quot;(function (items )\n&quot; \
</span><span class="cx">     &quot;{\n&quot; \
</span><span class="cx">     &quot;    \&quot;use strict\&quot;;\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    var thisObj = this;\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    var mapFn = arguments.length &gt; 1 ? arguments[1] : undefined;\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    var thisArg;\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    if (mapFn !== undefined) {\n&quot; \
</span><span class="cx">     &quot;        if (typeof mapFn !== \&quot;function\&quot;)\n&quot; \
</span><span class="cx">     &quot;            throw new @TypeError(\&quot;Array.from requires that the second argument, when provided, be a function\&quot;);\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;        if (arguments.length &gt; 2)\n&quot; \
</span><span class="cx">     &quot;            thisArg = arguments[2];\n&quot; \
</span><span class="cx">     &quot;    }\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    if (items == null)\n&quot; \
</span><span class="cx">     &quot;        throw new @TypeError(\&quot;Array.from requires an array-like object - not null or undefined\&quot;);\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    var iteratorMethod = items[@symbolIterator];\n&quot; \
</span><span class="cx">     &quot;    if (iteratorMethod != null) {\n&quot; \
</span><span class="cx">     &quot;        if (typeof iteratorMethod !== \&quot;function\&quot;)\n&quot; \
</span><span class="cx">     &quot;            throw new @TypeError(\&quot;Array.from requires that the property of the first argument, items[Symbol.iterator], when exists, be a function\&quot;);\n&quot; \
</span><del>-    &quot;\n&quot; \
-    &quot;        //\n&quot; \
</del><span class="cx">     &quot;        var result = (typeof thisObj === \&quot;function\&quot;) ? @Object(new thisObj()) : [];\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;        var k = 0;\n&quot; \
</span><span class="cx">     &quot;        var iterator = iteratorMethod.@call(items);\n&quot; \
</span><del>-    &quot;\n&quot; \
-    &quot;        //\n&quot; \
-    &quot;        //\n&quot; \
-    &quot;        //\n&quot; \
</del><span class="cx">     &quot;        var wrapper = {\n&quot; \
</span><span class="cx">     &quot;            [@symbolIterator]() {\n&quot; \
</span><span class="cx">     &quot;                return iterator;\n&quot; \
</span><span class="cx">     &quot;            }\n&quot; \
</span><span class="cx">     &quot;        };\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;        for (var value of wrapper) {\n&quot; \
</span><span class="cx">     &quot;            if (mapFn)\n&quot; \
</span><span class="cx">     &quot;                @putByValDirect(result, k, thisArg === undefined ? mapFn(value, k) : mapFn.@call(thisArg, value, k));\n&quot; \
</span><span class="lines">@@ -180,17 +168,12 @@
</span><span class="cx">     &quot;                @putByValDirect(result, k, value);\n&quot; \
</span><span class="cx">     &quot;            k += 1;\n&quot; \
</span><span class="cx">     &quot;        }\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;        result.length = k;\n&quot; \
</span><span class="cx">     &quot;        return result;\n&quot; \
</span><span class="cx">     &quot;    }\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    var arrayLike = @Object(items);\n&quot; \
</span><span class="cx">     &quot;    var arrayLikeLength = @toLength(arrayLike.length);\n&quot; \
</span><del>-    &quot;\n&quot; \
-    &quot;    //\n&quot; \
</del><span class="cx">     &quot;    var result = (typeof thisObj === \&quot;function\&quot;) ? @Object(new thisObj(arrayLikeLength)) : new @Array(arrayLikeLength);\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    var k = 0;\n&quot; \
</span><span class="cx">     &quot;    while (k &lt; arrayLikeLength) {\n&quot; \
</span><span class="cx">     &quot;        var value = arrayLike[k];\n&quot; \
</span><span class="lines">@@ -200,7 +183,6 @@
</span><span class="cx">     &quot;            @putByValDirect(result, k, value);\n&quot; \
</span><span class="cx">     &quot;        k += 1;\n&quot; \
</span><span class="cx">     &quot;    }\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    result.length = arrayLikeLength;\n&quot; \
</span><span class="cx">     &quot;    return result;\n&quot; \
</span><span class="cx">     &quot;})\n&quot; \
</span><span class="lines">@@ -210,7 +192,7 @@
</span><span class="cx"> #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, argumentCount) \
</span><span class="cx"> JSC::FunctionExecutable* codeName##Generator(JSC::VM&amp; vm) \
</span><span class="cx"> {\
</span><del>-    return vm.builtinExecutables()-&gt;codeName##Executable()-&gt;link(vm, vm.builtinExecutables()-&gt;codeName##Source()); }
</del><ins>+    return vm.builtinExecutables()-&gt;codeName##Executable()-&gt;link(vm, vm.builtinExecutables()-&gt;codeName##Source(), Nullopt, s_##codeName##Intrinsic); }
</ins><span class="cx"> JSC_FOREACH_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
</span><span class="cx"> #undef DEFINE_BUILTIN_GENERATOR
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedJavaScriptCoreBuiltinConstructorSeparatejsresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Separate.js-result (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Separate.js-result        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Separate.js-result        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -109,6 +109,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;BuiltinExecutables.h&quot;
</span><span class="cx"> #include &quot;Executable.h&quot;
</span><ins>+#include &quot;Intrinsic.h&quot;
</ins><span class="cx"> #include &quot;JSCellInlines.h&quot;
</span><span class="cx"> #include &quot;VM.h&quot;
</span><span class="cx"> 
</span><span class="lines">@@ -115,14 +116,13 @@
</span><span class="cx"> namespace JSC {
</span><span class="cx"> 
</span><span class="cx"> const JSC::ConstructAbility s_builtinConstructorOfCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
</span><del>-const int s_builtinConstructorOfCodeLength = 294;
</del><ins>+const int s_builtinConstructorOfCodeLength = 286;
+static const JSC::Intrinsic s_builtinConstructorOfCodeIntrinsic = JSC::NoIntrinsic;
</ins><span class="cx"> const char* s_builtinConstructorOfCode =
</span><span class="cx">     &quot;(function ()\n&quot; \
</span><span class="cx">     &quot;{\n&quot; \
</span><span class="cx">     &quot;    \&quot;use strict\&quot;;\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    var length = arguments.length;\n&quot; \
</span><del>-    &quot;    //\n&quot; \
</del><span class="cx">     &quot;    var array = typeof this === 'function' ? new this(length) : new @Array(length);\n&quot; \
</span><span class="cx">     &quot;    for (var k = 0; k &lt; length; ++k)\n&quot; \
</span><span class="cx">     &quot;        @putByValDirect(array, k, arguments[k]);\n&quot; \
</span><span class="lines">@@ -132,49 +132,35 @@
</span><span class="cx"> ;
</span><span class="cx"> 
</span><span class="cx"> const JSC::ConstructAbility s_builtinConstructorFromCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
</span><del>-const int s_builtinConstructorFromCodeLength = 2046;
</del><ins>+const int s_builtinConstructorFromCodeLength = 1979;
+static const JSC::Intrinsic s_builtinConstructorFromCodeIntrinsic = JSC::NoIntrinsic;
</ins><span class="cx"> const char* s_builtinConstructorFromCode =
</span><span class="cx">     &quot;(function (items )\n&quot; \
</span><span class="cx">     &quot;{\n&quot; \
</span><span class="cx">     &quot;    \&quot;use strict\&quot;;\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    var thisObj = this;\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    var mapFn = arguments.length &gt; 1 ? arguments[1] : undefined;\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    var thisArg;\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    if (mapFn !== undefined) {\n&quot; \
</span><span class="cx">     &quot;        if (typeof mapFn !== \&quot;function\&quot;)\n&quot; \
</span><span class="cx">     &quot;            throw new @TypeError(\&quot;Array.from requires that the second argument, when provided, be a function\&quot;);\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;        if (arguments.length &gt; 2)\n&quot; \
</span><span class="cx">     &quot;            thisArg = arguments[2];\n&quot; \
</span><span class="cx">     &quot;    }\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    if (items == null)\n&quot; \
</span><span class="cx">     &quot;        throw new @TypeError(\&quot;Array.from requires an array-like object - not null or undefined\&quot;);\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    var iteratorMethod = items[@symbolIterator];\n&quot; \
</span><span class="cx">     &quot;    if (iteratorMethod != null) {\n&quot; \
</span><span class="cx">     &quot;        if (typeof iteratorMethod !== \&quot;function\&quot;)\n&quot; \
</span><span class="cx">     &quot;            throw new @TypeError(\&quot;Array.from requires that the property of the first argument, items[Symbol.iterator], when exists, be a function\&quot;);\n&quot; \
</span><del>-    &quot;\n&quot; \
-    &quot;        //\n&quot; \
</del><span class="cx">     &quot;        var result = (typeof thisObj === \&quot;function\&quot;) ? @Object(new thisObj()) : [];\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;        var k = 0;\n&quot; \
</span><span class="cx">     &quot;        var iterator = iteratorMethod.@call(items);\n&quot; \
</span><del>-    &quot;\n&quot; \
-    &quot;        //\n&quot; \
-    &quot;        //\n&quot; \
-    &quot;        //\n&quot; \
</del><span class="cx">     &quot;        var wrapper = {\n&quot; \
</span><span class="cx">     &quot;            [@symbolIterator]() {\n&quot; \
</span><span class="cx">     &quot;                return iterator;\n&quot; \
</span><span class="cx">     &quot;            }\n&quot; \
</span><span class="cx">     &quot;        };\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;        for (var value of wrapper) {\n&quot; \
</span><span class="cx">     &quot;            if (mapFn)\n&quot; \
</span><span class="cx">     &quot;                @putByValDirect(result, k, thisArg === undefined ? mapFn(value, k) : mapFn.@call(thisArg, value, k));\n&quot; \
</span><span class="lines">@@ -182,17 +168,12 @@
</span><span class="cx">     &quot;                @putByValDirect(result, k, value);\n&quot; \
</span><span class="cx">     &quot;            k += 1;\n&quot; \
</span><span class="cx">     &quot;        }\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;        result.length = k;\n&quot; \
</span><span class="cx">     &quot;        return result;\n&quot; \
</span><span class="cx">     &quot;    }\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    var arrayLike = @Object(items);\n&quot; \
</span><span class="cx">     &quot;    var arrayLikeLength = @toLength(arrayLike.length);\n&quot; \
</span><del>-    &quot;\n&quot; \
-    &quot;    //\n&quot; \
</del><span class="cx">     &quot;    var result = (typeof thisObj === \&quot;function\&quot;) ? @Object(new thisObj(arrayLikeLength)) : new @Array(arrayLikeLength);\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    var k = 0;\n&quot; \
</span><span class="cx">     &quot;    while (k &lt; arrayLikeLength) {\n&quot; \
</span><span class="cx">     &quot;        var value = arrayLike[k];\n&quot; \
</span><span class="lines">@@ -202,7 +183,6 @@
</span><span class="cx">     &quot;            @putByValDirect(result, k, value);\n&quot; \
</span><span class="cx">     &quot;        k += 1;\n&quot; \
</span><span class="cx">     &quot;    }\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    result.length = arrayLikeLength;\n&quot; \
</span><span class="cx">     &quot;    return result;\n&quot; \
</span><span class="cx">     &quot;})\n&quot; \
</span><span class="lines">@@ -212,7 +192,7 @@
</span><span class="cx"> #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, argumentCount) \
</span><span class="cx"> JSC::FunctionExecutable* codeName##Generator(JSC::VM&amp; vm) \
</span><span class="cx"> {\
</span><del>-    return vm.builtinExecutables()-&gt;codeName##Executable()-&gt;link(vm, vm.builtinExecutables()-&gt;codeName##Source()); }
</del><ins>+    return vm.builtinExecutables()-&gt;codeName##Executable()-&gt;link(vm, vm.builtinExecutables()-&gt;codeName##Source(), Nullopt, s_##codeName##Intrinsic); }
</ins><span class="cx"> JSC_FOREACH_BUILTINCONSTRUCTOR_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
</span><span class="cx"> #undef DEFINE_BUILTIN_GENERATOR
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedJavaScriptCoreInternalClashingNamesCombinedjsresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-InternalClashingNames-Combined.js-result (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-InternalClashingNames-Combined.js-result        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-InternalClashingNames-Combined.js-result        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -59,6 +59,8 @@
</span><span class="cx"> #define JSC_FOREACH_BUILTIN_FUNCTION_NAME(macro) \
</span><span class="cx">     macro(isReadableStreamLocked) \
</span><span class="cx"> 
</span><ins>+#define JSC_FOREACH_BUILTIN_FUNCTION_PRIVATE_GLOBAL_NAME(macro) \
+
</ins><span class="cx"> #define DECLARE_BUILTIN_GENERATOR(codeName, functionName, argumentCount) \
</span><span class="cx">     JSC::FunctionExecutable* codeName##Generator(JSC::VM&amp;);
</span><span class="cx"> 
</span><span class="lines">@@ -106,6 +108,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;BuiltinExecutables.h&quot;
</span><span class="cx"> #include &quot;Executable.h&quot;
</span><ins>+#include &quot;Intrinsic.h&quot;
</ins><span class="cx"> #include &quot;JSCellInlines.h&quot;
</span><span class="cx"> #include &quot;VM.h&quot;
</span><span class="cx"> 
</span><span class="lines">@@ -112,23 +115,23 @@
</span><span class="cx"> namespace JSC {
</span><span class="cx"> 
</span><span class="cx"> const JSC::ConstructAbility s_internalClashingNamesIsReadableStreamLockedCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
</span><del>-const int s_internalClashingNamesIsReadableStreamLockedCodeLength = 71;
</del><ins>+const int s_internalClashingNamesIsReadableStreamLockedCodeLength = 70;
+static const JSC::Intrinsic s_internalClashingNamesIsReadableStreamLockedCodeIntrinsic = JSC::NoIntrinsic;
</ins><span class="cx"> const char* s_internalClashingNamesIsReadableStreamLockedCode =
</span><span class="cx">     &quot;(function (stream)\n&quot; \
</span><span class="cx">     &quot;{\n&quot; \
</span><span class="cx">     &quot;   \&quot;use strict\&quot;;\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    return !!stream.@reader;\n&quot; \
</span><span class="cx">     &quot;})\n&quot; \
</span><span class="cx"> ;
</span><span class="cx"> 
</span><span class="cx"> const JSC::ConstructAbility s_internalClashingNamesIsReadableStreamLockedCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
</span><del>-const int s_internalClashingNamesIsReadableStreamLockedCodeLength = 71;
</del><ins>+const int s_internalClashingNamesIsReadableStreamLockedCodeLength = 70;
+static const JSC::Intrinsic s_internalClashingNamesIsReadableStreamLockedCodeIntrinsic = JSC::NoIntrinsic;
</ins><span class="cx"> const char* s_internalClashingNamesIsReadableStreamLockedCode =
</span><span class="cx">     &quot;(function (stream)\n&quot; \
</span><span class="cx">     &quot;{\n&quot; \
</span><span class="cx">     &quot;   \&quot;use strict\&quot;;\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    return !!stream.@reader;\n&quot; \
</span><span class="cx">     &quot;})\n&quot; \
</span><span class="cx"> ;
</span><span class="lines">@@ -137,7 +140,7 @@
</span><span class="cx"> #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, argumentCount) \
</span><span class="cx"> JSC::FunctionExecutable* codeName##Generator(JSC::VM&amp; vm) \
</span><span class="cx"> {\
</span><del>-    return vm.builtinExecutables()-&gt;codeName##Executable()-&gt;link(vm, vm.builtinExecutables()-&gt;codeName##Source()); }
</del><ins>+    return vm.builtinExecutables()-&gt;codeName##Executable()-&gt;link(vm, vm.builtinExecutables()-&gt;codeName##Source(), Nullopt, s_##codeName##Intrinsic); }
</ins><span class="cx"> JSC_FOREACH_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
</span><span class="cx"> #undef DEFINE_BUILTIN_GENERATOR
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedWebCoreArbitraryConditionalGuardSeparatejsresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -162,6 +162,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;WebCoreJSClientData.h&quot;
</span><span class="cx"> #include &lt;runtime/Executable.h&gt;
</span><ins>+#include &lt;runtime/Intrinsic.h&gt;
</ins><span class="cx"> #include &lt;runtime/JSCJSValueInlines.h&gt;
</span><span class="cx"> #include &lt;runtime/JSCellInlines.h&gt;
</span><span class="cx"> #include &lt;runtime/StructureInlines.h&gt;
</span><span class="lines">@@ -170,12 +171,12 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> const JSC::ConstructAbility s_arbitraryConditionalGuardIsReadableStreamLockedCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
</span><del>-const int s_arbitraryConditionalGuardIsReadableStreamLockedCodeLength = 71;
</del><ins>+const int s_arbitraryConditionalGuardIsReadableStreamLockedCodeLength = 70;
+static const JSC::Intrinsic s_arbitraryConditionalGuardIsReadableStreamLockedCodeIntrinsic = JSC::NoIntrinsic;
</ins><span class="cx"> const char* s_arbitraryConditionalGuardIsReadableStreamLockedCode =
</span><span class="cx">     &quot;(function (stream)\n&quot; \
</span><span class="cx">     &quot;{\n&quot; \
</span><span class="cx">     &quot;   \&quot;use strict\&quot;;\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    return !!stream.@reader;\n&quot; \
</span><span class="cx">     &quot;})\n&quot; \
</span><span class="cx"> ;
</span><span class="lines">@@ -185,7 +186,7 @@
</span><span class="cx"> JSC::FunctionExecutable* codeName##Generator(JSC::VM&amp; vm) \
</span><span class="cx"> {\
</span><span class="cx">     JSVMClientData* clientData = static_cast&lt;JSVMClientData*&gt;(vm.clientData); \
</span><del>-    return clientData-&gt;builtinFunctions().arbitraryConditionalGuardBuiltins().codeName##Executable()-&gt;link(vm, clientData-&gt;builtinFunctions().arbitraryConditionalGuardBuiltins().codeName##Source()); \
</del><ins>+    return clientData-&gt;builtinFunctions().arbitraryConditionalGuardBuiltins().codeName##Executable()-&gt;link(vm, clientData-&gt;builtinFunctions().arbitraryConditionalGuardBuiltins().codeName##Source(), Nullopt, s_##codeName##Intrinsic); \
</ins><span class="cx"> }
</span><span class="cx"> WEBCORE_FOREACH_ARBITRARYCONDITIONALGUARD_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
</span><span class="cx"> #undef DEFINE_BUILTIN_GENERATOR
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedWebCoreGuardedBuiltinSeparatejsresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -162,6 +162,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;WebCoreJSClientData.h&quot;
</span><span class="cx"> #include &lt;runtime/Executable.h&gt;
</span><ins>+#include &lt;runtime/Intrinsic.h&gt;
</ins><span class="cx"> #include &lt;runtime/JSCJSValueInlines.h&gt;
</span><span class="cx"> #include &lt;runtime/JSCellInlines.h&gt;
</span><span class="cx"> #include &lt;runtime/StructureInlines.h&gt;
</span><span class="lines">@@ -170,12 +171,12 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> const JSC::ConstructAbility s_guardedBuiltinIsReadableStreamLockedCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
</span><del>-const int s_guardedBuiltinIsReadableStreamLockedCodeLength = 71;
</del><ins>+const int s_guardedBuiltinIsReadableStreamLockedCodeLength = 70;
+static const JSC::Intrinsic s_guardedBuiltinIsReadableStreamLockedCodeIntrinsic = JSC::NoIntrinsic;
</ins><span class="cx"> const char* s_guardedBuiltinIsReadableStreamLockedCode =
</span><span class="cx">     &quot;(function (stream)\n&quot; \
</span><span class="cx">     &quot;{\n&quot; \
</span><span class="cx">     &quot;   \&quot;use strict\&quot;;\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    return !!stream.@reader;\n&quot; \
</span><span class="cx">     &quot;})\n&quot; \
</span><span class="cx"> ;
</span><span class="lines">@@ -185,7 +186,7 @@
</span><span class="cx"> JSC::FunctionExecutable* codeName##Generator(JSC::VM&amp; vm) \
</span><span class="cx"> {\
</span><span class="cx">     JSVMClientData* clientData = static_cast&lt;JSVMClientData*&gt;(vm.clientData); \
</span><del>-    return clientData-&gt;builtinFunctions().guardedBuiltinBuiltins().codeName##Executable()-&gt;link(vm, clientData-&gt;builtinFunctions().guardedBuiltinBuiltins().codeName##Source()); \
</del><ins>+    return clientData-&gt;builtinFunctions().guardedBuiltinBuiltins().codeName##Executable()-&gt;link(vm, clientData-&gt;builtinFunctions().guardedBuiltinBuiltins().codeName##Source(), Nullopt, s_##codeName##Intrinsic); \
</ins><span class="cx"> }
</span><span class="cx"> WEBCORE_FOREACH_GUARDEDBUILTIN_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
</span><span class="cx"> #undef DEFINE_BUILTIN_GENERATOR
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedWebCoreGuardedInternalBuiltinSeparatejsresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -194,6 +194,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;WebCoreJSClientData.h&quot;
</span><span class="cx"> #include &lt;runtime/Executable.h&gt;
</span><ins>+#include &lt;runtime/Intrinsic.h&gt;
</ins><span class="cx"> #include &lt;runtime/JSCJSValueInlines.h&gt;
</span><span class="cx"> #include &lt;runtime/JSCellInlines.h&gt;
</span><span class="cx"> #include &lt;runtime/StructureInlines.h&gt;
</span><span class="lines">@@ -202,12 +203,12 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> const JSC::ConstructAbility s_guardedInternalBuiltinIsReadableStreamLockedCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
</span><del>-const int s_guardedInternalBuiltinIsReadableStreamLockedCodeLength = 71;
</del><ins>+const int s_guardedInternalBuiltinIsReadableStreamLockedCodeLength = 70;
+static const JSC::Intrinsic s_guardedInternalBuiltinIsReadableStreamLockedCodeIntrinsic = JSC::NoIntrinsic;
</ins><span class="cx"> const char* s_guardedInternalBuiltinIsReadableStreamLockedCode =
</span><span class="cx">     &quot;(function (stream)\n&quot; \
</span><span class="cx">     &quot;{\n&quot; \
</span><span class="cx">     &quot;   \&quot;use strict\&quot;;\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    return !!stream.@reader;\n&quot; \
</span><span class="cx">     &quot;})\n&quot; \
</span><span class="cx"> ;
</span><span class="lines">@@ -217,7 +218,7 @@
</span><span class="cx"> JSC::FunctionExecutable* codeName##Generator(JSC::VM&amp; vm) \
</span><span class="cx"> {\
</span><span class="cx">     JSVMClientData* clientData = static_cast&lt;JSVMClientData*&gt;(vm.clientData); \
</span><del>-    return clientData-&gt;builtinFunctions().guardedInternalBuiltinBuiltins().codeName##Executable()-&gt;link(vm, clientData-&gt;builtinFunctions().guardedInternalBuiltinBuiltins().codeName##Source()); \
</del><ins>+    return clientData-&gt;builtinFunctions().guardedInternalBuiltinBuiltins().codeName##Executable()-&gt;link(vm, clientData-&gt;builtinFunctions().guardedInternalBuiltinBuiltins().codeName##Source(), Nullopt, s_##codeName##Intrinsic); \
</ins><span class="cx"> }
</span><span class="cx"> WEBCORE_FOREACH_GUARDEDINTERNALBUILTIN_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
</span><span class="cx"> #undef DEFINE_BUILTIN_GENERATOR
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedWebCoreUnguardedBuiltinSeparatejsresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -156,6 +156,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;WebCoreJSClientData.h&quot;
</span><span class="cx"> #include &lt;runtime/Executable.h&gt;
</span><ins>+#include &lt;runtime/Intrinsic.h&gt;
</ins><span class="cx"> #include &lt;runtime/JSCJSValueInlines.h&gt;
</span><span class="cx"> #include &lt;runtime/JSCellInlines.h&gt;
</span><span class="cx"> #include &lt;runtime/StructureInlines.h&gt;
</span><span class="lines">@@ -164,12 +165,12 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> const JSC::ConstructAbility s_unguardedBuiltinIsReadableStreamLockedCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
</span><del>-const int s_unguardedBuiltinIsReadableStreamLockedCodeLength = 71;
</del><ins>+const int s_unguardedBuiltinIsReadableStreamLockedCodeLength = 70;
+static const JSC::Intrinsic s_unguardedBuiltinIsReadableStreamLockedCodeIntrinsic = JSC::NoIntrinsic;
</ins><span class="cx"> const char* s_unguardedBuiltinIsReadableStreamLockedCode =
</span><span class="cx">     &quot;(function (stream)\n&quot; \
</span><span class="cx">     &quot;{\n&quot; \
</span><span class="cx">     &quot;   \&quot;use strict\&quot;;\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    return !!stream.@reader;\n&quot; \
</span><span class="cx">     &quot;})\n&quot; \
</span><span class="cx"> ;
</span><span class="lines">@@ -179,7 +180,7 @@
</span><span class="cx"> JSC::FunctionExecutable* codeName##Generator(JSC::VM&amp; vm) \
</span><span class="cx"> {\
</span><span class="cx">     JSVMClientData* clientData = static_cast&lt;JSVMClientData*&gt;(vm.clientData); \
</span><del>-    return clientData-&gt;builtinFunctions().unguardedBuiltinBuiltins().codeName##Executable()-&gt;link(vm, clientData-&gt;builtinFunctions().unguardedBuiltinBuiltins().codeName##Source()); \
</del><ins>+    return clientData-&gt;builtinFunctions().unguardedBuiltinBuiltins().codeName##Executable()-&gt;link(vm, clientData-&gt;builtinFunctions().unguardedBuiltinBuiltins().codeName##Source(), Nullopt, s_##codeName##Intrinsic); \
</ins><span class="cx"> }
</span><span class="cx"> WEBCORE_FOREACH_UNGUARDEDBUILTIN_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
</span><span class="cx"> #undef DEFINE_BUILTIN_GENERATOR
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreScriptstestsbuiltinsexpectedWebCorexmlCasingTestSeparatejsresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -208,6 +208,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;WebCoreJSClientData.h&quot;
</span><span class="cx"> #include &lt;runtime/Executable.h&gt;
</span><ins>+#include &lt;runtime/Intrinsic.h&gt;
</ins><span class="cx"> #include &lt;runtime/JSCJSValueInlines.h&gt;
</span><span class="cx"> #include &lt;runtime/JSCellInlines.h&gt;
</span><span class="cx"> #include &lt;runtime/StructureInlines.h&gt;
</span><span class="lines">@@ -216,23 +217,23 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> const JSC::ConstructAbility s_xmlCasingTestXMLCasingTestCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
</span><del>-const int s_xmlCasingTestXMLCasingTestCodeLength = 71;
</del><ins>+const int s_xmlCasingTestXMLCasingTestCodeLength = 70;
+static const JSC::Intrinsic s_xmlCasingTestXMLCasingTestCodeIntrinsic = JSC::NoIntrinsic;
</ins><span class="cx"> const char* s_xmlCasingTestXMLCasingTestCode =
</span><span class="cx">     &quot;(function (stream)\n&quot; \
</span><span class="cx">     &quot;{\n&quot; \
</span><span class="cx">     &quot;   \&quot;use strict\&quot;;\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    return !!stream.@reader;\n&quot; \
</span><span class="cx">     &quot;})\n&quot; \
</span><span class="cx"> ;
</span><span class="cx"> 
</span><span class="cx"> const JSC::ConstructAbility s_xmlCasingTestCssCasingTestCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
</span><del>-const int s_xmlCasingTestCssCasingTestCodeLength = 402;
</del><ins>+const int s_xmlCasingTestCssCasingTestCodeLength = 401;
+static const JSC::Intrinsic s_xmlCasingTestCssCasingTestCodeIntrinsic = JSC::NoIntrinsic;
</ins><span class="cx"> const char* s_xmlCasingTestCssCasingTestCode =
</span><span class="cx">     &quot;(function (stream, reason)\n&quot; \
</span><span class="cx">     &quot;{\n&quot; \
</span><span class="cx">     &quot;    \&quot;use strict\&quot;;\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    if (stream.@state === @readableStreamClosed)\n&quot; \
</span><span class="cx">     &quot;        return Promise.resolve();\n&quot; \
</span><span class="cx">     &quot;    if (stream.@state === @readableStreamErrored)\n&quot; \
</span><span class="lines">@@ -244,12 +245,12 @@
</span><span class="cx"> ;
</span><span class="cx"> 
</span><span class="cx"> const JSC::ConstructAbility s_xmlCasingTestUrlCasingTestCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
</span><del>-const int s_xmlCasingTestUrlCasingTestCodeLength = 338;
</del><ins>+const int s_xmlCasingTestUrlCasingTestCodeLength = 337;
+static const JSC::Intrinsic s_xmlCasingTestUrlCasingTestCodeIntrinsic = JSC::NoIntrinsic;
</ins><span class="cx"> const char* s_xmlCasingTestUrlCasingTestCode =
</span><span class="cx">     &quot;(function (object, key, args)\n&quot; \
</span><span class="cx">     &quot;{\n&quot; \
</span><span class="cx">     &quot;    \&quot;use strict\&quot;;\n&quot; \
</span><del>-    &quot;\n&quot; \
</del><span class="cx">     &quot;    try {\n&quot; \
</span><span class="cx">     &quot;        var method = object[key];\n&quot; \
</span><span class="cx">     &quot;        if (typeof method === \&quot;undefined\&quot;)\n&quot; \
</span><span class="lines">@@ -268,7 +269,7 @@
</span><span class="cx"> JSC::FunctionExecutable* codeName##Generator(JSC::VM&amp; vm) \
</span><span class="cx"> {\
</span><span class="cx">     JSVMClientData* clientData = static_cast&lt;JSVMClientData*&gt;(vm.clientData); \
</span><del>-    return clientData-&gt;builtinFunctions().xmlCasingTestBuiltins().codeName##Executable()-&gt;link(vm, clientData-&gt;builtinFunctions().xmlCasingTestBuiltins().codeName##Source()); \
</del><ins>+    return clientData-&gt;builtinFunctions().xmlCasingTestBuiltins().codeName##Executable()-&gt;link(vm, clientData-&gt;builtinFunctions().xmlCasingTestBuiltins().codeName##Source(), Nullopt, s_##codeName##Intrinsic); \
</ins><span class="cx"> }
</span><span class="cx"> WEBCORE_FOREACH_XMLCASINGTEST_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR)
</span><span class="cx"> #undef DEFINE_BUILTIN_GENERATOR
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebuiltinsArrayIteratorPrototypejs"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/builtins/ArrayIteratorPrototype.js (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/builtins/ArrayIteratorPrototype.js        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/builtins/ArrayIteratorPrototype.js        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -41,6 +41,7 @@
</span><span class="cx">     return next.@call(this);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+@globalPrivate
</ins><span class="cx"> function arrayIteratorValueNext()
</span><span class="cx"> {
</span><span class="cx">     &quot;use strict&quot;;
</span><span class="lines">@@ -63,6 +64,7 @@
</span><span class="cx">     return { done, value };
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+@globalPrivate
</ins><span class="cx"> function arrayIteratorKeyNext()
</span><span class="cx"> {
</span><span class="cx">     &quot;use strict&quot;;
</span><span class="lines">@@ -85,6 +87,7 @@
</span><span class="cx">     return { done, value };
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+@globalPrivate
</ins><span class="cx"> function arrayIteratorKeyValueNext()
</span><span class="cx"> {
</span><span class="cx">     &quot;use strict&quot;;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebuiltinsArrayPrototypejs"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/builtins/ArrayPrototype.js (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/builtins/ArrayPrototype.js        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/builtins/ArrayPrototype.js        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -25,6 +25,7 @@
</span><span class="cx">  */
</span><span class="cx"> 
</span><span class="cx"> @constructor
</span><ins>+@globalPrivate
</ins><span class="cx"> function createArrayIterator(iteratedObject, kind, iterationFunction)
</span><span class="cx"> {
</span><span class="cx">     this.@iteratedObject = iteratedObject;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebuiltinsBuiltinNamesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/builtins/BuiltinNames.h (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/builtins/BuiltinNames.h        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/builtins/BuiltinNames.h        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2014 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2014, 2016 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -27,11 +27,139 @@
</span><span class="cx"> #define BuiltinNames_h
</span><span class="cx"> 
</span><span class="cx"> #include &quot;BuiltinUtils.h&quot;
</span><ins>+#include &quot;BytecodeIntrinsicRegistry.h&quot;
</ins><span class="cx"> #include &quot;CommonIdentifiers.h&quot;
</span><span class="cx"> #include &quot;JSCBuiltins.h&quot;
</span><span class="cx"> 
</span><span class="cx"> namespace JSC {
</span><span class="cx"> 
</span><ins>+#define JSC_COMMON_PRIVATE_IDENTIFIERS_EACH_PROPERTY_NAME(macro) \
+    JSC_COMMON_BYTECODE_INTRINSIC_FUNCTIONS_EACH_NAME(macro) \
+    JSC_COMMON_BYTECODE_INTRINSIC_CONSTANTS_EACH_NAME(macro) \
+    macro(iteratedObject) \
+    macro(arrayIteratorNextIndex) \
+    macro(arrayIterationKind) \
+    macro(arrayIteratorNext) \
+    macro(arrayIteratorIsDone) \
+    macro(arrayIteratorKind) \
+    macro(charCodeAt) \
+    macro(iteratedString) \
+    macro(stringIteratorNextIndex) \
+    macro(promise) \
+    macro(fulfillmentHandler) \
+    macro(rejectionHandler) \
+    macro(index) \
+    macro(deferred) \
+    macro(countdownHolder) \
+    macro(Object) \
+    macro(ownEnumerablePropertyKeys) \
+    macro(Number) \
+    macro(Array) \
+    macro(String) \
+    macro(RegExp) \
+    macro(Map) \
+    macro(Promise) \
+    macro(Reflect) \
+    macro(InternalPromise) \
+    macro(abs) \
+    macro(floor) \
+    macro(trunc) \
+    macro(isFinite) \
+    macro(isNaN) \
+    macro(create) \
+    macro(defineProperty) \
+    macro(getPrototypeOf) \
+    macro(getOwnPropertyDescriptor) \
+    macro(getOwnPropertyNames) \
+    macro(ownKeys) \
+    macro(Error) \
+    macro(RangeError) \
+    macro(TypeError) \
+    macro(typedArrayLength) \
+    macro(typedArraySort) \
+    macro(typedArrayGetOriginalConstructor) \
+    macro(BuiltinLog) \
+    macro(homeObject) \
+    macro(getTemplateObject) \
+    macro(enqueueJob) \
+    macro(handler) \
+    macro(promiseState) \
+    macro(promiseFulfillReactions) \
+    macro(promiseRejectReactions) \
+    macro(promiseResult) \
+    macro(push) \
+    macro(repeatCharacter) \
+    macro(capabilities) \
+    macro(starDefault) \
+    macro(InspectorInstrumentation) \
+    macro(get) \
+    macro(set) \
+    macro(shift) \
+    macro(allocateTypedArray) \
+    macro(Int8Array) \
+    macro(Int16Array) \
+    macro(Int32Array) \
+    macro(Uint8Array) \
+    macro(Uint8ClampedArray) \
+    macro(Uint16Array) \
+    macro(Uint32Array) \
+    macro(Float32Array) \
+    macro(Float64Array) \
+    macro(exec) \
+    macro(generator) \
+    macro(generatorNext) \
+    macro(generatorState) \
+    macro(generatorFrame) \
+    macro(generatorValue) \
+    macro(generatorThis) \
+    macro(generatorResumeMode) \
+    macro(Collator) \
+    macro(DateTimeFormat) \
+    macro(NumberFormat) \
+    macro(intlSubstituteValue) \
+    macro(thisTimeValue) \
+    macro(thisNumberValue) \
+    macro(newTargetLocal) \
+    macro(derivedConstructor) \
+    macro(isBoundFunction) \
+    macro(hasInstanceBoundFunction) \
+    macro(instanceOf) \
+    macro(isArray) \
+    macro(isArrayConstructor) \
+    macro(isConstructor) \
+    macro(isRegExpObject) \
+    macro(concatMemcpy) \
+    macro(appendMemcpy) \
+    macro(predictFinalLengthFromArgumunts) \
+    macro(print) \
+    macro(isSet) \
+    macro(isMap) \
+    macro(regExpCreate) \
+    macro(SetIterator) \
+    macro(setIteratorNext) \
+    macro(replaceUsingRegExp) \
+    macro(replaceUsingStringSearch) \
+    macro(MapIterator) \
+    macro(mapIteratorNext) \
+    macro(regExpBuiltinExec) \
+    macro(regExpMatchFast) \
+    macro(regExpProtoFlagsGetter) \
+    macro(regExpProtoGlobalGetter) \
+    macro(regExpProtoIgnoreCaseGetter) \
+    macro(regExpProtoMultilineGetter) \
+    macro(regExpProtoSourceGetter) \
+    macro(regExpProtoStickyGetter) \
+    macro(regExpProtoUnicodeGetter) \
+    macro(regExpPrototypeSymbolReplace) \
+    macro(regExpReplaceFast) \
+    macro(regExpSearchFast) \
+    macro(regExpSplitFast) \
+    macro(regExpTestFast) \
+    macro(stringIncludesInternal) \
+    macro(stringSplitFast) \
+    macro(stringSubstrInternal)
+
+
</ins><span class="cx"> #define INITIALIZE_PRIVATE_TO_PUBLIC_ENTRY(name) m_privateToPublicMap.add(m_##name##PrivateName.impl(), &amp;m_##name);
</span><span class="cx"> #define INITIALIZE_PUBLIC_TO_PRIVATE_ENTRY(name) m_publicToPrivateMap.add(m_##name.impl(), &amp;m_##name##PrivateName);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebuiltinsGeneratorPrototypejs"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/builtins/GeneratorPrototype.js (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/builtins/GeneratorPrototype.js        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/builtins/GeneratorPrototype.js        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -1,5 +1,6 @@
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2015-2016 Yusuke Suzuki &lt;utatane.tea@gmail.com&gt;.
</span><ins>+ * Copyright (C) 2016 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -25,6 +26,7 @@
</span><span class="cx"> 
</span><span class="cx"> // 25.3.3.3 GeneratorResume ( generator, value )
</span><span class="cx"> // 25.3.3.4 GeneratorResumeAbrupt(generator, abruptCompletion)
</span><ins>+@globalPrivate
</ins><span class="cx"> function generatorResume(generator, sentValue, resumeMode)
</span><span class="cx"> {
</span><span class="cx">     &quot;use strict&quot;;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebuiltinsGlobalObjectjs"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/builtins/GlobalObject.js (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/builtins/GlobalObject.js        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/builtins/GlobalObject.js        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -26,6 +26,7 @@
</span><span class="cx"> 
</span><span class="cx"> // @internal
</span><span class="cx"> 
</span><ins>+@globalPrivate
</ins><span class="cx"> function toInteger(target)
</span><span class="cx"> {
</span><span class="cx">     &quot;use strict&quot;;
</span><span class="lines">@@ -38,6 +39,7 @@
</span><span class="cx">     return @trunc(numberValue);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+@globalPrivate
</ins><span class="cx"> function toLength(target)
</span><span class="cx"> {
</span><span class="cx">     &quot;use strict&quot;;
</span><span class="lines">@@ -48,6 +50,7 @@
</span><span class="cx">     return length &gt; 0 ? (length &lt; maxSafeInteger ? length : maxSafeInteger) : 0;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+@globalPrivate
</ins><span class="cx"> function isDictionary(object)
</span><span class="cx"> {
</span><span class="cx">     &quot;use strict&quot;;
</span><span class="lines">@@ -57,11 +60,13 @@
</span><span class="cx"> 
</span><span class="cx"> // FIXME: this needs to have it's name changed to &quot;get [Symbol.species]&quot;.
</span><span class="cx"> // see: https://bugs.webkit.org/show_bug.cgi?id=151363
</span><ins>+@globalPrivate
</ins><span class="cx"> function speciesGetter()
</span><span class="cx"> {
</span><span class="cx">     return this;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+@globalPrivate
</ins><span class="cx"> function speciesConstructor(obj, defaultConstructor)
</span><span class="cx"> {
</span><span class="cx">     var constructor = obj.constructor;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebuiltinsPromiseOperationsjs"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/builtins/PromiseOperations.js (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/builtins/PromiseOperations.js        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/builtins/PromiseOperations.js        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -1,5 +1,6 @@
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2015 Yusuke Suzuki &lt;utatane.tea@gmail.com&gt;.
</span><ins>+ * Copyright (C) 2016 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -25,6 +26,7 @@
</span><span class="cx"> 
</span><span class="cx"> // @internal
</span><span class="cx"> 
</span><ins>+@globalPrivate
</ins><span class="cx"> function isPromise(promise)
</span><span class="cx"> {
</span><span class="cx">     &quot;use strict&quot;;
</span><span class="lines">@@ -32,6 +34,7 @@
</span><span class="cx">     return @isObject(promise) &amp;&amp; !!promise.@promiseState;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+@globalPrivate
</ins><span class="cx"> function newPromiseReaction(capability, handler)
</span><span class="cx"> {
</span><span class="cx">     &quot;use strict&quot;;
</span><span class="lines">@@ -42,6 +45,7 @@
</span><span class="cx">     };
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+@globalPrivate
</ins><span class="cx"> function newPromiseCapability(constructor)
</span><span class="cx"> {
</span><span class="cx">     &quot;use strict&quot;;
</span><span class="lines">@@ -80,6 +84,7 @@
</span><span class="cx">     return promiseCapability;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+@globalPrivate
</ins><span class="cx"> function triggerPromiseReactions(reactions, argument)
</span><span class="cx"> {
</span><span class="cx">     &quot;use strict&quot;;
</span><span class="lines">@@ -88,6 +93,7 @@
</span><span class="cx">         @enqueueJob(@promiseReactionJob, [reactions[index], argument]);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+@globalPrivate
</ins><span class="cx"> function rejectPromise(promise, reason)
</span><span class="cx"> {
</span><span class="cx">     &quot;use strict&quot;;
</span><span class="lines">@@ -103,6 +109,7 @@
</span><span class="cx">     @triggerPromiseReactions(reactions, reason);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+@globalPrivate
</ins><span class="cx"> function fulfillPromise(promise, value)
</span><span class="cx"> {
</span><span class="cx">     &quot;use strict&quot;;
</span><span class="lines">@@ -118,6 +125,7 @@
</span><span class="cx">     @triggerPromiseReactions(reactions, value);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+@globalPrivate
</ins><span class="cx"> function createResolvingFunctions(promise)
</span><span class="cx"> {
</span><span class="cx">     &quot;use strict&quot;;
</span><span class="lines">@@ -164,6 +172,7 @@
</span><span class="cx">     };
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+@globalPrivate
</ins><span class="cx"> function promiseReactionJob(reaction, argument)
</span><span class="cx"> {
</span><span class="cx">     &quot;use strict&quot;;
</span><span class="lines">@@ -180,6 +189,7 @@
</span><span class="cx">     return promiseCapability.@resolve.@call(@undefined, result);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+@globalPrivate
</ins><span class="cx"> function promiseResolveThenableJob(promiseToResolve, thenable, then)
</span><span class="cx"> {
</span><span class="cx">     &quot;use strict&quot;;
</span><span class="lines">@@ -193,6 +203,7 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+@globalPrivate
</ins><span class="cx"> function initializePromise(executor)
</span><span class="cx"> {
</span><span class="cx">     &quot;use strict&quot;;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebuiltinsRegExpPrototypejs"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/builtins/RegExpPrototype.js (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/builtins/RegExpPrototype.js        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/builtins/RegExpPrototype.js        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -23,6 +23,7 @@
</span><span class="cx">  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
</span><span class="cx">  */
</span><span class="cx"> 
</span><ins>+@globalPrivate
</ins><span class="cx"> function advanceStringIndex(string, index, unicode)
</span><span class="cx"> {
</span><span class="cx">     // This function implements AdvanceStringIndex described in ES6 21.2.5.2.3.
</span><span class="lines">@@ -45,6 +46,7 @@
</span><span class="cx">     return index + 2;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+@globalPrivate
</ins><span class="cx"> function regExpExec(regexp, str)
</span><span class="cx"> {
</span><span class="cx">     &quot;use strict&quot;;
</span><span class="lines">@@ -60,6 +62,7 @@
</span><span class="cx">     return builtinExec.@call(regexp, str);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+@globalPrivate
</ins><span class="cx"> function hasObservableSideEffectsForRegExpMatch(regexp) {
</span><span class="cx">     // This is accessed by the RegExpExec internal function.
</span><span class="cx">     let regexpExec = @tryGetById(regexp, &quot;exec&quot;);
</span><span class="lines">@@ -326,6 +329,7 @@
</span><span class="cx">     return result.index;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+@globalPrivate
</ins><span class="cx"> function hasObservableSideEffectsForRegExpSplit(regexp) {
</span><span class="cx">     // This is accessed by the RegExpExec internal function.
</span><span class="cx">     let regexpExec = @tryGetById(regexp, &quot;exec&quot;);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebuiltinsStringPrototypejs"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/builtins/StringPrototype.js (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/builtins/StringPrototype.js        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/builtins/StringPrototype.js        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -46,6 +46,7 @@
</span><span class="cx">     return createdRegExp.@matchSymbol(thisString);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+@globalPrivate
</ins><span class="cx"> function repeatSlowPath(string, count)
</span><span class="cx"> {
</span><span class="cx">     &quot;use strict&quot;;
</span><span class="lines">@@ -84,7 +85,7 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-
</del><ins>+@globalPrivate
</ins><span class="cx"> function repeatCharactersSlowPath(string, count)
</span><span class="cx"> {
</span><span class="cx">     &quot;use strict&quot;;
</span><span class="lines">@@ -202,6 +203,7 @@
</span><span class="cx">     return string + truncatedStringFiller;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+@globalPrivate
</ins><span class="cx"> function hasObservableSideEffectsForStringReplace(regexp, replacer) {
</span><span class="cx">     if (replacer !== @regExpPrototypeSymbolReplace)
</span><span class="cx">         return true;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodeBytecodeIntrinsicRegistrycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/BytecodeIntrinsicRegistry.cpp (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/BytecodeIntrinsicRegistry.cpp        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/bytecode/BytecodeIntrinsicRegistry.cpp        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -26,8 +26,10 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;config.h&quot;
</span><span class="cx"> #include &quot;BytecodeIntrinsicRegistry.h&quot;
</span><ins>+
+#include &quot;ArrayIteratorPrototype.h&quot;
+#include &quot;BuiltinNames.h&quot;
</ins><span class="cx"> #include &quot;BytecodeGenerator.h&quot;
</span><del>-#include &quot;JSArrayIterator.h&quot;
</del><span class="cx"> #include &quot;JSCJSValueInlines.h&quot;
</span><span class="cx"> #include &quot;JSGeneratorFunction.h&quot;
</span><span class="cx"> #include &quot;JSPromise.h&quot;
</span><span class="lines">@@ -37,7 +39,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace JSC {
</span><span class="cx"> 
</span><del>-#define INITIALIZE_BYTECODE_INTRINSIC_NAMES_TO_SET(name) m_bytecodeIntrinsicMap.add(vm.propertyNames-&gt;name##PrivateName.impl(), &amp;BytecodeIntrinsicNode::emit_intrinsic_##name);
</del><ins>+#define INITIALIZE_BYTECODE_INTRINSIC_NAMES_TO_SET(name) m_bytecodeIntrinsicMap.add(vm.propertyNames-&gt;builtinNames().name##PrivateName().impl(), &amp;BytecodeIntrinsicNode::emit_intrinsic_##name);
</ins><span class="cx"> 
</span><span class="cx"> BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry(VM&amp; vm)
</span><span class="cx">     : m_vm(vm)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecompilerBytecodeGeneratorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -910,12 +910,12 @@
</span><span class="cx"> 
</span><span class="cx">         if (m_codeType == FunctionCode &amp;&amp; isNewTargetUsedInInnerArrowFunction()) {
</span><span class="cx">             offset = functionSymbolTable-&gt;takeNextScopeOffset();
</span><del>-            functionSymbolTable-&gt;set(NoLockingNecessary, propertyNames().newTargetLocalPrivateName.impl(), SymbolTableEntry(VarOffset(offset)));
</del><ins>+            functionSymbolTable-&gt;set(NoLockingNecessary, propertyNames().builtinNames().newTargetLocalPrivateName().impl(), SymbolTableEntry(VarOffset(offset)));
</ins><span class="cx">         }
</span><span class="cx">         
</span><span class="cx">         if (isConstructor() &amp;&amp; constructorKind() == ConstructorKind::Derived &amp;&amp; isSuperUsedInInnerArrowFunction()) {
</span><span class="cx">             offset = functionSymbolTable-&gt;takeNextScopeOffset(NoLockingNecessary);
</span><del>-            functionSymbolTable-&gt;set(NoLockingNecessary, propertyNames().derivedConstructorPrivateName.impl(), SymbolTableEntry(VarOffset(offset)));
</del><ins>+            functionSymbolTable-&gt;set(NoLockingNecessary, propertyNames().builtinNames().derivedConstructorPrivateName().impl(), SymbolTableEntry(VarOffset(offset)));
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         return;
</span><span class="lines">@@ -930,13 +930,13 @@
</span><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     if (m_codeType == FunctionCode &amp;&amp; isNewTargetUsedInInnerArrowFunction()) {
</span><del>-        auto addTarget = environment.add(propertyNames().newTargetLocalPrivateName);
</del><ins>+        auto addTarget = environment.add(propertyNames().builtinNames().newTargetLocalPrivateName());
</ins><span class="cx">         addTarget.iterator-&gt;value.setIsCaptured();
</span><span class="cx">         addTarget.iterator-&gt;value.setIsLet();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (isConstructor() &amp;&amp; constructorKind() == ConstructorKind::Derived &amp;&amp; isSuperUsedInInnerArrowFunction()) {
</span><del>-        auto derivedConstructor = environment.add(propertyNames().derivedConstructorPrivateName);
</del><ins>+        auto derivedConstructor = environment.add(propertyNames().builtinNames().derivedConstructorPrivateName());
</ins><span class="cx">         derivedConstructor.iterator-&gt;value.setIsCaptured();
</span><span class="cx">         derivedConstructor.iterator-&gt;value.setIsLet();
</span><span class="cx">     }
</span><span class="lines">@@ -2977,9 +2977,9 @@
</span><span class="cx"> 
</span><span class="cx"> ExpectedFunction BytecodeGenerator::expectedFunctionForIdentifier(const Identifier&amp; identifier)
</span><span class="cx"> {
</span><del>-    if (identifier == m_vm-&gt;propertyNames-&gt;Object || identifier == m_vm-&gt;propertyNames-&gt;ObjectPrivateName)
</del><ins>+    if (identifier == propertyNames().Object || identifier == propertyNames().builtinNames().ObjectPrivateName())
</ins><span class="cx">         return ExpectObjectConstructor;
</span><del>-    if (identifier == m_vm-&gt;propertyNames-&gt;Array || identifier == m_vm-&gt;propertyNames-&gt;ArrayPrivateName)
</del><ins>+    if (identifier == propertyNames().Array || identifier == propertyNames().builtinNames().ArrayPrivateName())
</ins><span class="cx">         return ExpectArrayConstructor;
</span><span class="cx">     return NoExpectedFunction;
</span><span class="cx"> }
</span><span class="lines">@@ -4045,7 +4045,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;RegisterID&gt; getTemplateObject = nullptr;
</span><del>-    Variable var = variable(propertyNames().getTemplateObjectPrivateName);
</del><ins>+    Variable var = variable(propertyNames().builtinNames().getTemplateObjectPrivateName());
</ins><span class="cx">     if (RegisterID* local = var.local())
</span><span class="cx">         getTemplateObject = emitMove(newTemporary(), local);
</span><span class="cx">     else {
</span><span class="lines">@@ -4235,16 +4235,16 @@
</span><span class="cx">     
</span><span class="cx"> RegisterID* BytecodeGenerator::emitLoadNewTargetFromArrowFunctionLexicalEnvironment()
</span><span class="cx"> {
</span><del>-    Variable newTargetVar = variable(propertyNames().newTargetLocalPrivateName);
</del><ins>+    Variable newTargetVar = variable(propertyNames().builtinNames().newTargetLocalPrivateName());
</ins><span class="cx"> 
</span><del>-    return emitGetFromScope(m_newTargetRegister, emitLoadArrowFunctionLexicalEnvironment(propertyNames().newTargetLocalPrivateName), newTargetVar, ThrowIfNotFound);
</del><ins>+    return emitGetFromScope(m_newTargetRegister, emitLoadArrowFunctionLexicalEnvironment(propertyNames().builtinNames().newTargetLocalPrivateName()), newTargetVar, ThrowIfNotFound);
</ins><span class="cx">     
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> RegisterID* BytecodeGenerator::emitLoadDerivedConstructorFromArrowFunctionLexicalEnvironment()
</span><span class="cx"> {
</span><del>-    Variable protoScopeVar = variable(propertyNames().derivedConstructorPrivateName);
-    return emitGetFromScope(newTemporary(), emitLoadArrowFunctionLexicalEnvironment(propertyNames().derivedConstructorPrivateName), protoScopeVar, ThrowIfNotFound);
</del><ins>+    Variable protoScopeVar = variable(propertyNames().builtinNames().derivedConstructorPrivateName());
+    return emitGetFromScope(newTemporary(), emitLoadArrowFunctionLexicalEnvironment(propertyNames().builtinNames().derivedConstructorPrivateName()), protoScopeVar, ThrowIfNotFound);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> RegisterID* BytecodeGenerator::ensureThis()
</span><span class="lines">@@ -4288,7 +4288,7 @@
</span><span class="cx">     if (isNewTargetUsedInInnerArrowFunction()) {
</span><span class="cx">         ASSERT(m_arrowFunctionContextLexicalEnvironmentRegister);
</span><span class="cx">         
</span><del>-        Variable newTargetVar = variable(propertyNames().newTargetLocalPrivateName);
</del><ins>+        Variable newTargetVar = variable(propertyNames().builtinNames().newTargetLocalPrivateName());
</ins><span class="cx">         emitPutToScope(m_arrowFunctionContextLexicalEnvironmentRegister, newTargetVar, newTarget(), DoNotThrowIfNotFound, InitializationMode::Initialization);
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="lines">@@ -4299,7 +4299,7 @@
</span><span class="cx">         if (isSuperUsedInInnerArrowFunction()) {
</span><span class="cx">             ASSERT(m_arrowFunctionContextLexicalEnvironmentRegister);
</span><span class="cx">             
</span><del>-            Variable protoScope = variable(propertyNames().derivedConstructorPrivateName);
</del><ins>+            Variable protoScope = variable(propertyNames().builtinNames().derivedConstructorPrivateName());
</ins><span class="cx">             emitPutToScope(m_arrowFunctionContextLexicalEnvironmentRegister, protoScope, &amp;m_calleeRegister, DoNotThrowIfNotFound, InitializationMode::Initialization);
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="lines">@@ -4564,7 +4564,7 @@
</span><span class="cx"> void BytecodeGenerator::emitGeneratorStateChange(int32_t state)
</span><span class="cx"> {
</span><span class="cx">     RegisterID* completedState = emitLoad(nullptr, jsNumber(state));
</span><del>-    emitPutById(generatorRegister(), propertyNames().generatorStatePrivateName, completedState);
</del><ins>+    emitPutById(generatorRegister(), propertyNames().builtinNames().generatorStatePrivateName(), completedState);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void BytecodeGenerator::emitGeneratorStateLabel()
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecompilerNodesCodegencpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -161,12 +161,12 @@
</span><span class="cx"> {
</span><span class="cx">     if (generator.isDerivedClassContext() || generator.isDerivedConstructorContext()) {
</span><span class="cx">         RegisterID* derivedConstructor = generator.emitLoadDerivedConstructorFromArrowFunctionLexicalEnvironment();
</span><del>-        return generator.emitGetById(generator.newTemporary(), derivedConstructor, generator.propertyNames().homeObjectPrivateName);
</del><ins>+        return generator.emitGetById(generator.newTemporary(), derivedConstructor, generator.propertyNames().builtinNames().homeObjectPrivateName());
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     RegisterID callee;
</span><span class="cx">     callee.setIndex(JSStack::Callee);
</span><del>-    return generator.emitGetById(generator.newTemporary(), &amp;callee, generator.propertyNames().homeObjectPrivateName);
</del><ins>+    return generator.emitGetById(generator.newTemporary(), &amp;callee, generator.propertyNames().builtinNames().homeObjectPrivateName());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static RegisterID* emitSuperBaseForCallee(BytecodeGenerator&amp; generator)
</span><span class="lines">@@ -457,7 +457,7 @@
</span><span class="cx"> 
</span><span class="cx"> static inline void emitPutHomeObject(BytecodeGenerator&amp; generator, RegisterID* function, RegisterID* homeObject)
</span><span class="cx"> {
</span><del>-    generator.emitPutById(function, generator.propertyNames().homeObjectPrivateName, homeObject);
</del><ins>+    generator.emitPutById(function, generator.propertyNames().builtinNames().homeObjectPrivateName(), homeObject);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> RegisterID* PropertyListNode::emitBytecode(BytecodeGenerator&amp; generator, RegisterID* dst)
</span><span class="lines">@@ -3282,14 +3282,14 @@
</span><span class="cx">         // But to make it efficient, we will introduce JSGenerator class, add opcode new_generator and use its C++ fields instead of these private properties.
</span><span class="cx">         // https://bugs.webkit.org/show_bug.cgi?id=151545
</span><span class="cx"> 
</span><del>-        generator.emitDirectPutById(generator.generatorRegister(), generator.propertyNames().generatorNextPrivateName, next.get(), PropertyNode::KnownDirect);
</del><ins>+        generator.emitDirectPutById(generator.generatorRegister(), generator.propertyNames().builtinNames().generatorNextPrivateName(), next.get(), PropertyNode::KnownDirect);
</ins><span class="cx"> 
</span><del>-        generator.emitDirectPutById(generator.generatorRegister(), generator.propertyNames().generatorThisPrivateName, generator.thisRegister(), PropertyNode::KnownDirect);
</del><ins>+        generator.emitDirectPutById(generator.generatorRegister(), generator.propertyNames().builtinNames().generatorThisPrivateName(), generator.thisRegister(), PropertyNode::KnownDirect);
</ins><span class="cx"> 
</span><span class="cx">         RegisterID* initialState = generator.emitLoad(nullptr, jsNumber(0));
</span><del>-        generator.emitDirectPutById(generator.generatorRegister(), generator.propertyNames().generatorStatePrivateName, initialState, PropertyNode::KnownDirect);
</del><ins>+        generator.emitDirectPutById(generator.generatorRegister(), generator.propertyNames().builtinNames().generatorStatePrivateName(), initialState, PropertyNode::KnownDirect);
</ins><span class="cx"> 
</span><del>-        generator.emitDirectPutById(generator.generatorRegister(), generator.propertyNames().generatorFramePrivateName, generator.emitLoad(nullptr, jsNull()), PropertyNode::KnownDirect);
</del><ins>+        generator.emitDirectPutById(generator.generatorRegister(), generator.propertyNames().builtinNames().generatorFramePrivateName(), generator.emitLoad(nullptr, jsNull()), PropertyNode::KnownDirect);
</ins><span class="cx"> 
</span><span class="cx">         ASSERT(startOffset() &gt;= lineStartOffset());
</span><span class="cx">         generator.emitDebugHook(WillLeaveCallFrame, lastLine(), startOffset(), lineStartOffset());
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGOperationscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGOperations.cpp (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGOperations.cpp        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/dfg/DFGOperations.cpp        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -48,6 +48,7 @@
</span><span class="cx"> #include &quot;JIT.h&quot;
</span><span class="cx"> #include &quot;JITExceptions.h&quot;
</span><span class="cx"> #include &quot;JSCInlines.h&quot;
</span><ins>+#include &quot;JSGenericTypedArrayViewConstructorInlines.h&quot;
</ins><span class="cx"> #include &quot;JSLexicalEnvironment.h&quot;
</span><span class="cx"> #include &quot;ObjectConstructor.h&quot;
</span><span class="cx"> #include &quot;Repatch.h&quot;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorJSInjectedScriptHostcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/JSInjectedScriptHost.cpp (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/JSInjectedScriptHost.cpp        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/inspector/JSInjectedScriptHost.cpp        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2013, 2015 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2013, 2015-2016 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -34,7 +34,6 @@
</span><span class="cx"> #include &quot;InjectedScriptHost.h&quot;
</span><span class="cx"> #include &quot;IteratorOperations.h&quot;
</span><span class="cx"> #include &quot;JSArray.h&quot;
</span><del>-#include &quot;JSArrayIterator.h&quot;
</del><span class="cx"> #include &quot;JSBoundFunction.h&quot;
</span><span class="cx"> #include &quot;JSCInlines.h&quot;
</span><span class="cx"> #include &quot;JSFunction.h&quot;
</span><span class="lines">@@ -176,8 +175,7 @@
</span><span class="cx">     if (value.inherits(JSWeakSet::info()))
</span><span class="cx">         return jsNontrivialString(exec, ASCIILiteral(&quot;weakset&quot;));
</span><span class="cx"> 
</span><del>-    if (value.inherits(JSArrayIterator::info())
-        || value.inherits(JSMapIterator::info())
</del><ins>+    if (value.inherits(JSMapIterator::info())
</ins><span class="cx">         || value.inherits(JSSetIterator::info())
</span><span class="cx">         || value.inherits(JSStringIterator::info())
</span><span class="cx">         || value.inherits(JSPropertyNameIterator::info()))
</span><span class="lines">@@ -319,28 +317,6 @@
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (JSArrayIterator* arrayIterator = jsDynamicCast&lt;JSArrayIterator*&gt;(value)) {
-        String kind;
-        switch (arrayIterator-&gt;kind(exec)) {
-        case ArrayIterateKey:
-            kind = ASCIILiteral(&quot;key&quot;);
-            break;
-        case ArrayIterateValue:
-            kind = ASCIILiteral(&quot;value&quot;);
-            break;
-        case ArrayIterateKeyValue:
-            kind = ASCIILiteral(&quot;key+value&quot;);
-            break;
-        }
-        unsigned index = 0;
-        JSArray* array = constructEmptyArray(exec, nullptr, 2);
-        if (UNLIKELY(vm.exception()))
-            return jsUndefined();
-        array-&gt;putDirectIndex(exec, index++, constructInternalProperty(exec, &quot;array&quot;, arrayIterator-&gt;iteratedValue(exec)));
-        array-&gt;putDirectIndex(exec, index++, constructInternalProperty(exec, &quot;kind&quot;, jsNontrivialString(exec, kind)));
-        return array;
-    }
-
</del><span class="cx">     if (JSMapIterator* mapIterator = jsDynamicCast&lt;JSMapIterator*&gt;(value)) {
</span><span class="cx">         String kind;
</span><span class="cx">         switch (mapIterator-&gt;kind()) {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejsccpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jsc.cpp (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jsc.cpp        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/jsc.cpp        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -25,7 +25,6 @@
</span><span class="cx"> #include &quot;ArrayPrototype.h&quot;
</span><span class="cx"> #include &quot;BuiltinExecutableCreator.h&quot;
</span><span class="cx"> #include &quot;ButterflyInlines.h&quot;
</span><del>-#include &quot;BytecodeGenerator.h&quot;
</del><span class="cx"> #include &quot;CodeBlock.h&quot;
</span><span class="cx"> #include &quot;Completion.h&quot;
</span><span class="cx"> #include &quot;CopiedSpaceInlines.h&quot;
</span><span class="lines">@@ -52,6 +51,7 @@
</span><span class="cx"> #include &quot;JSString.h&quot;
</span><span class="cx"> #include &quot;JSWASMModule.h&quot;
</span><span class="cx"> #include &quot;LLIntData.h&quot;
</span><ins>+#include &quot;ParserError.h&quot;
</ins><span class="cx"> #include &quot;ProfilerDatabase.h&quot;
</span><span class="cx"> #include &quot;SamplingProfiler.h&quot;
</span><span class="cx"> #include &quot;ShadowChicken.h&quot;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreparserLexercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/parser/Lexer.cpp (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/parser/Lexer.cpp        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/parser/Lexer.cpp        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><span class="cx"> /*
</span><span class="cx">  *  Copyright (C) 1999-2000 Harri Porten (porten@kde.org)
</span><del>- *  Copyright (C) 2006, 2007, 2008, 2009, 2011, 2012, 2013 Apple Inc. All Rights Reserved.
</del><ins>+ *  Copyright (C) 2006-2009, 2011-2013, 2016 Apple Inc. All Rights Reserved.
</ins><span class="cx">  *  Copyright (C) 2007 Cameron Zwarich (cwzwarich@uwaterloo.ca)
</span><span class="cx">  *  Copyright (C) 2010 Zoltan Herczeg (zherczeg@inf.u-szeged.hu)
</span><span class="cx">  *  Copyright (C) 2012 Mathias Bynens (mathias@qiwi.be)
</span><span class="lines">@@ -939,7 +939,7 @@
</span><span class="cx">             if (isPrivateName)
</span><span class="cx">                 ident = m_vm-&gt;propertyNames-&gt;lookUpPrivateName(*ident);
</span><span class="cx">             else if (*ident == m_vm-&gt;propertyNames-&gt;undefinedKeyword)
</span><del>-                tokenData-&gt;ident = &amp;m_vm-&gt;propertyNames-&gt;undefinedPrivateName;
</del><ins>+                tokenData-&gt;ident = &amp;m_vm-&gt;propertyNames-&gt;builtinNames().undefinedPrivateName();
</ins><span class="cx">             if (!ident)
</span><span class="cx">                 return INVALID_PRIVATE_NAME_ERRORTOK;
</span><span class="cx">         }
</span><span class="lines">@@ -1016,7 +1016,7 @@
</span><span class="cx">             if (isPrivateName)
</span><span class="cx">                 ident = m_vm-&gt;propertyNames-&gt;lookUpPrivateName(*ident);
</span><span class="cx">             else if (*ident == m_vm-&gt;propertyNames-&gt;undefinedKeyword)
</span><del>-                tokenData-&gt;ident = &amp;m_vm-&gt;propertyNames-&gt;undefinedPrivateName;
</del><ins>+                tokenData-&gt;ident = &amp;m_vm-&gt;propertyNames-&gt;builtinNames().undefinedPrivateName();
</ins><span class="cx">             if (!ident)
</span><span class="cx">                 return INVALID_PRIVATE_NAME_ERRORTOK;
</span><span class="cx">         }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreparserNodesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/parser/Nodes.h (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/parser/Nodes.h        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/parser/Nodes.h        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -26,6 +26,7 @@
</span><span class="cx"> #ifndef Nodes_h
</span><span class="cx"> #define Nodes_h
</span><span class="cx"> 
</span><ins>+#include &quot;BuiltinNames.h&quot;
</ins><span class="cx"> #include &quot;Error.h&quot;
</span><span class="cx"> #include &quot;JITCode.h&quot;
</span><span class="cx"> #include &quot;Opcode.h&quot;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreparserParsercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/parser/Parser.cpp (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/parser/Parser.cpp        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/parser/Parser.cpp        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -1897,23 +1897,23 @@
</span><span class="cx">     JSTextPosition position = tokenStartPosition();
</span><span class="cx"> 
</span><span class="cx">     // @generator
</span><del>-    declareParameter(&amp;m_vm-&gt;propertyNames-&gt;generatorPrivateName);
-    auto generator = context.createBindingLocation(location, m_vm-&gt;propertyNames-&gt;generatorPrivateName, position, position, AssignmentContext::DeclarationStatement);
</del><ins>+    declareParameter(&amp;m_vm-&gt;propertyNames-&gt;builtinNames().generatorPrivateName());
+    auto generator = context.createBindingLocation(location, m_vm-&gt;propertyNames-&gt;builtinNames().generatorPrivateName(), position, position, AssignmentContext::DeclarationStatement);
</ins><span class="cx">     context.appendParameter(parameters, generator, 0);
</span><span class="cx"> 
</span><span class="cx">     // @generatorState
</span><del>-    declareParameter(&amp;m_vm-&gt;propertyNames-&gt;generatorStatePrivateName);
-    auto generatorState = context.createBindingLocation(location, m_vm-&gt;propertyNames-&gt;generatorStatePrivateName, position, position, AssignmentContext::DeclarationStatement);
</del><ins>+    declareParameter(&amp;m_vm-&gt;propertyNames-&gt;builtinNames().generatorStatePrivateName());
+    auto generatorState = context.createBindingLocation(location, m_vm-&gt;propertyNames-&gt;builtinNames().generatorStatePrivateName(), position, position, AssignmentContext::DeclarationStatement);
</ins><span class="cx">     context.appendParameter(parameters, generatorState, 0);
</span><span class="cx"> 
</span><span class="cx">     // @generatorValue
</span><del>-    declareParameter(&amp;m_vm-&gt;propertyNames-&gt;generatorValuePrivateName);
-    auto generatorValue = context.createBindingLocation(location, m_vm-&gt;propertyNames-&gt;generatorValuePrivateName, position, position, AssignmentContext::DeclarationStatement);
</del><ins>+    declareParameter(&amp;m_vm-&gt;propertyNames-&gt;builtinNames().generatorValuePrivateName());
+    auto generatorValue = context.createBindingLocation(location, m_vm-&gt;propertyNames-&gt;builtinNames().generatorValuePrivateName(), position, position, AssignmentContext::DeclarationStatement);
</ins><span class="cx">     context.appendParameter(parameters, generatorValue, 0);
</span><span class="cx"> 
</span><span class="cx">     // @generatorResumeMode
</span><del>-    declareParameter(&amp;m_vm-&gt;propertyNames-&gt;generatorResumeModePrivateName);
-    auto generatorResumeMode = context.createBindingLocation(location, m_vm-&gt;propertyNames-&gt;generatorResumeModePrivateName, position, position, AssignmentContext::DeclarationStatement);
</del><ins>+    declareParameter(&amp;m_vm-&gt;propertyNames-&gt;builtinNames().generatorResumeModePrivateName());
+    auto generatorResumeMode = context.createBindingLocation(location, m_vm-&gt;propertyNames-&gt;builtinNames().generatorResumeModePrivateName(), position, position, AssignmentContext::DeclarationStatement);
</ins><span class="cx">     context.appendParameter(parameters, generatorResumeMode, 0);
</span><span class="cx"> 
</span><span class="cx">     return parameters;
</span><span class="lines">@@ -2871,15 +2871,15 @@
</span><span class="cx">             TreeExpression expression = parseAssignmentExpression(context);
</span><span class="cx">             failIfFalse(expression, &quot;Cannot parse expression&quot;);
</span><span class="cx"> 
</span><del>-            DeclarationResultMask declarationResult = declareVariable(&amp;m_vm-&gt;propertyNames-&gt;starDefaultPrivateName, DeclarationType::ConstDeclaration);
</del><ins>+            DeclarationResultMask declarationResult = declareVariable(&amp;m_vm-&gt;propertyNames-&gt;builtinNames().starDefaultPrivateName(), DeclarationType::ConstDeclaration);
</ins><span class="cx">             if (declarationResult &amp; DeclarationResult::InvalidDuplicateDeclaration)
</span><span class="cx">                 internalFailWithMessage(false, &quot;Only one 'default' export is allowed&quot;);
</span><span class="cx"> 
</span><del>-            TreeExpression assignment = context.createAssignResolve(location, m_vm-&gt;propertyNames-&gt;starDefaultPrivateName, expression, start, start, tokenEndPosition(), AssignmentContext::ConstDeclarationStatement);
</del><ins>+            TreeExpression assignment = context.createAssignResolve(location, m_vm-&gt;propertyNames-&gt;builtinNames().starDefaultPrivateName(), expression, start, start, tokenEndPosition(), AssignmentContext::ConstDeclarationStatement);
</ins><span class="cx">             result = context.createExprStatement(location, assignment, start, tokenEndPosition());
</span><span class="cx">             if (!isFunctionOrClassDeclaration)
</span><span class="cx">                 failIfFalse(autoSemiColon(), &quot;Expected a ';' following a targeted export declaration&quot;);
</span><del>-            localName = &amp;m_vm-&gt;propertyNames-&gt;starDefaultPrivateName;
</del><ins>+            localName = &amp;m_vm-&gt;propertyNames-&gt;builtinNames().starDefaultPrivateName();
</ins><span class="cx">         }
</span><span class="cx">         failIfFalse(result, &quot;Cannot parse the declaration&quot;);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeArrayIteratorPrototypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/ArrayIteratorPrototype.cpp (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/ArrayIteratorPrototype.cpp        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/runtime/ArrayIteratorPrototype.cpp        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -28,7 +28,6 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;ArrayIteratorPrototype.lut.h&quot;
</span><span class="cx"> #include &quot;IteratorOperations.h&quot;
</span><del>-#include &quot;JSArrayIterator.h&quot;
</del><span class="cx"> #include &quot;JSCInlines.h&quot;
</span><span class="cx"> #include &quot;JSCJSValueInlines.h&quot;
</span><span class="cx"> #include &quot;JSCellInlines.h&quot;
</span><span class="lines">@@ -38,7 +37,6 @@
</span><span class="cx"> 
</span><span class="cx"> namespace JSC {
</span><span class="cx"> 
</span><del>-
</del><span class="cx"> const ClassInfo ArrayIteratorPrototype::s_info = { &quot;Array Iterator&quot;, &amp;Base::s_info, &amp;arrayIteratorPrototypeTable, CREATE_METHOD_TABLE(ArrayIteratorPrototype) };
</span><span class="cx"> 
</span><span class="cx"> /* Source for ArrayIteratorPrototype.lut.h
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeArrayIteratorPrototypeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/ArrayIteratorPrototype.h (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/ArrayIteratorPrototype.h        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/runtime/ArrayIteratorPrototype.h        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -30,6 +30,12 @@
</span><span class="cx"> 
</span><span class="cx"> namespace JSC {
</span><span class="cx"> 
</span><ins>+enum ArrayIterationKind : uint32_t {
+    ArrayIterateKey,
+    ArrayIterateValue,
+    ArrayIterateKeyValue
+};
+
</ins><span class="cx"> class ArrayIteratorPrototype : public JSNonFinalObject {
</span><span class="cx"> public:
</span><span class="cx">     typedef JSNonFinalObject Base;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeArrayPrototypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/ArrayPrototype.cpp (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/ArrayPrototype.cpp        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/runtime/ArrayPrototype.cpp        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -36,7 +36,6 @@
</span><span class="cx"> #include &quot;Interpreter.h&quot;
</span><span class="cx"> #include &quot;JIT.h&quot;
</span><span class="cx"> #include &quot;JSArrayInlines.h&quot;
</span><del>-#include &quot;JSArrayIterator.h&quot;
</del><span class="cx"> #include &quot;JSCBuiltins.h&quot;
</span><span class="cx"> #include &quot;JSCInlines.h&quot;
</span><span class="cx"> #include &quot;JSStringBuilder.h&quot;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeCommonIdentifierscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/CommonIdentifiers.cpp (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/CommonIdentifiers.cpp        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/runtime/CommonIdentifiers.cpp        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- *  Copyright (C) 2003, 2007, 2009, 2012 Apple Inc. All rights reserved.
</del><ins>+ *  Copyright (C) 2003, 2007, 2009, 2012, 2016 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  *  This library is free software; you can redistribute it and/or
</span><span class="cx">  *  modify it under the terms of the GNU Library General Public
</span><span class="lines">@@ -43,7 +43,6 @@
</span><span class="cx">     , m_builtinNames(new BuiltinNames(vm, this))
</span><span class="cx">     JSC_COMMON_IDENTIFIERS_EACH_KEYWORD(INITIALIZE_KEYWORD)
</span><span class="cx">     JSC_COMMON_IDENTIFIERS_EACH_PROPERTY_NAME(INITIALIZE_PROPERTY_NAME)
</span><del>-    JSC_COMMON_PRIVATE_IDENTIFIERS_EACH_PROPERTY_NAME(INITIALIZE_PRIVATE_NAME)
</del><span class="cx">     JSC_COMMON_PRIVATE_IDENTIFIERS_EACH_WELL_KNOWN_SYMBOL(INITIALIZE_SYMBOL)
</span><span class="cx"> {
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeCommonIdentifiersh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/CommonIdentifiers.h (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/CommonIdentifiers.h        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/runtime/CommonIdentifiers.h        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -21,7 +21,6 @@
</span><span class="cx"> #ifndef CommonIdentifiers_h
</span><span class="cx"> #define CommonIdentifiers_h
</span><span class="cx"> 
</span><del>-#include &quot;BytecodeIntrinsicRegistry.h&quot;
</del><span class="cx"> #include &quot;Identifier.h&quot;
</span><span class="cx"> #include &lt;wtf/Noncopyable.h&gt;
</span><span class="cx"> 
</span><span class="lines">@@ -326,132 +325,6 @@
</span><span class="cx">     macro(toStringTag) \
</span><span class="cx">     macro(unscopables)
</span><span class="cx"> 
</span><del>-#define JSC_COMMON_PRIVATE_IDENTIFIERS_EACH_PROPERTY_NAME(macro) \
-    JSC_COMMON_BYTECODE_INTRINSIC_FUNCTIONS_EACH_NAME(macro) \
-    JSC_COMMON_BYTECODE_INTRINSIC_CONSTANTS_EACH_NAME(macro) \
-    macro(iteratedObject) \
-    macro(arrayIteratorNextIndex) \
-    macro(arrayIterationKind) \
-    macro(arrayIteratorNext) \
-    macro(arrayIteratorIsDone) \
-    macro(arrayIteratorKind) \
-    macro(charCodeAt) \
-    macro(iteratedString) \
-    macro(stringIteratorNextIndex) \
-    macro(promise) \
-    macro(fulfillmentHandler) \
-    macro(rejectionHandler) \
-    macro(index) \
-    macro(deferred) \
-    macro(countdownHolder) \
-    macro(Object) \
-    macro(ownEnumerablePropertyKeys) \
-    macro(Number) \
-    macro(Array) \
-    macro(String) \
-    macro(RegExp) \
-    macro(Map) \
-    macro(Promise) \
-    macro(Reflect) \
-    macro(InternalPromise) \
-    macro(abs) \
-    macro(floor) \
-    macro(trunc) \
-    macro(isFinite) \
-    macro(isNaN) \
-    macro(create) \
-    macro(defineProperty) \
-    macro(getPrototypeOf) \
-    macro(getOwnPropertyDescriptor) \
-    macro(getOwnPropertyNames) \
-    macro(ownKeys) \
-    macro(Error) \
-    macro(RangeError) \
-    macro(TypeError) \
-    macro(typedArrayLength) \
-    macro(typedArraySort) \
-    macro(typedArrayGetOriginalConstructor) \
-    macro(BuiltinLog) \
-    macro(homeObject) \
-    macro(getTemplateObject) \
-    macro(enqueueJob) \
-    macro(handler) \
-    macro(promiseState) \
-    macro(promiseFulfillReactions) \
-    macro(promiseRejectReactions) \
-    macro(promiseResult) \
-    macro(push) \
-    macro(repeatCharacter) \
-    macro(capabilities) \
-    macro(starDefault) \
-    macro(InspectorInstrumentation) \
-    macro(get) \
-    macro(set) \
-    macro(shift) \
-    macro(allocateTypedArray) \
-    macro(Int8Array) \
-    macro(Int16Array) \
-    macro(Int32Array) \
-    macro(Uint8Array) \
-    macro(Uint8ClampedArray) \
-    macro(Uint16Array) \
-    macro(Uint32Array) \
-    macro(Float32Array) \
-    macro(Float64Array) \
-    macro(exec) \
-    macro(generator) \
-    macro(generatorNext) \
-    macro(generatorState) \
-    macro(generatorFrame) \
-    macro(generatorValue) \
-    macro(generatorThis) \
-    macro(generatorResumeMode) \
-    macro(Collator) \
-    macro(DateTimeFormat) \
-    macro(NumberFormat) \
-    macro(intlSubstituteValue) \
-    macro(thisTimeValue) \
-    macro(thisNumberValue) \
-    macro(newTargetLocal) \
-    macro(derivedConstructor) \
-    macro(isBoundFunction) \
-    macro(hasInstanceBoundFunction) \
-    macro(instanceOf) \
-    macro(isArray) \
-    macro(isArrayConstructor) \
-    macro(isConstructor) \
-    macro(isRegExpObject) \
-    macro(concatMemcpy) \
-    macro(appendMemcpy) \
-    macro(predictFinalLengthFromArgumunts) \
-    macro(print) \
-    macro(isSet) \
-    macro(isMap) \
-    macro(regExpCreate) \
-    macro(SetIterator) \
-    macro(setIteratorNext) \
-    macro(replaceUsingRegExp) \
-    macro(replaceUsingStringSearch) \
-    macro(MapIterator) \
-    macro(mapIteratorNext) \
-    macro(regExpBuiltinExec) \
-    macro(regExpMatchFast) \
-    macro(regExpProtoFlagsGetter) \
-    macro(regExpProtoGlobalGetter) \
-    macro(regExpProtoIgnoreCaseGetter) \
-    macro(regExpProtoMultilineGetter) \
-    macro(regExpProtoSourceGetter) \
-    macro(regExpProtoStickyGetter) \
-    macro(regExpProtoUnicodeGetter) \
-    macro(regExpPrototypeSymbolReplace) \
-    macro(regExpReplaceFast) \
-    macro(regExpSearchFast) \
-    macro(regExpSplitFast) \
-    macro(regExpTestFast) \
-    macro(stringIncludesInternal) \
-    macro(stringSplitFast) \
-    macro(stringSubstrInternal) \
-
</del><span class="cx"> namespace JSC {
</span><span class="cx">     
</span><span class="cx">     class BuiltinNames;
</span><span class="lines">@@ -484,10 +357,6 @@
</span><span class="cx">         JSC_COMMON_IDENTIFIERS_EACH_PROPERTY_NAME(JSC_IDENTIFIER_DECLARE_PROPERTY_NAME_GLOBAL)
</span><span class="cx"> #undef JSC_IDENTIFIER_DECLARE_PROPERTY_NAME_GLOBAL
</span><span class="cx"> 
</span><del>-#define JSC_IDENTIFIER_DECLARE_PRIVATE_PROPERTY_NAME_GLOBAL(name) const Identifier name##PrivateName;
-        JSC_COMMON_PRIVATE_IDENTIFIERS_EACH_PROPERTY_NAME(JSC_IDENTIFIER_DECLARE_PRIVATE_PROPERTY_NAME_GLOBAL)
-#undef JSC_IDENTIFIER_DECLARE_PRIVATE_PROPERTY_NAME_GLOBAL
-
</del><span class="cx"> #define JSC_IDENTIFIER_DECLARE_PRIVATE_WELL_KNOWN_SYMBOL_GLOBAL(name) const Identifier name##Symbol;
</span><span class="cx">         JSC_COMMON_PRIVATE_IDENTIFIERS_EACH_WELL_KNOWN_SYMBOL(JSC_IDENTIFIER_DECLARE_PRIVATE_WELL_KNOWN_SYMBOL_GLOBAL)
</span><span class="cx"> #undef JSC_IDENTIFIER_DECLARE_PRIVATE_WELL_KNOWN_SYMBOL_GLOBAL
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeCommonSlowPathscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/CommonSlowPaths.cpp (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/CommonSlowPaths.cpp        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/runtime/CommonSlowPaths.cpp        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -25,7 +25,9 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;config.h&quot;
</span><span class="cx"> #include &quot;CommonSlowPaths.h&quot;
</span><ins>+
</ins><span class="cx"> #include &quot;ArrayConstructor.h&quot;
</span><ins>+#include &quot;BuiltinNames.h&quot;
</ins><span class="cx"> #include &quot;CallFrame.h&quot;
</span><span class="cx"> #include &quot;ClonedArguments.h&quot;
</span><span class="cx"> #include &quot;CodeProfiling.h&quot;
</span><span class="lines">@@ -717,7 +719,7 @@
</span><span class="cx">     BEGIN();
</span><span class="cx">     JSValue generator = OP(1).jsValue();
</span><span class="cx">     GeneratorFrame* frame = nullptr;
</span><del>-    JSValue value = generator.get(exec, exec-&gt;propertyNames().generatorFramePrivateName);
</del><ins>+    JSValue value = generator.get(exec, exec-&gt;propertyNames().builtinNames().generatorFramePrivateName());
</ins><span class="cx">     if (!value.isNull())
</span><span class="cx">         frame = jsCast&lt;GeneratorFrame*&gt;(value);
</span><span class="cx">     else {
</span><span class="lines">@@ -725,7 +727,7 @@
</span><span class="cx">         // https://bugs.webkit.org/show_bug.cgi?id=151545
</span><span class="cx">         frame = GeneratorFrame::create(exec-&gt;vm(),  exec-&gt;codeBlock()-&gt;numCalleeLocals());
</span><span class="cx">         PutPropertySlot slot(generator, true, PutPropertySlot::PutById);
</span><del>-        asObject(generator)-&gt;methodTable(exec-&gt;vm())-&gt;put(asObject(generator), exec, exec-&gt;propertyNames().generatorFramePrivateName, frame, slot);
</del><ins>+        asObject(generator)-&gt;methodTable(exec-&gt;vm())-&gt;put(asObject(generator), exec, exec-&gt;propertyNames().builtinNames().generatorFramePrivateName(), frame, slot);
</ins><span class="cx">     }
</span><span class="cx">     unsigned liveCalleeLocalsIndex = pc[2].u.unsignedValue;
</span><span class="cx">     frame-&gt;save(exec, exec-&gt;codeBlock()-&gt;liveCalleeLocalsAtYield(liveCalleeLocalsIndex));
</span><span class="lines">@@ -736,7 +738,7 @@
</span><span class="cx"> {
</span><span class="cx">     BEGIN();
</span><span class="cx">     JSValue generator = OP(1).jsValue();
</span><del>-    GeneratorFrame* frame = jsCast&lt;GeneratorFrame*&gt;(generator.get(exec, exec-&gt;propertyNames().generatorFramePrivateName));
</del><ins>+    GeneratorFrame* frame = jsCast&lt;GeneratorFrame*&gt;(generator.get(exec, exec-&gt;propertyNames().builtinNames().generatorFramePrivateName()));
</ins><span class="cx">     unsigned liveCalleeLocalsIndex = pc[2].u.unsignedValue;
</span><span class="cx">     frame-&gt;resume(exec, exec-&gt;codeBlock()-&gt;liveCalleeLocalsAtYield(liveCalleeLocalsIndex));
</span><span class="cx">     END();
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeIntlDateTimeFormatcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -1,5 +1,6 @@
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2015 Andy VanWagoner (thetalecrafter@gmail.com)
</span><ins>+ * Copyright (C) 2016 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeIntlDateTimeFormatPrototypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/IntlDateTimeFormatPrototype.cpp (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/IntlDateTimeFormatPrototype.cpp        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/runtime/IntlDateTimeFormatPrototype.cpp        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -28,6 +28,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INTL)
</span><span class="cx"> 
</span><ins>+#include &quot;BuiltinNames.h&quot;
</ins><span class="cx"> #include &quot;DateConstructor.h&quot;
</span><span class="cx"> #include &quot;Error.h&quot;
</span><span class="cx"> #include &quot;IntlDateTimeFormat.h&quot;
</span><span class="lines">@@ -116,7 +117,7 @@
</span><span class="cx">     // FIXME: Workaround to provide compatibility with ECMA-402 1.0 call/apply patterns.
</span><span class="cx">     // https://bugs.webkit.org/show_bug.cgi?id=153679
</span><span class="cx">     if (!dtf)
</span><del>-        dtf = jsDynamicCast&lt;IntlDateTimeFormat*&gt;(state-&gt;thisValue().get(state, state-&gt;vm().propertyNames-&gt;intlSubstituteValuePrivateName));
</del><ins>+        dtf = jsDynamicCast&lt;IntlDateTimeFormat*&gt;(state-&gt;thisValue().get(state, state-&gt;vm().propertyNames-&gt;builtinNames().intlSubstituteValuePrivateName()));
</ins><span class="cx"> 
</span><span class="cx">     // 2. ReturnIfAbrupt(dtf).
</span><span class="cx">     if (!dtf)
</span><span class="lines">@@ -153,7 +154,7 @@
</span><span class="cx">     // FIXME: Workaround to provide compatibility with ECMA-402 1.0 call/apply patterns.
</span><span class="cx">     // https://bugs.webkit.org/show_bug.cgi?id=153679
</span><span class="cx">     if (!dateTimeFormat)
</span><del>-        dateTimeFormat = jsDynamicCast&lt;IntlDateTimeFormat*&gt;(state-&gt;thisValue().get(state, state-&gt;vm().propertyNames-&gt;intlSubstituteValuePrivateName));
</del><ins>+        dateTimeFormat = jsDynamicCast&lt;IntlDateTimeFormat*&gt;(state-&gt;thisValue().get(state, state-&gt;vm().propertyNames-&gt;builtinNames().intlSubstituteValuePrivateName()));
</ins><span class="cx"> 
</span><span class="cx">     if (!dateTimeFormat)
</span><span class="cx">         return JSValue::encode(throwTypeError(state, ASCIILiteral(&quot;Intl.DateTimeFormat.prototype.resolvedOptions called on value that's not an object initialized as a DateTimeFormat&quot;)));
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeIntlNumberFormatPrototypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/IntlNumberFormatPrototype.cpp (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/IntlNumberFormatPrototype.cpp        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/runtime/IntlNumberFormatPrototype.cpp        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -1,5 +1,6 @@
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2015 Andy VanWagoner (thetalecrafter@gmail.com)
</span><ins>+ * Copyright (C) 2016 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -28,6 +29,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INTL)
</span><span class="cx"> 
</span><ins>+#include &quot;BuiltinNames.h&quot;
</ins><span class="cx"> #include &quot;Error.h&quot;
</span><span class="cx"> #include &quot;IntlNumberFormat.h&quot;
</span><span class="cx"> #include &quot;JSBoundFunction.h&quot;
</span><span class="lines">@@ -105,7 +107,7 @@
</span><span class="cx">     // FIXME: Workaround to provide compatibility with ECMA-402 1.0 call/apply patterns.
</span><span class="cx">     // https://bugs.webkit.org/show_bug.cgi?id=153679
</span><span class="cx">     if (!nf)
</span><del>-        nf = jsDynamicCast&lt;IntlNumberFormat*&gt;(state-&gt;thisValue().get(state, state-&gt;vm().propertyNames-&gt;intlSubstituteValuePrivateName));
</del><ins>+        nf = jsDynamicCast&lt;IntlNumberFormat*&gt;(state-&gt;thisValue().get(state, state-&gt;vm().propertyNames-&gt;builtinNames().intlSubstituteValuePrivateName()));
</ins><span class="cx"> 
</span><span class="cx">     if (!nf)
</span><span class="cx">         return JSValue::encode(throwTypeError(state, ASCIILiteral(&quot;Intl.NumberFormat.prototype.format called on value that's not an object initialized as a NumberFormat&quot;)));
</span><span class="lines">@@ -141,7 +143,7 @@
</span><span class="cx">     // FIXME: Workaround to provide compatibility with ECMA-402 1.0 call/apply patterns.
</span><span class="cx">     // https://bugs.webkit.org/show_bug.cgi?id=153679
</span><span class="cx">     if (!numberFormat)
</span><del>-        numberFormat = jsDynamicCast&lt;IntlNumberFormat*&gt;(state-&gt;thisValue().get(state, state-&gt;vm().propertyNames-&gt;intlSubstituteValuePrivateName));
</del><ins>+        numberFormat = jsDynamicCast&lt;IntlNumberFormat*&gt;(state-&gt;thisValue().get(state, state-&gt;vm().propertyNames-&gt;builtinNames().intlSubstituteValuePrivateName()));
</ins><span class="cx"> 
</span><span class="cx">     if (!numberFormat)
</span><span class="cx">         return JSValue::encode(throwTypeError(state, ASCIILiteral(&quot;Intl.NumberFormat.prototype.resolvedOptions called on value that's not an object initialized as a NumberFormat&quot;)));
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeIntlObjectInlinesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/IntlObjectInlines.h (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/IntlObjectInlines.h        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/runtime/IntlObjectInlines.h        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -1,5 +1,6 @@
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2016 Yusuke Suzuki &lt;yusuke.suzuki@sslab.ics.keio.ac.jp&gt;
</span><ins>+ * Copyright (C) 2016 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -27,6 +28,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INTL)
</span><span class="cx"> 
</span><ins>+#include &quot;BuiltinNames.h&quot;
</ins><span class="cx"> #include &quot;IntlObject.h&quot;
</span><span class="cx"> #include &quot;JSObject.h&quot;
</span><span class="cx"> 
</span><span class="lines">@@ -49,7 +51,7 @@
</span><span class="cx">             if (state.hadException())
</span><span class="cx">                 return jsUndefined();
</span><span class="cx"> 
</span><del>-            thisObject-&gt;putDirect(vm, vm.propertyNames-&gt;intlSubstituteValuePrivateName, instance);
</del><ins>+            thisObject-&gt;putDirect(vm, vm.propertyNames-&gt;builtinNames().intlSubstituteValuePrivateName(), instance);
</ins><span class="cx">             return thisObject;
</span><span class="cx">         }
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSArrayIteratorcpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/runtime/JSArrayIterator.cpp (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSArrayIterator.cpp        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/runtime/JSArrayIterator.cpp        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -1,60 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 Apple, Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
- */
-
-#include &quot;config.h&quot;
-#include &quot;JSArrayIterator.h&quot;
-
-#include &quot;JSCJSValueInlines.h&quot;
-#include &quot;JSCellInlines.h&quot;
-#include &quot;SlotVisitorInlines.h&quot;
-#include &quot;StructureInlines.h&quot;
-
-namespace JSC {
-
-const ClassInfo JSArrayIterator::s_info = { &quot;Array Iterator&quot;, &amp;Base::s_info, 0, CREATE_METHOD_TABLE(JSArrayIterator) };
-
-void JSArrayIterator::finishCreation(VM&amp; vm, JSGlobalObject*, ArrayIterationKind kind, JSObject* iteratedObject)
-{
-    Base::finishCreation(vm);
-    ASSERT(inherits(info()));
-
-    putDirect(vm, vm.propertyNames-&gt;iteratedObjectPrivateName, iteratedObject);
-    putDirect(vm, vm.propertyNames-&gt;arrayIteratorNextIndexPrivateName, jsNumber(0));
-    putDirect(vm, vm.propertyNames-&gt;arrayIterationKindPrivateName, jsNumber(kind));
-}
-
-ArrayIterationKind JSArrayIterator::kind(ExecState* exec) const
-{
-    JSValue kindValue = getDirect(exec-&gt;vm(), exec-&gt;vm().propertyNames-&gt;arrayIterationKindPrivateName);
-    return static_cast&lt;ArrayIterationKind&gt;(kindValue.asInt32());
-}
-
-JSValue JSArrayIterator::iteratedValue(ExecState* exec) const
-{
-    return getDirect(exec-&gt;vm(), exec-&gt;vm().propertyNames-&gt;iteratedObjectPrivateName);
-}
-
-
-}
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSArrayIteratorh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/runtime/JSArrayIterator.h (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSArrayIterator.h        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/runtime/JSArrayIterator.h        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -1,74 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 Apple, Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
- */
-
-#ifndef JSArrayIterator_h
-#define JSArrayIterator_h
-
-#include &quot;JSObject.h&quot;
-
-namespace JSC {
-
-enum ArrayIterationKind : uint32_t {
-    ArrayIterateKey,
-    ArrayIterateValue,
-    ArrayIterateKeyValue
-};
-
-class JSArrayIterator : public JSNonFinalObject {
-public:
-    typedef JSNonFinalObject Base;
-
-    DECLARE_EXPORT_INFO;
-
-    static Structure* createStructure(VM&amp; vm, JSGlobalObject* globalObject, JSValue prototype)
-    {
-        return Structure::create(vm, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), info());
-    }
-
-    static JSArrayIterator* create(ExecState* exec, Structure* structure, ArrayIterationKind kind, JSObject* iteratedObject)
-    {
-        VM&amp; vm = exec-&gt;vm();
-        JSArrayIterator* instance = new (NotNull, allocateCell&lt;JSArrayIterator&gt;(vm.heap)) JSArrayIterator(vm, structure);
-        instance-&gt;finishCreation(vm, structure-&gt;globalObject(), kind, iteratedObject);
-        return instance;
-    }
-
-    ArrayIterationKind kind(ExecState*) const;
-    JSValue iteratedValue(ExecState*) const;
-    JSArrayIterator* clone(ExecState*);
-
-    using JSNonFinalObject::arrayStorageOrNull;
-private:
-    JSArrayIterator(VM&amp; vm, Structure* structure)
-        : Base(vm, structure)
-    {
-    }
-
-    void finishCreation(VM&amp;, JSGlobalObject*, ArrayIterationKind, JSObject* iteratedObject);
-};
-
-}
-
-#endif // !defined(JSArrayIterator_h)
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSGenericTypedArrayViewConstructorInlinesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayViewConstructorInlines.h (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayViewConstructorInlines.h        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayViewConstructorInlines.h        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -26,6 +26,7 @@
</span><span class="cx"> #ifndef JSGenericTypedArrayViewConstructorInlines_h
</span><span class="cx"> #define JSGenericTypedArrayViewConstructorInlines_h
</span><span class="cx"> 
</span><ins>+#include &quot;BuiltinNames.h&quot;
</ins><span class="cx"> #include &quot;Error.h&quot;
</span><span class="cx"> #include &quot;IteratorOperations.h&quot;
</span><span class="cx"> #include &quot;JSArrayBuffer.h&quot;
</span><span class="lines">@@ -52,7 +53,7 @@
</span><span class="cx">     putDirectWithoutTransition(vm, vm.propertyNames-&gt;BYTES_PER_ELEMENT, jsNumber(ViewClass::elementSize), DontEnum | ReadOnly | DontDelete);
</span><span class="cx"> 
</span><span class="cx">     if (privateAllocator)
</span><del>-        putDirectBuiltinFunction(vm, globalObject, vm.propertyNames-&gt;allocateTypedArrayPrivateName, privateAllocator, DontEnum | DontDelete | ReadOnly);
</del><ins>+        putDirectBuiltinFunction(vm, globalObject, vm.propertyNames-&gt;builtinNames().allocateTypedArrayPrivateName(), privateAllocator, DontEnum | DontDelete | ReadOnly);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template&lt;typename ViewClass&gt;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSGenericTypedArrayViewPrototypeFunctionsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayViewPrototypeFunctions.h (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayViewPrototypeFunctions.h        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayViewPrototypeFunctions.h        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -30,7 +30,6 @@
</span><span class="cx"> #include &quot;Error.h&quot;
</span><span class="cx"> #include &quot;ExceptionHelpers.h&quot;
</span><span class="cx"> #include &quot;JSArrayBufferViewInlines.h&quot;
</span><del>-#include &quot;JSArrayIterator.h&quot;
</del><span class="cx"> #include &quot;JSCBuiltins.h&quot;
</span><span class="cx"> #include &quot;JSCJSValueInlines.h&quot;
</span><span class="cx"> #include &quot;JSFunction.h&quot;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSGlobalObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSGlobalObject.cpp (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSGlobalObject.cpp        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/runtime/JSGlobalObject.cpp        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -63,7 +63,6 @@
</span><span class="cx"> #include &quot;JSArrayBuffer.h&quot;
</span><span class="cx"> #include &quot;JSArrayBufferConstructor.h&quot;
</span><span class="cx"> #include &quot;JSArrayBufferPrototype.h&quot;
</span><del>-#include &quot;JSArrayIterator.h&quot;
</del><span class="cx"> #include &quot;JSBoundFunction.h&quot;
</span><span class="cx"> #include &quot;JSCInlines.h&quot;
</span><span class="cx"> #include &quot;JSCallbackConstructor.h&quot;
</span><span class="lines">@@ -426,7 +425,7 @@
</span><span class="cx">             init.setPrototype(JS ## type ## ArrayPrototype::create(init.vm, init.global, JS ## type ## ArrayPrototype::createStructure(init.vm, init.global, init.global-&gt;m_typedArrayProto.get(init.global)))); \
</span><span class="cx">             init.setStructure(JS ## type ## Array::createStructure(init.vm, init.global, init.prototype)); \
</span><span class="cx">             init.setConstructor(JS ## type ## ArrayConstructor::create(init.vm, init.global, JS ## type ## ArrayConstructor::createStructure(init.vm, init.global, init.global-&gt;m_typedArraySuperConstructor.get(init.global)), init.prototype, ASCIILiteral(#type &quot;Array&quot;), typedArrayConstructorAllocate ## type ## ArrayCodeGenerator(init.vm))); \
</span><del>-            init.global-&gt;putDirectWithoutTransition(init.vm, init.vm.propertyNames-&gt;type ## ArrayPrivateName, init.constructor, DontEnum); \
</del><ins>+            init.global-&gt;putDirectWithoutTransition(init.vm, init.vm.propertyNames-&gt;builtinNames().type ## ArrayPrivateName(), init.constructor, DontEnum); \
</ins><span class="cx">         });
</span><span class="cx">     FOR_EACH_TYPED_ARRAY_TYPE_EXCLUDING_DATA_VIEW(INIT_TYPED_ARRAY_LATER)
</span><span class="cx"> #undef INIT_TYPED_ARRAY_LATER
</span><span class="lines">@@ -619,8 +618,8 @@
</span><span class="cx">     putDirectWithoutTransition(vm, vm.propertyNames-&gt;RangeError, m_rangeErrorConstructor.get(), DontEnum);
</span><span class="cx">     putDirectWithoutTransition(vm, vm.propertyNames-&gt;TypeError, m_typeErrorConstructor.get(), DontEnum);
</span><span class="cx"> 
</span><del>-    putDirectWithoutTransition(vm, vm.propertyNames-&gt;ObjectPrivateName, objectConstructor, DontEnum | DontDelete | ReadOnly);
-    putDirectWithoutTransition(vm, vm.propertyNames-&gt;ArrayPrivateName, arrayConstructor, DontEnum | DontDelete | ReadOnly);
</del><ins>+    putDirectWithoutTransition(vm, vm.propertyNames-&gt;builtinNames().ObjectPrivateName(), objectConstructor, DontEnum | DontDelete | ReadOnly);
+    putDirectWithoutTransition(vm, vm.propertyNames-&gt;builtinNames().ArrayPrivateName(), arrayConstructor, DontEnum | DontDelete | ReadOnly);
</ins><span class="cx"> 
</span><span class="cx"> #define PUT_CONSTRUCTOR_FOR_SIMPLE_TYPE(capitalName, lowerName, properName, instanceType, jsName) \
</span><span class="cx"> putDirectWithoutTransition(vm, vm.propertyNames-&gt; jsName, lowerName ## Constructor, DontEnum); \
</span><span class="lines">@@ -653,8 +652,6 @@
</span><span class="cx">     JSFunction* privateFuncTrunc = JSFunction::create(vm, this, 0, String(), mathProtoFuncTrunc, TruncIntrinsic);
</span><span class="cx"> 
</span><span class="cx">     JSFunction* privateFuncGetTemplateObject = JSFunction::create(vm, this, 0, String(), getTemplateObject);
</span><del>-    JSFunction* privateFuncToLength = JSFunction::createBuiltinFunction(vm, globalObjectToLengthCodeGenerator(vm), this);
-    JSFunction* privateFuncToInteger = JSFunction::createBuiltinFunction(vm, globalObjectToIntegerCodeGenerator(vm), this);
</del><span class="cx">     JSFunction* privateFuncTypedArrayLength = JSFunction::create(vm, this, 0, String(), typedArrayViewPrivateFuncLength);
</span><span class="cx">     JSFunction* privateFuncTypedArrayGetOriginalConstructor = JSFunction::create(vm, this, 0, String(), typedArrayViewPrivateFuncGetOriginalConstructor);
</span><span class="cx">     JSFunction* privateFuncTypedArraySort = JSFunction::create(vm, this, 0, String(), typedArrayViewPrivateFuncSort);
</span><span class="lines">@@ -668,13 +665,6 @@
</span><span class="cx">     JSFunction* privateFuncAppendMemcpy = JSFunction::create(vm, this, 0, String(), arrayProtoPrivateFuncAppendMemcpy);
</span><span class="cx">     JSFunction* privateFuncConcatSlowPath = JSFunction::createBuiltinFunction(vm, arrayPrototypeConcatSlowPathCodeGenerator(vm), this);
</span><span class="cx"> 
</span><del>-    JSObject* arrayIteratorPrototype = ArrayIteratorPrototype::create(vm, this, ArrayIteratorPrototype::createStructure(vm, this, m_iteratorPrototype.get()));
-    JSFunction* privateFuncCreateArrayIterator = JSFunction::createBuiltinFunction(vm, arrayPrototypeCreateArrayIteratorConstructorCodeGenerator(vm), this);
-    privateFuncCreateArrayIterator-&gt;putDirect(vm, vm.propertyNames-&gt;prototype, arrayIteratorPrototype);
-    JSFunction* privateFuncArrayIteratorValueNext = JSFunction::createBuiltinFunction(vm, arrayIteratorPrototypeArrayIteratorValueNextCodeGenerator(vm), this);
-    JSFunction* privateFuncArrayIteratorKeyNext = JSFunction::createBuiltinFunction(vm, arrayIteratorPrototypeArrayIteratorKeyNextCodeGenerator(vm), this);
-    JSFunction* privateFuncArrayIteratorKeyValueNext = JSFunction::createBuiltinFunction(vm, arrayIteratorPrototypeArrayIteratorKeyValueNextCodeGenerator(vm), this);
-
</del><span class="cx">     JSObject* regExpProtoFlagsGetterObject = getGetterById(exec, m_regExpPrototype.get(), vm.propertyNames-&gt;flags);
</span><span class="cx">     JSObject* regExpProtoGlobalGetterObject = getGetterById(exec, m_regExpPrototype.get(), vm.propertyNames-&gt;global);
</span><span class="cx">     m_regExpProtoGlobalGetter.set(vm, this, regExpProtoGlobalGetterObject);
</span><span class="lines">@@ -689,70 +679,61 @@
</span><span class="cx">     JSObject* regExpSymbolReplace = asObject(m_regExpPrototype-&gt;getDirect(vm, vm.propertyNames-&gt;replaceSymbol).asCell());
</span><span class="cx">     m_regExpProtoSymbolReplace.set(vm, this, regExpSymbolReplace);
</span><span class="cx"> 
</span><ins>+#define CREATE_PRIVATE_GLOBAL_FUNCTION(name, code) JSFunction* name ## PrivateFunction = JSFunction::createBuiltinFunction(vm, code ## CodeGenerator(vm), this);
+    JSC_FOREACH_BUILTIN_FUNCTION_PRIVATE_GLOBAL_NAME(CREATE_PRIVATE_GLOBAL_FUNCTION)
+#undef CREATE_PRIVATE_GLOBAL_FUNCTION
+
+    JSObject* arrayIteratorPrototype = ArrayIteratorPrototype::create(vm, this, ArrayIteratorPrototype::createStructure(vm, this, m_iteratorPrototype.get()));
+    createArrayIteratorPrivateFunction-&gt;putDirect(vm, vm.propertyNames-&gt;prototype, arrayIteratorPrototype);
+
+
</ins><span class="cx">     GlobalPropertyInfo staticGlobals[] = {
</span><ins>+#define INIT_PRIVATE_GLOBAL(name, code) GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().name ## PrivateName(), name ## PrivateFunction, DontEnum | DontDelete | ReadOnly),
+        JSC_FOREACH_BUILTIN_FUNCTION_PRIVATE_GLOBAL_NAME(INIT_PRIVATE_GLOBAL)
+#undef INIT_PRIVATE_GLOBAL
</ins><span class="cx">         GlobalPropertyInfo(vm.propertyNames-&gt;NaN, jsNaN(), DontEnum | DontDelete | ReadOnly),
</span><span class="cx">         GlobalPropertyInfo(vm.propertyNames-&gt;Infinity, jsNumber(std::numeric_limits&lt;double&gt;::infinity()), DontEnum | DontDelete | ReadOnly),
</span><span class="cx">         GlobalPropertyInfo(vm.propertyNames-&gt;undefinedKeyword, jsUndefined(), DontEnum | DontDelete | ReadOnly),
</span><del>-        GlobalPropertyInfo(vm.propertyNames-&gt;ownEnumerablePropertyKeysPrivateName, JSFunction::create(vm, this, 0, String(), ownEnumerablePropertyKeys), DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;getTemplateObjectPrivateName, privateFuncGetTemplateObject, DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;enqueueJobPrivateName, JSFunction::create(vm, this, 0, String(), enqueueJob), DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;ErrorPrivateName, m_errorConstructor.get(), DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;RangeErrorPrivateName, m_rangeErrorConstructor.get(), DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;TypeErrorPrivateName, m_typeErrorConstructor.get(), DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;typedArrayLengthPrivateName, privateFuncTypedArrayLength, DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;typedArrayGetOriginalConstructorPrivateName, privateFuncTypedArrayGetOriginalConstructor, DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;typedArraySortPrivateName, privateFuncTypedArraySort, DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;isBoundFunctionPrivateName, privateFuncIsBoundFunction, DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;hasInstanceBoundFunctionPrivateName, privateFuncHasInstanceBoundFunction, DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;instanceOfPrivateName, privateFuncInstanceOf, DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;BuiltinLogPrivateName, builtinLog, DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;NumberPrivateName, numberConstructor, DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;RegExpPrivateName, m_regExpConstructor.get(), DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;StringPrivateName, stringConstructor, DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;absPrivateName, privateFuncAbs, DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;floorPrivateName, privateFuncFloor, DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;truncPrivateName, privateFuncTrunc, DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;isFinitePrivateName, privateFuncIsFinite, DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;isNaNPrivateName, privateFuncIsNaN, DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;PromisePrivateName, promiseConstructor, DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;ReflectPrivateName, reflectObject, DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;InternalPromisePrivateName, internalPromiseConstructor, DontEnum | DontDelete | ReadOnly),
</del><ins>+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().ownEnumerablePropertyKeysPrivateName(), JSFunction::create(vm, this, 0, String(), ownEnumerablePropertyKeys), DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().getTemplateObjectPrivateName(), privateFuncGetTemplateObject, DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().enqueueJobPrivateName(), JSFunction::create(vm, this, 0, String(), enqueueJob), DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().ErrorPrivateName(), m_errorConstructor.get(), DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().RangeErrorPrivateName(), m_rangeErrorConstructor.get(), DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().TypeErrorPrivateName(), m_typeErrorConstructor.get(), DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().typedArrayLengthPrivateName(), privateFuncTypedArrayLength, DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().typedArrayGetOriginalConstructorPrivateName(), privateFuncTypedArrayGetOriginalConstructor, DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().typedArraySortPrivateName(), privateFuncTypedArraySort, DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().isBoundFunctionPrivateName(), privateFuncIsBoundFunction, DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().hasInstanceBoundFunctionPrivateName(), privateFuncHasInstanceBoundFunction, DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().instanceOfPrivateName(), privateFuncInstanceOf, DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().BuiltinLogPrivateName(), builtinLog, DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().NumberPrivateName(), numberConstructor, DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().RegExpPrivateName(), m_regExpConstructor.get(), DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().StringPrivateName(), stringConstructor, DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().absPrivateName(), privateFuncAbs, DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().floorPrivateName(), privateFuncFloor, DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().truncPrivateName(), privateFuncTrunc, DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().isFinitePrivateName(), privateFuncIsFinite, DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().isNaNPrivateName(), privateFuncIsNaN, DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().PromisePrivateName(), promiseConstructor, DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().ReflectPrivateName(), reflectObject, DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().InternalPromisePrivateName(), internalPromiseConstructor, DontEnum | DontDelete | ReadOnly),
</ins><span class="cx"> 
</span><del>-        GlobalPropertyInfo(vm.propertyNames-&gt;repeatCharacterPrivateName, JSFunction::create(vm, this, 2, String(), stringProtoFuncRepeatCharacter), DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().repeatSlowPathPrivateName(), JSFunction::createBuiltinFunction(vm, stringPrototypeRepeatSlowPathCodeGenerator(vm), this), DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().repeatCharactersSlowPathPrivateName(), JSFunction::createBuiltinFunction(vm, stringPrototypeRepeatCharactersSlowPathCodeGenerator(vm), this), DontEnum | DontDelete | ReadOnly),
-
-        GlobalPropertyInfo(vm.propertyNames-&gt;isSetPrivateName, JSFunction::create(vm, this, 1, String(), privateFuncIsSet), DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;SetIteratorPrivateName, JSFunction::create(vm, this, 1, String(), privateFuncSetIterator), DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;setIteratorNextPrivateName, JSFunction::create(vm, this, 0, String(), privateFuncSetIteratorNext), DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;isMapPrivateName, JSFunction::create(vm, this, 1, String(), privateFuncIsMap), DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;isArrayPrivateName, arrayConstructor-&gt;getDirect(vm, vm.propertyNames-&gt;isArray), DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;isArrayConstructorPrivateName, privateFuncIsArrayConstructor, DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;concatMemcpyPrivateName, privateFuncConcatMemcpy, DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;appendMemcpyPrivateName, privateFuncAppendMemcpy, DontEnum | DontDelete | ReadOnly),
</del><ins>+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().repeatCharacterPrivateName(), JSFunction::create(vm, this, 2, String(), stringProtoFuncRepeatCharacter), DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().isSetPrivateName(), JSFunction::create(vm, this, 1, String(), privateFuncIsSet), DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().SetIteratorPrivateName(), JSFunction::create(vm, this, 1, String(), privateFuncSetIterator), DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().setIteratorNextPrivateName(), JSFunction::create(vm, this, 0, String(), privateFuncSetIteratorNext), DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().isMapPrivateName(), JSFunction::create(vm, this, 1, String(), privateFuncIsMap), DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().isArrayPrivateName(), arrayConstructor-&gt;getDirect(vm, vm.propertyNames-&gt;isArray), DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().isArrayConstructorPrivateName(), privateFuncIsArrayConstructor, DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().concatMemcpyPrivateName(), privateFuncConcatMemcpy, DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().appendMemcpyPrivateName(), privateFuncAppendMemcpy, DontEnum | DontDelete | ReadOnly),
</ins><span class="cx">         GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().concatSlowPathPrivateName(), privateFuncConcatSlowPath, DontEnum | DontDelete | ReadOnly),
</span><del>-        GlobalPropertyInfo(vm.propertyNames-&gt;MapIteratorPrivateName, JSFunction::create(vm, this, 1, String(), privateFuncMapIterator), DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;mapIteratorNextPrivateName, JSFunction::create(vm, this, 0, String(), privateFuncMapIteratorNext), DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().arrayIteratorValueNextPrivateName(), privateFuncArrayIteratorValueNext, DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().arrayIteratorKeyNextPrivateName(), privateFuncArrayIteratorKeyNext, DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().arrayIteratorKeyValueNextPrivateName(), privateFuncArrayIteratorKeyValueNext, DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().createArrayIteratorPrivateName(), privateFuncCreateArrayIterator, DontEnum | DontDelete | ReadOnly),
</del><ins>+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().MapIteratorPrivateName(), JSFunction::create(vm, this, 1, String(), privateFuncMapIterator), DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().mapIteratorNextPrivateName(), JSFunction::create(vm, this, 0, String(), privateFuncMapIteratorNext), DontEnum | DontDelete | ReadOnly),
</ins><span class="cx"> 
</span><del>-        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().toLengthPrivateName(), privateFuncToLength, DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().toIntegerPrivateName(), privateFuncToInteger, DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().isDictionaryPrivateName(), JSFunction::createBuiltinFunction(vm, globalObjectIsDictionaryCodeGenerator(vm), this), DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().isPromisePrivateName(), JSFunction::createBuiltinFunction(vm, promiseOperationsIsPromiseCodeGenerator(vm), this), DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().newPromiseReactionPrivateName(), JSFunction::createBuiltinFunction(vm, promiseOperationsNewPromiseReactionCodeGenerator(vm), this), DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().newPromiseCapabilityPrivateName(), m_newPromiseCapabilityFunction.get(), DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().triggerPromiseReactionsPrivateName(), JSFunction::createBuiltinFunction(vm, promiseOperationsTriggerPromiseReactionsCodeGenerator(vm), this), DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().rejectPromisePrivateName(), JSFunction::createBuiltinFunction(vm, promiseOperationsRejectPromiseCodeGenerator(vm), this), DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().fulfillPromisePrivateName(), JSFunction::createBuiltinFunction(vm, promiseOperationsFulfillPromiseCodeGenerator(vm), this), DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().createResolvingFunctionsPrivateName(), JSFunction::createBuiltinFunction(vm, promiseOperationsCreateResolvingFunctionsCodeGenerator(vm), this), DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().promiseReactionJobPrivateName(), JSFunction::createBuiltinFunction(vm, promiseOperationsPromiseReactionJobCodeGenerator(vm), this), DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().promiseResolveThenableJobPrivateName(), JSFunction::createBuiltinFunction(vm, promiseOperationsPromiseResolveThenableJobCodeGenerator(vm), this), DontEnum | DontDelete | ReadOnly),
</del><span class="cx">         GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().InspectorInstrumentationPrivateName(), InspectorInstrumentationObject::create(vm, this, InspectorInstrumentationObject::createStructure(vm, this, m_objectPrototype.get())), DontEnum | DontDelete | ReadOnly),
</span><del>-        GlobalPropertyInfo(vm.propertyNames-&gt;MapPrivateName, mapConstructor, DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().generatorResumePrivateName(), JSFunction::createBuiltinFunction(vm, generatorPrototypeGeneratorResumeCodeGenerator(vm), this), DontEnum | DontDelete | ReadOnly),
</del><ins>+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().MapPrivateName(), mapConstructor, DontEnum | DontDelete | ReadOnly),
</ins><span class="cx">         GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().thisTimeValuePrivateName(), privateFuncThisTimeValue, DontEnum | DontDelete | ReadOnly),
</span><span class="cx">         GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().thisNumberValuePrivateName(), privateFuncThisNumberValue, DontEnum | DontDelete | ReadOnly),
</span><span class="cx"> #if ENABLE(INTL)
</span><span class="lines">@@ -761,36 +742,30 @@
</span><span class="cx">         GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().NumberFormatPrivateName(), intl-&gt;getDirect(vm, vm.propertyNames-&gt;NumberFormat), DontEnum | DontDelete | ReadOnly),
</span><span class="cx"> #endif // ENABLE(INTL)
</span><span class="cx"> 
</span><del>-        GlobalPropertyInfo(vm.propertyNames-&gt;isConstructorPrivateName, JSFunction::create(vm, this, 1, String(), esSpecIsConstructor, NoIntrinsic), DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;isRegExpObjectPrivateName, JSFunction::create(vm, this, 1, String(), esSpecIsRegExpObject, IsRegExpObjectIntrinsic), DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().speciesConstructorPrivateName(), JSFunction::createBuiltinFunction(vm, globalObjectSpeciesConstructorCodeGenerator(vm), this), DontEnum | DontDelete | ReadOnly),
</del><ins>+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().isConstructorPrivateName(), JSFunction::create(vm, this, 1, String(), esSpecIsConstructor, NoIntrinsic), DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().isRegExpObjectPrivateName(), JSFunction::create(vm, this, 1, String(), esSpecIsRegExpObject, IsRegExpObjectIntrinsic), DontEnum | DontDelete | ReadOnly),
</ins><span class="cx"> 
</span><del>-        GlobalPropertyInfo(vm.propertyNames-&gt;regExpProtoFlagsGetterPrivateName, regExpProtoFlagsGetterObject, DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;regExpProtoGlobalGetterPrivateName, regExpProtoGlobalGetterObject, DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;regExpProtoIgnoreCaseGetterPrivateName, regExpProtoIgnoreCaseGetterObject, DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;regExpProtoMultilineGetterPrivateName, regExpProtoMultilineGetterObject, DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;regExpProtoSourceGetterPrivateName, regExpProtoSourceGetterObject, DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;regExpProtoStickyGetterPrivateName, regExpProtoStickyGetterObject, DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;regExpProtoUnicodeGetterPrivateName, regExpProtoUnicodeGetterObject, DontEnum | DontDelete | ReadOnly),
</del><ins>+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().regExpProtoFlagsGetterPrivateName(), regExpProtoFlagsGetterObject, DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().regExpProtoGlobalGetterPrivateName(), regExpProtoGlobalGetterObject, DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().regExpProtoIgnoreCaseGetterPrivateName(), regExpProtoIgnoreCaseGetterObject, DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().regExpProtoMultilineGetterPrivateName(), regExpProtoMultilineGetterObject, DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().regExpProtoSourceGetterPrivateName(), regExpProtoSourceGetterObject, DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().regExpProtoStickyGetterPrivateName(), regExpProtoStickyGetterObject, DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().regExpProtoUnicodeGetterPrivateName(), regExpProtoUnicodeGetterObject, DontEnum | DontDelete | ReadOnly),
</ins><span class="cx"> 
</span><span class="cx">         // RegExp.prototype helpers.
</span><del>-        GlobalPropertyInfo(vm.propertyNames-&gt;regExpBuiltinExecPrivateName, builtinRegExpExec, DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;regExpCreatePrivateName, JSFunction::create(vm, this, 2, String(), esSpecRegExpCreate, NoIntrinsic), DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().hasObservableSideEffectsForRegExpMatchPrivateName(), JSFunction::createBuiltinFunction(vm, regExpPrototypeHasObservableSideEffectsForRegExpMatchCodeGenerator(vm), this), DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().hasObservableSideEffectsForRegExpSplitPrivateName(), JSFunction::createBuiltinFunction(vm, regExpPrototypeHasObservableSideEffectsForRegExpSplitCodeGenerator(vm), this), DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().advanceStringIndexPrivateName(), JSFunction::createBuiltinFunction(vm, regExpPrototypeAdvanceStringIndexCodeGenerator(vm), this), DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().regExpExecPrivateName(), JSFunction::createBuiltinFunction(vm, regExpPrototypeRegExpExecCodeGenerator(vm), this), DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;regExpMatchFastPrivateName, JSFunction::create(vm, this, 1, String(), regExpProtoFuncMatchFast), DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;regExpSearchFastPrivateName, JSFunction::create(vm, this, 1, String(), regExpProtoFuncSearchFast), DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;regExpSplitFastPrivateName, JSFunction::create(vm, this, 2, String(), regExpProtoFuncSplitFast), DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;regExpPrototypeSymbolReplacePrivateName, m_regExpPrototype-&gt;getDirect(vm, vm.propertyNames-&gt;replaceSymbol), DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;regExpTestFastPrivateName, JSFunction::create(vm, this, 1, String(), regExpProtoFuncTestFast, RegExpTestFastIntrinsic), DontEnum | DontDelete | ReadOnly),
</del><ins>+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().regExpBuiltinExecPrivateName(), builtinRegExpExec, DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().regExpCreatePrivateName(), JSFunction::create(vm, this, 2, String(), esSpecRegExpCreate, NoIntrinsic), DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().regExpMatchFastPrivateName(), JSFunction::create(vm, this, 1, String(), regExpProtoFuncMatchFast), DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().regExpSearchFastPrivateName(), JSFunction::create(vm, this, 1, String(), regExpProtoFuncSearchFast), DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().regExpSplitFastPrivateName(), JSFunction::create(vm, this, 2, String(), regExpProtoFuncSplitFast), DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().regExpPrototypeSymbolReplacePrivateName(), m_regExpPrototype-&gt;getDirect(vm, vm.propertyNames-&gt;replaceSymbol), DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().regExpTestFastPrivateName(), JSFunction::create(vm, this, 1, String(), regExpProtoFuncTestFast, RegExpTestFastIntrinsic), DontEnum | DontDelete | ReadOnly),
</ins><span class="cx"> 
</span><span class="cx">         // String.prototype helpers.
</span><del>-        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().hasObservableSideEffectsForStringReplacePrivateName(), JSFunction::createBuiltinFunction(vm, stringPrototypeHasObservableSideEffectsForStringReplaceCodeGenerator(vm), this), DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;stringIncludesInternalPrivateName, JSFunction::create(vm, this, 1, String(), builtinStringIncludesInternal), DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;stringSplitFastPrivateName, JSFunction::create(vm, this, 2, String(), stringProtoFuncSplitFast), DontEnum | DontDelete | ReadOnly),
-        GlobalPropertyInfo(vm.propertyNames-&gt;stringSubstrInternalPrivateName, JSFunction::create(vm, this, 2, String(), builtinStringSubstrInternal), DontEnum | DontDelete | ReadOnly),
</del><ins>+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().stringIncludesInternalPrivateName(), JSFunction::create(vm, this, 1, String(), builtinStringIncludesInternal), DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().stringSplitFastPrivateName(), JSFunction::create(vm, this, 2, String(), stringProtoFuncSplitFast), DontEnum | DontDelete | ReadOnly),
+        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().stringSubstrInternalPrivateName(), JSFunction::create(vm, this, 2, String(), builtinStringSubstrInternal), DontEnum | DontDelete | ReadOnly),
</ins><span class="cx">     };
</span><span class="cx">     addStaticGlobals(staticGlobals, WTF_ARRAY_LENGTH(staticGlobals));
</span><span class="cx">     
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSInternalPromisecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSInternalPromise.cpp (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSInternalPromise.cpp        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/runtime/JSInternalPromise.cpp        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2015 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2015-2016 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSInternalPromiseDeferredcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSInternalPromiseDeferred.cpp (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSInternalPromiseDeferred.cpp        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/runtime/JSInternalPromiseDeferred.cpp        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -46,7 +46,7 @@
</span><span class="cx"> 
</span><span class="cx">     JSValue deferred = newPromiseCapability(exec, globalObject, globalObject-&gt;internalPromiseConstructor());
</span><span class="cx"> 
</span><del>-    JSValue promise = deferred.get(exec, vm.propertyNames-&gt;promisePrivateName);
</del><ins>+    JSValue promise = deferred.get(exec, vm.propertyNames-&gt;builtinNames().promisePrivateName());
</ins><span class="cx">     ASSERT(promise.inherits(JSInternalPromise::info()));
</span><span class="cx">     JSValue resolve = deferred.get(exec, vm.propertyNames-&gt;builtinNames().resolvePrivateName());
</span><span class="cx">     JSValue reject = deferred.get(exec, vm.propertyNames-&gt;builtinNames().rejectPrivateName());
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSPromisecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSPromise.cpp (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSPromise.cpp        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/runtime/JSPromise.cpp        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2013 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2013, 2016 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -26,6 +26,7 @@
</span><span class="cx"> #include &quot;config.h&quot;
</span><span class="cx"> #include &quot;JSPromise.h&quot;
</span><span class="cx"> 
</span><ins>+#include &quot;BuiltinNames.h&quot;
</ins><span class="cx"> #include &quot;Error.h&quot;
</span><span class="cx"> #include &quot;JSCJSValueInlines.h&quot;
</span><span class="cx"> #include &quot;JSCellInlines.h&quot;
</span><span class="lines">@@ -58,10 +59,10 @@
</span><span class="cx"> void JSPromise::finishCreation(VM&amp; vm)
</span><span class="cx"> {
</span><span class="cx">     Base::finishCreation(vm);
</span><del>-    putDirect(vm, vm.propertyNames-&gt;promiseStatePrivateName, jsNumber(static_cast&lt;unsigned&gt;(Status::Pending)));
-    putDirect(vm, vm.propertyNames-&gt;promiseFulfillReactionsPrivateName, jsUndefined());
-    putDirect(vm, vm.propertyNames-&gt;promiseRejectReactionsPrivateName, jsUndefined());
-    putDirect(vm, vm.propertyNames-&gt;promiseResultPrivateName, jsUndefined());
</del><ins>+    putDirect(vm, vm.propertyNames-&gt;builtinNames().promiseStatePrivateName(), jsNumber(static_cast&lt;unsigned&gt;(Status::Pending)));
+    putDirect(vm, vm.propertyNames-&gt;builtinNames().promiseFulfillReactionsPrivateName(), jsUndefined());
+    putDirect(vm, vm.propertyNames-&gt;builtinNames().promiseRejectReactionsPrivateName(), jsUndefined());
+    putDirect(vm, vm.propertyNames-&gt;builtinNames().promiseResultPrivateName(), jsUndefined());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void JSPromise::initialize(ExecState* exec, JSGlobalObject* globalObject, JSValue executor)
</span><span class="lines">@@ -78,7 +79,7 @@
</span><span class="cx"> 
</span><span class="cx"> auto JSPromise::status(VM&amp; vm) const -&gt; Status
</span><span class="cx"> {
</span><del>-    JSValue value = getDirect(vm, vm.propertyNames-&gt;promiseStatePrivateName);
</del><ins>+    JSValue value = getDirect(vm, vm.propertyNames-&gt;builtinNames().promiseStatePrivateName());
</ins><span class="cx">     ASSERT(value.isUInt32());
</span><span class="cx">     return static_cast&lt;Status&gt;(value.asUInt32());
</span><span class="cx"> }
</span><span class="lines">@@ -85,7 +86,7 @@
</span><span class="cx"> 
</span><span class="cx"> JSValue JSPromise::result(VM&amp; vm) const
</span><span class="cx"> {
</span><del>-    return getDirect(vm, vm.propertyNames-&gt;promiseResultPrivateName);
</del><ins>+    return getDirect(vm, vm.propertyNames-&gt;builtinNames().promiseResultPrivateName());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace JSC
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSPromiseDeferredcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSPromiseDeferred.cpp (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSPromiseDeferred.cpp        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/runtime/JSPromiseDeferred.cpp        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2013 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2013, 2016 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -59,7 +59,7 @@
</span><span class="cx"> 
</span><span class="cx">     JSValue deferred = newPromiseCapability(exec, globalObject, globalObject-&gt;promiseConstructor());
</span><span class="cx"> 
</span><del>-    JSValue promise = deferred.get(exec, vm.propertyNames-&gt;promisePrivateName);
</del><ins>+    JSValue promise = deferred.get(exec, vm.propertyNames-&gt;builtinNames().promisePrivateName());
</ins><span class="cx">     ASSERT(promise.inherits(JSPromise::info()));
</span><span class="cx">     JSValue resolve = deferred.get(exec, vm.propertyNames-&gt;builtinNames().resolvePrivateName());
</span><span class="cx">     JSValue reject = deferred.get(exec, vm.propertyNames-&gt;builtinNames().rejectPrivateName());
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSStringIteratorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSStringIterator.cpp (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSStringIterator.cpp        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/runtime/JSStringIterator.cpp        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -1,5 +1,6 @@
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2015 Yusuke Suzuki &lt;utatane.tea@gmail.com&gt;.
</span><ins>+ * Copyright (C) 2016 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -26,6 +27,7 @@
</span><span class="cx"> #include &quot;config.h&quot;
</span><span class="cx"> #include &quot;JSStringIterator.h&quot;
</span><span class="cx"> 
</span><ins>+#include &quot;BuiltinNames.h&quot;
</ins><span class="cx"> #include &quot;JSCJSValueInlines.h&quot;
</span><span class="cx"> #include &quot;JSCellInlines.h&quot;
</span><span class="cx"> #include &quot;StructureInlines.h&quot;
</span><span class="lines">@@ -38,23 +40,23 @@
</span><span class="cx"> {
</span><span class="cx">     Base::finishCreation(vm);
</span><span class="cx">     ASSERT(inherits(info()));
</span><del>-    putDirect(vm, vm.propertyNames-&gt;iteratedStringPrivateName, iteratedString);
-    putDirect(vm, vm.propertyNames-&gt;stringIteratorNextIndexPrivateName, jsNumber(0));
</del><ins>+    putDirect(vm, vm.propertyNames-&gt;builtinNames().iteratedStringPrivateName(), iteratedString);
+    putDirect(vm, vm.propertyNames-&gt;builtinNames().stringIteratorNextIndexPrivateName(), jsNumber(0));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSValue JSStringIterator::iteratedValue(ExecState* exec) const
</span><span class="cx"> {
</span><del>-    return getDirect(exec-&gt;vm(), exec-&gt;vm().propertyNames-&gt;iteratedStringPrivateName);
</del><ins>+    return getDirect(exec-&gt;vm(), exec-&gt;vm().propertyNames-&gt;builtinNames().iteratedStringPrivateName());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSStringIterator* JSStringIterator::clone(ExecState* exec)
</span><span class="cx"> {
</span><span class="cx">     VM&amp; vm = exec-&gt;vm();
</span><del>-    JSValue iteratedString = getDirect(vm, vm.propertyNames-&gt;iteratedStringPrivateName);
-    JSValue nextIndex = getDirect(vm, vm.propertyNames-&gt;stringIteratorNextIndexPrivateName);
</del><ins>+    JSValue iteratedString = getDirect(vm, vm.propertyNames-&gt;builtinNames().iteratedStringPrivateName());
+    JSValue nextIndex = getDirect(vm, vm.propertyNames-&gt;builtinNames().stringIteratorNextIndexPrivateName());
</ins><span class="cx"> 
</span><span class="cx">     auto clone = JSStringIterator::create(exec, exec-&gt;callee()-&gt;globalObject()-&gt;stringIteratorStructure(), asString(iteratedString));
</span><del>-    clone-&gt;putDirect(vm, vm.propertyNames-&gt;stringIteratorNextIndexPrivateName, nextIndex);
</del><ins>+    clone-&gt;putDirect(vm, vm.propertyNames-&gt;builtinNames().stringIteratorNextIndexPrivateName(), nextIndex);
</ins><span class="cx">     return clone;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeMapPrototypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/MapPrototype.cpp (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/MapPrototype.cpp        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/runtime/MapPrototype.cpp        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -78,8 +78,8 @@
</span><span class="cx">     JSC_NATIVE_FUNCTION_WITHOUT_TRANSITION(vm.propertyNames-&gt;builtinNames().valuesPublicName(), mapProtoFuncValues, DontEnum, 0);
</span><span class="cx"> 
</span><span class="cx">     // Private get / set operations.
</span><del>-    JSC_NATIVE_FUNCTION_WITHOUT_TRANSITION(vm.propertyNames-&gt;getPrivateName, mapProtoFuncGet, DontEnum, 1);
-    JSC_NATIVE_FUNCTION_WITHOUT_TRANSITION(vm.propertyNames-&gt;setPrivateName, mapProtoFuncSet, DontEnum, 2);
</del><ins>+    JSC_NATIVE_FUNCTION_WITHOUT_TRANSITION(vm.propertyNames-&gt;builtinNames().getPrivateName(), mapProtoFuncGet, DontEnum, 1);
+    JSC_NATIVE_FUNCTION_WITHOUT_TRANSITION(vm.propertyNames-&gt;builtinNames().setPrivateName(), mapProtoFuncSet, DontEnum, 2);
</ins><span class="cx"> 
</span><span class="cx">     JSFunction* entries = JSFunction::create(vm, globalObject, 0, vm.propertyNames-&gt;builtinNames().entriesPublicName().string(), mapProtoFuncEntries);
</span><span class="cx">     putDirectWithoutTransition(vm, vm.propertyNames-&gt;builtinNames().entriesPublicName(), entries, DontEnum);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeObjectConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/ObjectConstructor.cpp (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/ObjectConstructor.cpp        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/runtime/ObjectConstructor.cpp        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -21,6 +21,7 @@
</span><span class="cx"> #include &quot;config.h&quot;
</span><span class="cx"> #include &quot;ObjectConstructor.h&quot;
</span><span class="cx"> 
</span><ins>+#include &quot;BuiltinNames.h&quot;
</ins><span class="cx"> #include &quot;ButterflyInlines.h&quot;
</span><span class="cx"> #include &quot;CopiedSpaceInlines.h&quot;
</span><span class="cx"> #include &quot;Error.h&quot;
</span><span class="lines">@@ -99,10 +100,10 @@
</span><span class="cx">     // no. of arguments for constructor
</span><span class="cx">     putDirectWithoutTransition(vm, vm.propertyNames-&gt;length, jsNumber(1), ReadOnly | DontEnum | DontDelete);
</span><span class="cx"> 
</span><del>-    JSC_NATIVE_FUNCTION_WITHOUT_TRANSITION(vm.propertyNames-&gt;createPrivateName, objectConstructorCreate, DontEnum, 2);
-    JSC_NATIVE_FUNCTION_WITHOUT_TRANSITION(vm.propertyNames-&gt;definePropertyPrivateName, objectConstructorDefineProperty, DontEnum, 3);
-    JSC_NATIVE_FUNCTION_WITHOUT_TRANSITION(vm.propertyNames-&gt;getPrototypeOfPrivateName, objectConstructorGetPrototypeOf, DontEnum, 1);
-    JSC_NATIVE_FUNCTION_WITHOUT_TRANSITION(vm.propertyNames-&gt;getOwnPropertyNamesPrivateName, objectConstructorGetOwnPropertyNames, DontEnum, 1);
</del><ins>+    JSC_NATIVE_FUNCTION_WITHOUT_TRANSITION(vm.propertyNames-&gt;builtinNames().createPrivateName(), objectConstructorCreate, DontEnum, 2);
+    JSC_NATIVE_FUNCTION_WITHOUT_TRANSITION(vm.propertyNames-&gt;builtinNames().definePropertyPrivateName(), objectConstructorDefineProperty, DontEnum, 3);
+    JSC_NATIVE_FUNCTION_WITHOUT_TRANSITION(vm.propertyNames-&gt;builtinNames().getPrototypeOfPrivateName(), objectConstructorGetPrototypeOf, DontEnum, 1);
+    JSC_NATIVE_FUNCTION_WITHOUT_TRANSITION(vm.propertyNames-&gt;builtinNames().getOwnPropertyNamesPrivateName(), objectConstructorGetOwnPropertyNames, DontEnum, 1);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSFunction* ObjectConstructor::addDefineProperty(ExecState* exec, JSGlobalObject* globalObject)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeReflectObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/ReflectObject.cpp (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/ReflectObject.cpp        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/runtime/ReflectObject.cpp        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2015 Apple Inc. All Rights Reserved.
</del><ins>+ * Copyright (C) 2015-2016 Apple Inc. All Rights Reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -26,6 +26,7 @@
</span><span class="cx"> #include &quot;config.h&quot;
</span><span class="cx"> #include &quot;ReflectObject.h&quot;
</span><span class="cx"> 
</span><ins>+#include &quot;BuiltinNames.h&quot;
</ins><span class="cx"> #include &quot;JSCInlines.h&quot;
</span><span class="cx"> #include &quot;JSGlobalObjectFunctions.h&quot;
</span><span class="cx"> #include &quot;JSPropertyNameIterator.h&quot;
</span><span class="lines">@@ -85,8 +86,8 @@
</span><span class="cx">     Base::finishCreation(vm);
</span><span class="cx">     ASSERT(inherits(info()));
</span><span class="cx"> 
</span><del>-    JSC_NATIVE_FUNCTION_WITHOUT_TRANSITION(vm.propertyNames-&gt;ownKeysPrivateName, reflectObjectOwnKeys, DontEnum | DontDelete | ReadOnly, 1);
-    JSC_NATIVE_FUNCTION_WITHOUT_TRANSITION(vm.propertyNames-&gt;getOwnPropertyDescriptorPrivateName, reflectObjectGetOwnPropertyDescriptor, DontEnum | DontDelete | ReadOnly, 2);
</del><ins>+    JSC_NATIVE_FUNCTION_WITHOUT_TRANSITION(vm.propertyNames-&gt;builtinNames().ownKeysPrivateName(), reflectObjectOwnKeys, DontEnum | DontDelete | ReadOnly, 1);
+    JSC_NATIVE_FUNCTION_WITHOUT_TRANSITION(vm.propertyNames-&gt;builtinNames().getOwnPropertyDescriptorPrivateName(), reflectObjectGetOwnPropertyDescriptor, DontEnum | DontDelete | ReadOnly, 2);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // ------------------------------ Functions --------------------------------
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeStringPrototypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/StringPrototype.cpp (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/StringPrototype.cpp        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/runtime/StringPrototype.cpp        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -23,6 +23,7 @@
</span><span class="cx"> #include &quot;config.h&quot;
</span><span class="cx"> #include &quot;StringPrototype.h&quot;
</span><span class="cx"> 
</span><ins>+#include &quot;BuiltinNames.h&quot;
</ins><span class="cx"> #include &quot;ButterflyInlines.h&quot;
</span><span class="cx"> #include &quot;CachedCall.h&quot;
</span><span class="cx"> #include &quot;CopiedSpaceInlines.h&quot;
</span><span class="lines">@@ -137,8 +138,8 @@
</span><span class="cx">     JSC_NATIVE_FUNCTION_WITHOUT_TRANSITION(&quot;concat&quot;, stringProtoFuncConcat, DontEnum, 1);
</span><span class="cx">     JSC_NATIVE_FUNCTION_WITHOUT_TRANSITION(&quot;indexOf&quot;, stringProtoFuncIndexOf, DontEnum, 1);
</span><span class="cx">     JSC_NATIVE_FUNCTION_WITHOUT_TRANSITION(&quot;lastIndexOf&quot;, stringProtoFuncLastIndexOf, DontEnum, 1);
</span><del>-    JSC_NATIVE_INTRINSIC_FUNCTION_WITHOUT_TRANSITION(vm.propertyNames-&gt;replaceUsingRegExpPrivateName, stringProtoFuncReplaceUsingRegExp, DontEnum, 2, StringPrototypeReplaceRegExpIntrinsic);
-    JSC_NATIVE_FUNCTION_WITHOUT_TRANSITION(vm.propertyNames-&gt;replaceUsingStringSearchPrivateName, stringProtoFuncReplaceUsingStringSearch, DontEnum, 2);
</del><ins>+    JSC_NATIVE_INTRINSIC_FUNCTION_WITHOUT_TRANSITION(vm.propertyNames-&gt;builtinNames().replaceUsingRegExpPrivateName(), stringProtoFuncReplaceUsingRegExp, DontEnum, 2, StringPrototypeReplaceRegExpIntrinsic);
+    JSC_NATIVE_FUNCTION_WITHOUT_TRANSITION(vm.propertyNames-&gt;builtinNames().replaceUsingStringSearchPrivateName(), stringProtoFuncReplaceUsingStringSearch, DontEnum, 2);
</ins><span class="cx">     JSC_NATIVE_FUNCTION_WITHOUT_TRANSITION(&quot;slice&quot;, stringProtoFuncSlice, DontEnum, 2);
</span><span class="cx">     JSC_NATIVE_FUNCTION_WITHOUT_TRANSITION(&quot;substr&quot;, stringProtoFuncSubstr, DontEnum, 2);
</span><span class="cx">     JSC_NATIVE_FUNCTION_WITHOUT_TRANSITION(&quot;substring&quot;, stringProtoFuncSubstring, DontEnum, 2);
</span><span class="lines">@@ -175,7 +176,7 @@
</span><span class="cx">     JSC_NATIVE_FUNCTION_WITHOUT_TRANSITION(&quot;normalize&quot;, stringProtoFuncNormalize, DontEnum, 1);
</span><span class="cx">     JSC_NATIVE_FUNCTION_WITHOUT_TRANSITION(vm.propertyNames-&gt;iteratorSymbol, stringProtoFuncIterator, DontEnum, 0);
</span><span class="cx"> 
</span><del>-    JSC_NATIVE_INTRINSIC_FUNCTION_WITHOUT_TRANSITION(vm.propertyNames-&gt;charCodeAtPrivateName, stringProtoFuncCharCodeAt, DontEnum, 1, CharCodeAtIntrinsic);
</del><ins>+    JSC_NATIVE_INTRINSIC_FUNCTION_WITHOUT_TRANSITION(vm.propertyNames-&gt;builtinNames().charCodeAtPrivateName(), stringProtoFuncCharCodeAt, DontEnum, 1, CharCodeAtIntrinsic);
</ins><span class="cx"> 
</span><span class="cx">     // The constructor will be added later, after StringConstructor has been built
</span><span class="cx">     putDirectWithoutTransition(vm, vm.propertyNames-&gt;length, jsNumber(0), DontDelete | ReadOnly | DontEnum);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeTypedArrayInlinesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/TypedArrayInlines.h (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/TypedArrayInlines.h        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/JavaScriptCore/runtime/TypedArrayInlines.h        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -29,7 +29,6 @@
</span><span class="cx"> #include &quot;GCIncomingRefCountedInlines.h&quot;
</span><span class="cx"> #include &quot;GenericTypedArrayViewInlines.h&quot;
</span><span class="cx"> #include &quot;JSArrayBufferViewInlines.h&quot;
</span><del>-#include &quot;JSGenericTypedArrayViewConstructorInlines.h&quot;
</del><span class="cx"> #include &quot;JSGenericTypedArrayViewInlines.h&quot;
</span><span class="cx"> #include &quot;JSGenericTypedArrayViewPrototypeInlines.h&quot;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/WebCore/ChangeLog        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -1,3 +1,14 @@
</span><ins>+2016-06-21  Keith Miller  &lt;keith_miller@apple.com&gt;
+
+        It should be easy to add a private global helper function for builtins
+        https://bugs.webkit.org/show_bug.cgi?id=158893
+
+        Reviewed by Mark Lam.
+
+        Add JSCJSValueInlines.h to fix build issues.
+
+        * platform/mock/mediasource/MockBox.cpp:
+
</ins><span class="cx"> 2016-06-21  Amir Alavi  &lt;aalavi@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Upstream WKHTTPCookiesForURL from WebKitSystemInterface to OpenSource
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmockmediasourceMockBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mock/mediasource/MockBox.cpp (202279 => 202280)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mock/mediasource/MockBox.cpp        2016-06-21 17:20:08 UTC (rev 202279)
+++ trunk/Source/WebCore/platform/mock/mediasource/MockBox.cpp        2016-06-21 17:54:33 UTC (rev 202280)
</span><span class="lines">@@ -28,6 +28,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(MEDIA_SOURCE)
</span><span class="cx"> 
</span><ins>+#include &lt;JavaScriptCore/JSCJSValueInlines.h&gt;
</ins><span class="cx"> #include &lt;JavaScriptCore/TypedArrayInlines.h&gt;
</span><span class="cx"> #include &lt;runtime/ArrayBuffer.h&gt;
</span><span class="cx"> #include &lt;runtime/DataView.h&gt;
</span></span></pre>
</div>
</div>

</body>
</html>