<!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>[163225] trunk</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/163225">163225</a></dd>
<dt>Author</dt> <dd>oliver@apple.com</dd>
<dt>Date</dt> <dd>2014-01-31 17:37:59 -0800 (Fri, 31 Jan 2014)</dd>
</dl>
<h3>Log Message</h3>
<pre>2014-01-31 Oliver Hunt <oliver@apple.com>
Rollout <a href="http://trac.webkit.org/projects/webkit/changeset/163195">r163195</a> and related patches</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkChangeLog">trunk/ChangeLog</a></li>
<li><a href="#trunkGNUmakefileam">trunk/GNUmakefile.am</a></li>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsjsarrayeveryexpectedtxt">trunk/LayoutTests/js/array-every-expected.txt</a></li>
<li><a href="#trunkLayoutTestsjsdomarrayprototypepropertiesexpectedtxt">trunk/LayoutTests/js/dom/array-prototype-properties-expected.txt</a></li>
<li><a href="#trunkSourceJavaScriptCoreAPIJSCallbackObjectFunctionsh">trunk/Source/JavaScriptCore/API/JSCallbackObjectFunctions.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreCMakeListstxt">trunk/Source/JavaScriptCore/CMakeLists.txt</a></li>
<li><a href="#trunkSourceJavaScriptCoreChangeLog">trunk/Source/JavaScriptCore/ChangeLog</a></li>
<li><a href="#trunkSourceJavaScriptCoreDerivedSourcesmake">trunk/Source/JavaScriptCore/DerivedSources.make</a></li>
<li><a href="#trunkSourceJavaScriptCoreGNUmakefileam">trunk/Source/JavaScriptCore/GNUmakefile.am</a></li>
<li><a href="#trunkSourceJavaScriptCoreGNUmakefilelistam">trunk/Source/JavaScriptCore/GNUmakefile.list.am</a></li>
<li><a href="#trunkSourceJavaScriptCoreJavaScriptCorevcxprojJavaScriptCorevcxproj">trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCore.vcxproj</a></li>
<li><a href="#trunkSourceJavaScriptCoreJavaScriptCorevcxprojJavaScriptCorevcxprojfilters">trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters</a></li>
<li><a href="#trunkSourceJavaScriptCoreJavaScriptCorevcxprojJavaScriptCoreCommonprops">trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCoreCommon.props</a></li>
<li><a href="#trunkSourceJavaScriptCoreJavaScriptCorevcxprojcopyfilescmd">trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/copy-files.cmd</a></li>
<li><a href="#trunkSourceJavaScriptCoreJavaScriptCorexcodeprojprojectpbxproj">trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecodeCodeBlockcpp">trunk/Source/JavaScriptCore/bytecode/CodeBlock.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecodeCodeBlockh">trunk/Source/JavaScriptCore/bytecode/CodeBlock.h</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecodeProfiledCodeBlockJettisoningWatchpointcpp">trunk/Source/JavaScriptCore/bytecode/ProfiledCodeBlockJettisoningWatchpoint.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecodeUnlinkedCodeBlockcpp">trunk/Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecodeUnlinkedCodeBlockh">trunk/Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.h</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecompilerBytecodeGeneratorcpp">trunk/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecompilerBytecodeGeneratorh">trunk/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.h</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecompilerNodesCodegencpp">trunk/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorecreate_hash_table">trunk/Source/JavaScriptCore/create_hash_table</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGDominatorscpp">trunk/Source/JavaScriptCore/dfg/DFGDominators.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGJITCodecpp">trunk/Source/JavaScriptCore/dfg/DFGJITCode.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGOperationscpp">trunk/Source/JavaScriptCore/dfg/DFGOperations.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreinterpreterCachedCallh">trunk/Source/JavaScriptCore/interpreter/CachedCall.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreinterpreterInterpretercpp">trunk/Source/JavaScriptCore/interpreter/Interpreter.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreinterpreterProtoCallFramecpp">trunk/Source/JavaScriptCore/interpreter/ProtoCallFrame.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorejitJITOpcodescpp">trunk/Source/JavaScriptCore/jit/JITOpcodes.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorejitJITOpcodes32_64cpp">trunk/Source/JavaScriptCore/jit/JITOpcodes32_64.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorejitJITOperationscpp">trunk/Source/JavaScriptCore/jit/JITOperations.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorejitJITPropertyAccesscpp">trunk/Source/JavaScriptCore/jit/JITPropertyAccess.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorejitJITPropertyAccess32_64cpp">trunk/Source/JavaScriptCore/jit/JITPropertyAccess32_64.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorejsccpp">trunk/Source/JavaScriptCore/jsc.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorellintLLIntOffsetsExtractorcpp">trunk/Source/JavaScriptCore/llint/LLIntOffsetsExtractor.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorellintLLIntSlowPathscpp">trunk/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreparserASTBuilderh">trunk/Source/JavaScriptCore/parser/ASTBuilder.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreparserLexercpp">trunk/Source/JavaScriptCore/parser/Lexer.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreparserLexerh">trunk/Source/JavaScriptCore/parser/Lexer.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreparserNodescpp">trunk/Source/JavaScriptCore/parser/Nodes.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="#trunkSourceJavaScriptCoreparserParserh">trunk/Source/JavaScriptCore/parser/Parser.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreparserParserModesh">trunk/Source/JavaScriptCore/parser/ParserModes.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreparserParserTokensh">trunk/Source/JavaScriptCore/parser/ParserTokens.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeArgumentsh">trunk/Source/JavaScriptCore/runtime/Arguments.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeArgumentsIteratorPrototypecpp">trunk/Source/JavaScriptCore/runtime/ArgumentsIteratorPrototype.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeArrayPrototypecpp">trunk/Source/JavaScriptCore/runtime/ArrayPrototype.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeCodeCachecpp">trunk/Source/JavaScriptCore/runtime/CodeCache.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="#trunkSourceJavaScriptCoreruntimeCommonSlowPathsExceptionscpp">trunk/Source/JavaScriptCore/runtime/CommonSlowPathsExceptions.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeExceptionHelperscpp">trunk/Source/JavaScriptCore/runtime/ExceptionHelpers.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeExecutableh">trunk/Source/JavaScriptCore/runtime/Executable.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeFunctionPrototypecpp">trunk/Source/JavaScriptCore/runtime/FunctionPrototype.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSActivationcpp">trunk/Source/JavaScriptCore/runtime/JSActivation.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSArgumentsIteratorcpp">trunk/Source/JavaScriptCore/runtime/JSArgumentsIterator.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSArraycpp">trunk/Source/JavaScriptCore/runtime/JSArray.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSArrayIteratorcpp">trunk/Source/JavaScriptCore/runtime/JSArrayIterator.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSCJSValuecpp">trunk/Source/JavaScriptCore/runtime/JSCJSValue.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSCellInlinesh">trunk/Source/JavaScriptCore/runtime/JSCellInlines.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSFunctioncpp">trunk/Source/JavaScriptCore/runtime/JSFunction.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSFunctionh">trunk/Source/JavaScriptCore/runtime/JSFunction.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSFunctionInlinesh">trunk/Source/JavaScriptCore/runtime/JSFunctionInlines.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSGenericTypedArrayViewConstructorInlinesh">trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayViewConstructorInlines.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSGenericTypedArrayViewInlinesh">trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayViewInlines.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSGenericTypedArrayViewPrototypeInlinesh">trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayViewPrototypeInlines.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSGlobalObjectcpp">trunk/Source/JavaScriptCore/runtime/JSGlobalObject.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSGlobalObjecth">trunk/Source/JavaScriptCore/runtime/JSGlobalObject.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSObjectcpp">trunk/Source/JavaScriptCore/runtime/JSObject.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSObjecth">trunk/Source/JavaScriptCore/runtime/JSObject.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSPromiseConstructorcpp">trunk/Source/JavaScriptCore/runtime/JSPromiseConstructor.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSPromiseDeferredcpp">trunk/Source/JavaScriptCore/runtime/JSPromiseDeferred.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSPromisePrototypecpp">trunk/Source/JavaScriptCore/runtime/JSPromisePrototype.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSPromiseReactionh">trunk/Source/JavaScriptCore/runtime/JSPromiseReaction.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSPropertyNameIteratorcpp">trunk/Source/JavaScriptCore/runtime/JSPropertyNameIterator.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSPropertyNameIteratorh">trunk/Source/JavaScriptCore/runtime/JSPropertyNameIterator.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSStringh">trunk/Source/JavaScriptCore/runtime/JSString.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSSymbolTableObjectcpp">trunk/Source/JavaScriptCore/runtime/JSSymbolTableObject.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSSymbolTableObjecth">trunk/Source/JavaScriptCore/runtime/JSSymbolTableObject.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeLookupcpp">trunk/Source/JavaScriptCore/runtime/Lookup.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeLookuph">trunk/Source/JavaScriptCore/runtime/Lookup.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeNativeErrorConstructorcpp">trunk/Source/JavaScriptCore/runtime/NativeErrorConstructor.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeNativeErrorConstructorh">trunk/Source/JavaScriptCore/runtime/NativeErrorConstructor.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimePropertySloth">trunk/Source/JavaScriptCore/runtime/PropertySlot.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeRegExpConstructorcpp">trunk/Source/JavaScriptCore/runtime/RegExpConstructor.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeRegExpPrototypecpp">trunk/Source/JavaScriptCore/runtime/RegExpPrototype.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeSetConstructorcpp">trunk/Source/JavaScriptCore/runtime/SetConstructor.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeStringObjectcpp">trunk/Source/JavaScriptCore/runtime/StringObject.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeStructurecpp">trunk/Source/JavaScriptCore/runtime/Structure.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeVMcpp">trunk/Source/JavaScriptCore/runtime/VM.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeVMh">trunk/Source/JavaScriptCore/runtime/VM.h</a></li>
<li><a href="#trunkSourceWebCoreCMakeListstxt">trunk/Source/WebCore/CMakeLists.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreModulespluginsQuickTimePluginReplacementcpp">trunk/Source/WebCore/Modules/plugins/QuickTimePluginReplacement.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSIDBAnyCustomcpp">trunk/Source/WebCore/bindings/js/JSIDBAnyCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSIDBDatabaseCustomcpp">trunk/Source/WebCore/bindings/js/JSIDBDatabaseCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSIDBObjectStoreCustomcpp">trunk/Source/WebCore/bindings/js/JSIDBObjectStoreCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSNodeFilterConditioncpp">trunk/Source/WebCore/bindings/js/JSNodeFilterCondition.cpp</a></li>
<li><a href="#trunkSourceWebKitCMakeListstxt">trunk/Source/WebKit/CMakeLists.txt</a></li>
<li><a href="#trunkSourceWebKitChangeLog">trunk/Source/WebKit/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2CMakeListstxt">trunk/Source/WebKit2/CMakeLists.txt</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourcecmakegtestCMakeListstxt">trunk/Source/cmake/gtest/CMakeLists.txt</a></li>
<li><a href="#trunkToolsChangeLog">trunk/Tools/ChangeLog</a></li>
<li><a href="#trunkToolsDumpRenderTreeCMakeListstxt">trunk/Tools/DumpRenderTree/CMakeLists.txt</a></li>
<li><a href="#trunkToolsWebKitTestRunnerCMakeListstxt">trunk/Tools/WebKitTestRunner/CMakeLists.txt</a></li>
<li><a href="#trunkToolsWinCELauncherCMakeListstxt">trunk/Tools/WinCELauncher/CMakeLists.txt</a></li>
</ul>
<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsjsregressarrayprototypeeveryexpectedtxt">trunk/LayoutTests/js/regress/array-prototype-every-expected.txt</a></li>
<li><a href="#trunkLayoutTestsjsregressarrayprototypeeveryhtml">trunk/LayoutTests/js/regress/array-prototype-every.html</a></li>
<li><a href="#trunkLayoutTestsjsregressscripttestsarrayprototypeeveryjs">trunk/LayoutTests/js/regress/script-tests/array-prototype-every.js</a></li>
<li><a href="#trunkSourceJavaScriptCorebuiltinsArrayprototypejs">trunk/Source/JavaScriptCore/builtins/Array.prototype.js</a></li>
<li><a href="#trunkSourceJavaScriptCorebuiltinsBuiltinExecutablescpp">trunk/Source/JavaScriptCore/builtins/BuiltinExecutables.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorebuiltinsBuiltinExecutablesh">trunk/Source/JavaScriptCore/builtins/BuiltinExecutables.h</a></li>
<li><a href="#trunkSourceJavaScriptCoregeneratejsbuiltins">trunk/Source/JavaScriptCore/generate-js-builtins</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSStringInlinesh">trunk/Source/JavaScriptCore/runtime/JSStringInlines.h</a></li>
<li><a href="#trunkSourceWebCoreForwardingHeadersruntimeJSStringInlinesh">trunk/Source/WebCore/ForwardingHeaders/runtime/JSStringInlines.h</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/ChangeLog (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/ChangeLog        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/ChangeLog        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -1,3 +1,10 @@
</span><ins>+2014-01-31 Oliver Hunt <oliver@apple.com>
+
+ Rollout r163195 and related patches
+
+ * GNUmakefile.am:
+ * Source/cmake/gtest/CMakeLists.txt:
+
</ins><span class="cx"> 2014-01-29 Oliver Hunt <oliver@apple.com>
</span><span class="cx">
</span><span class="cx"> Make it possible to implement JS builtins in JS
</span></span></pre></div>
<a id="trunkGNUmakefileam"></a>
<div class="modfile"><h4>Modified: trunk/GNUmakefile.am (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/GNUmakefile.am        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/GNUmakefile.am        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -68,7 +68,6 @@
</span><span class="cx"> dom_binding_idls :=
</span><span class="cx"> wtf_sources :=
</span><span class="cx"> javascriptcore_h_api :=
</span><del>-javascriptcore_builtins_js_nosources :=
</del><span class="cx"> javascriptcore_cppflags:=
</span><span class="cx"> javascriptcore_cflags :=
</span><span class="cx"> javascriptcore_sources :=
</span></span></pre></div>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/LayoutTests/ChangeLog        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -1,3 +1,13 @@
</span><ins>+2014-01-31 Oliver Hunt <oliver@apple.com>
+
+ Rollout r163195 and related patches
+
+ * js/array-every-expected.txt:
+ * js/dom/array-prototype-properties-expected.txt:
+ * js/regress/array-prototype-every-expected.txt: Removed.
+ * js/regress/array-prototype-every.html: Removed.
+ * js/regress/script-tests/array-prototype-every.js: Removed.
+
</ins><span class="cx"> 2014-01-31 Alexey Proskuryakov <ap@apple.com>
</span><span class="cx">
</span><span class="cx"> Update test results for a new DOM URL test (we now pass more).
</span></span></pre></div>
<a id="trunkLayoutTestsjsarrayeveryexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/js/array-every-expected.txt (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/array-every-expected.txt        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/LayoutTests/js/array-every-expected.txt        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -30,12 +30,12 @@
</span><span class="cx"> PASS [12, 54, 18, 130, 44].every(isBigEnoughAndException) threw exception exception from function.
</span><span class="cx">
</span><span class="cx"> 5.0 Wrong Type for Callback Test
</span><del>-PASS [12, 5, 8, 130, 44].every(5) threw exception TypeError: Array.prototype.every callback must be a function.
-PASS [12, 5, 8, 130, 44].every('wrong') threw exception TypeError: Array.prototype.every callback must be a function.
-PASS [12, 5, 8, 130, 44].every(new Object()) threw exception TypeError: Array.prototype.every callback must be a function.
-PASS [12, 5, 8, 130, 44].every(null) threw exception TypeError: Array.prototype.every callback must be a function.
-PASS [12, 5, 8, 130, 44].every(undefined) threw exception TypeError: Array.prototype.every callback must be a function.
-PASS [12, 5, 8, 130, 44].every() threw exception TypeError: Array.prototype.every callback must be a function.
</del><ins>+PASS [12, 5, 8, 130, 44].every(5) threw exception TypeError: Type error.
+PASS [12, 5, 8, 130, 44].every('wrong') threw exception TypeError: Type error.
+PASS [12, 5, 8, 130, 44].every(new Object()) threw exception TypeError: Type error.
+PASS [12, 5, 8, 130, 44].every(null) threw exception TypeError: Type error.
+PASS [12, 5, 8, 130, 44].every(undefined) threw exception TypeError: Type error.
+PASS [12, 5, 8, 130, 44].every() threw exception TypeError: Type error.
</ins><span class="cx">
</span><span class="cx"> 6.0 Early Exit ("Short Circuiting")
</span><span class="cx"> PASS [12, 5, 8, 130, 44].every(isBigEnoughShortCircuit) is false
</span></span></pre></div>
<a id="trunkLayoutTestsjsdomarrayprototypepropertiesexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/js/dom/array-prototype-properties-expected.txt (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/dom/array-prototype-properties-expected.txt        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/LayoutTests/js/dom/array-prototype-properties-expected.txt        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -15,7 +15,7 @@
</span><span class="cx"> PASS Array.prototype.sort.call(undefined) threw exception TypeError: undefined is not an object (evaluating 'Array.prototype.sort.call(undefined)').
</span><span class="cx"> PASS Array.prototype.splice.call(undefined, 0, 1) threw exception TypeError: undefined is not an object (evaluating 'Array.prototype.splice.call(undefined, 0, 1)').
</span><span class="cx"> PASS Array.prototype.unshift.call(undefined, {}) threw exception TypeError: undefined is not an object (evaluating 'Array.prototype.unshift.call(undefined, {})').
</span><del>-PASS Array.prototype.every.call(undefined, toString) threw exception TypeError: Array.prototype.every requires that |this| not be undefined.
</del><ins>+PASS Array.prototype.every.call(undefined, toString) threw exception TypeError: undefined is not an object (evaluating 'Array.prototype.every.call(undefined, toString)').
</ins><span class="cx"> PASS Array.prototype.forEach.call(undefined, toString) threw exception TypeError: undefined is not an object (evaluating 'Array.prototype.forEach.call(undefined, toString)').
</span><span class="cx"> PASS Array.prototype.some.call(undefined, toString) threw exception TypeError: undefined is not an object (evaluating 'Array.prototype.some.call(undefined, toString)').
</span><span class="cx"> PASS Array.prototype.indexOf.call(undefined, 0) threw exception TypeError: undefined is not an object (evaluating 'Array.prototype.indexOf.call(undefined, 0)').
</span></span></pre></div>
<a id="trunkLayoutTestsjsregressarrayprototypeeveryexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/js/regress/array-prototype-every-expected.txt (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/regress/array-prototype-every-expected.txt        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/LayoutTests/js/regress/array-prototype-every-expected.txt        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -1,10 +0,0 @@
</span><del>-JSRegress/array-prototype-every
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-PASS no exception thrown
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
</del></span></pre></div>
<a id="trunkLayoutTestsjsregressarrayprototypeeveryhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/js/regress/array-prototype-every.html (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/regress/array-prototype-every.html        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/LayoutTests/js/regress/array-prototype-every.html        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -1,12 +0,0 @@
</span><del>-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
-<head>
-<script src="../../resources/js-test-pre.js"></script>
-</head>
-<body>
-<script src="resources/regress-pre.js"></script>
-<script src="script-tests/array-prototype-every.js"></script>
-<script src="resources/regress-post.js"></script>
-<script src="../../resources/js-test-post.js"></script>
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsjsregressscripttestsarrayprototypeeveryjs"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/js/regress/script-tests/array-prototype-every.js (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/regress/script-tests/array-prototype-every.js        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/LayoutTests/js/regress/script-tests/array-prototype-every.js        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -1,29 +0,0 @@
</span><del>-var result = 0;
-function test1(a) {
- result << 1;
- result++;
- return true;
-}
-function test2(a,b) {
- result ^= 3;
- result *= 3;
- return true;
-}
-function test3(a,b,c) {
- result ^= result >> 1;
- return true;
-}
-
-var result = 0;
-var array = []
-for (var i = 0; i < 100000; ++i)
- array[i] = 1;
-
-for (var i = 0; i < 10; i++) {
- array.every(test1);
- array.every(test2);
- array.every(test3);
-}
-
-if (result != 1428810496)
- throw "Error: bad result: " + result;
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreAPIJSCallbackObjectFunctionsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/API/JSCallbackObjectFunctions.h (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/API/JSCallbackObjectFunctions.h        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/API/JSCallbackObjectFunctions.h        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -136,7 +136,7 @@
</span><span class="cx"> JSObjectRef thisRef = toRef(thisObject);
</span><span class="cx"> RefPtr<OpaqueJSString> propertyNameRef;
</span><span class="cx">
</span><del>- if (StringImpl* name = propertyName.uid()) {
</del><ins>+ if (StringImpl* name = propertyName.publicName()) {
</ins><span class="cx"> for (JSClassRef jsClass = thisObject->classRef(); jsClass; jsClass = jsClass->parentClass) {
</span><span class="cx"> // optional optimization to bypass getProperty in cases when we only need to know if the property exists
</span><span class="cx"> if (JSObjectHasPropertyCallback hasProperty = jsClass->hasProperty) {
</span><span class="lines">@@ -228,7 +228,7 @@
</span><span class="cx"> RefPtr<OpaqueJSString> propertyNameRef;
</span><span class="cx"> JSValueRef valueRef = toRef(exec, value);
</span><span class="cx">
</span><del>- if (StringImpl* name = propertyName.uid()) {
</del><ins>+ if (StringImpl* name = propertyName.publicName()) {
</ins><span class="cx"> for (JSClassRef jsClass = thisObject->classRef(); jsClass; jsClass = jsClass->parentClass) {
</span><span class="cx"> if (JSObjectSetPropertyCallback setProperty = jsClass->setProperty) {
</span><span class="cx"> if (!propertyNameRef)
</span><span class="lines">@@ -343,7 +343,7 @@
</span><span class="cx"> JSObjectRef thisRef = toRef(thisObject);
</span><span class="cx"> RefPtr<OpaqueJSString> propertyNameRef;
</span><span class="cx">
</span><del>- if (StringImpl* name = propertyName.uid()) {
</del><ins>+ if (StringImpl* name = propertyName.publicName()) {
</ins><span class="cx"> for (JSClassRef jsClass = thisObject->classRef(); jsClass; jsClass = jsClass->parentClass) {
</span><span class="cx"> if (JSObjectDeletePropertyCallback deleteProperty = jsClass->deleteProperty) {
</span><span class="cx"> if (!propertyNameRef)
</span><span class="lines">@@ -564,7 +564,7 @@
</span><span class="cx"> {
</span><span class="cx"> JSObjectRef thisRef = toRef(this);
</span><span class="cx">
</span><del>- if (StringImpl* name = propertyName.uid()) {
</del><ins>+ if (StringImpl* name = propertyName.publicName()) {
</ins><span class="cx"> for (JSClassRef jsClass = classRef(); jsClass; jsClass = jsClass->parentClass) {
</span><span class="cx"> if (OpaqueJSClassStaticValuesTable* staticValues = jsClass->staticValues(exec)) {
</span><span class="cx"> if (StaticValueEntry* entry = staticValues->get(name)) {
</span><span class="lines">@@ -600,7 +600,7 @@
</span><span class="cx"> if (Parent::getOwnPropertySlot(thisObj, exec, propertyName, slot2))
</span><span class="cx"> return JSValue::encode(slot2.getValue(exec, propertyName));
</span><span class="cx">
</span><del>- if (StringImpl* name = propertyName.uid()) {
</del><ins>+ if (StringImpl* name = propertyName.publicName()) {
</ins><span class="cx"> for (JSClassRef jsClass = thisObj->classRef(); jsClass; jsClass = jsClass->parentClass) {
</span><span class="cx"> if (OpaqueJSClassStaticFunctionsTable* staticFunctions = jsClass->staticFunctions(exec)) {
</span><span class="cx"> if (StaticFunctionEntry* entry = staticFunctions->get(name)) {
</span><span class="lines">@@ -626,7 +626,7 @@
</span><span class="cx"> JSObjectRef thisRef = toRef(thisObj);
</span><span class="cx"> RefPtr<OpaqueJSString> propertyNameRef;
</span><span class="cx">
</span><del>- if (StringImpl* name = propertyName.uid()) {
</del><ins>+ if (StringImpl* name = propertyName.publicName()) {
</ins><span class="cx"> for (JSClassRef jsClass = thisObj->classRef(); jsClass; jsClass = jsClass->parentClass) {
</span><span class="cx"> if (JSObjectGetPropertyCallback getProperty = jsClass->getProperty) {
</span><span class="cx"> if (!propertyNameRef)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/CMakeLists.txt (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/CMakeLists.txt        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/CMakeLists.txt        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -5,7 +5,6 @@
</span><span class="cx"> "${JAVASCRIPTCORE_DIR}/ForwardingHeaders"
</span><span class="cx"> "${JAVASCRIPTCORE_DIR}/assembler"
</span><span class="cx"> "${JAVASCRIPTCORE_DIR}/bindings"
</span><del>- "${JAVASCRIPTCORE_DIR}/builtins"
</del><span class="cx"> "${JAVASCRIPTCORE_DIR}/bytecode"
</span><span class="cx"> "${JAVASCRIPTCORE_DIR}/bytecompiler"
</span><span class="cx"> "${JAVASCRIPTCORE_DIR}/dfg"
</span><span class="lines">@@ -53,8 +52,6 @@
</span><span class="cx"> bindings/ScriptObject.cpp
</span><span class="cx"> bindings/ScriptValue.cpp
</span><span class="cx">
</span><del>- builtins/BuiltinExecutables.cpp
-
</del><span class="cx"> bytecode/ArrayAllocationProfile.cpp
</span><span class="cx"> bytecode/ArrayProfile.cpp
</span><span class="cx"> bytecode/BytecodeBasicBlock.cpp
</span><span class="lines">@@ -710,7 +707,7 @@
</span><span class="cx"> macro(GENERATE_HASH_LUT _input _output)
</span><span class="cx"> add_custom_command(
</span><span class="cx"> OUTPUT ${_output}
</span><del>- DEPENDS ${HASH_LUT_GENERATOR} ${_input} ${CMAKE_CURRENT_SOURCE_DIR}/generate-js-builtins
</del><ins>+ DEPENDS ${HASH_LUT_GENERATOR} ${_input}
</ins><span class="cx"> COMMAND ${PERL_EXECUTABLE} ${HASH_LUT_GENERATOR} ${_input} -i > ${_output}
</span><span class="cx"> VERBATIM)
</span><span class="cx"> list(APPEND JavaScriptCore_HEADERS ${_output})
</span><span class="lines">@@ -739,7 +736,6 @@
</span><span class="cx"> yarr
</span><span class="cx">
</span><span class="cx"> collector/handles
</span><del>- ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}
</del><span class="cx"> )
</span><span class="cx">
</span><span class="cx"> set(JavaScriptCore_FORWARDING_HEADERS_FILES
</span><span class="lines">@@ -767,11 +763,8 @@
</span><span class="cx"> assembler/LinkBuffer.h
</span><span class="cx"> assembler/MacroAssembler.h
</span><span class="cx"> assembler/MacroAssemblerCodeRef.h
</span><del>- assembler/MacroAssemblerCodeRef.h
</del><span class="cx"> jit/GPRInfo.h
</span><span class="cx"> runtime/VM.h
</span><del>-
- ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSCBuiltins.h
</del><span class="cx"> )
</span><span class="cx">
</span><span class="cx">
</span><span class="lines">@@ -822,27 +815,16 @@
</span><span class="cx"> COMMAND ${PYTHON_EXECUTABLE} ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/CodeGeneratorInspector.py ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJS.json --output_h_dir "${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}" --output_cpp_dir "${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}" --output_js_dir "${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}" --output_type JavaScript --write_always && mkdir -p ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector && cp ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJSBackendDispatchers.h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJSFrontendDispatchers.h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJSTypeBuilders.h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector
</span><span class="cx"> VERBATIM)
</span><span class="cx">
</span><del>-# JSCBuiltins
-file(GLOB JSCBuiltins_js_files "${CMAKE_CURRENT_SOURCE_DIR}/builtins/*.js")
-add_custom_command(
- OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSCBuiltins.cpp ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSCBuiltins.h
- MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/generate-js-builtins
- DEPENDS ${JSCBuiltins_js_files}
- COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/generate-js-builtins ${JSCBuiltins_js_files} ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSCBuiltins.h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSCBuiltins.cpp
- VERBATIM)
-
</del><span class="cx"> list(APPEND JavaScriptCore_SOURCES
</span><span class="cx"> ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJSBackendDispatchers.cpp
</span><span class="cx"> ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJSFrontendDispatchers.cpp
</span><span class="cx"> ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJSTypeBuilders.cpp
</span><del>- ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSCBuiltins.cpp
</del><span class="cx"> )
</span><span class="cx">
</span><span class="cx"> list(APPEND JavaScriptCore_HEADERS
</span><span class="cx"> ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJSBackendDispatchers.h
</span><span class="cx"> ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJSFrontendDispatchers.h
</span><span class="cx"> ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InspectorJSTypeBuilders.h
</span><del>- ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSCBuiltins.h
</del><span class="cx"> )
</span><span class="cx">
</span><span class="cx"> add_custom_command(
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ChangeLog (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ChangeLog        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/ChangeLog        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -1,3 +1,173 @@
</span><ins>+2014-01-31 Oliver Hunt <oliver@apple.com>
+
+ Rollout r163195 and related patches
+
+ * API/JSCallbackObjectFunctions.h:
+ (JSC::JSCallbackObject<Parent>::getOwnPropertySlot):
+ (JSC::JSCallbackObject<Parent>::put):
+ (JSC::JSCallbackObject<Parent>::deleteProperty):
+ (JSC::JSCallbackObject<Parent>::getStaticValue):
+ (JSC::JSCallbackObject<Parent>::staticFunctionGetter):
+ (JSC::JSCallbackObject<Parent>::callbackGetter):
+ * CMakeLists.txt:
+ * DerivedSources.make:
+ * GNUmakefile.am:
+ * GNUmakefile.list.am:
+ * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
+ * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
+ * JavaScriptCore.vcxproj/JavaScriptCoreCommon.props:
+ * JavaScriptCore.vcxproj/copy-files.cmd:
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ * builtins/Array.prototype.js: Removed.
+ * builtins/BuiltinExecutables.cpp: Removed.
+ * builtins/BuiltinExecutables.h: Removed.
+ * bytecode/CodeBlock.cpp:
+ (JSC::CodeBlock::CodeBlock):
+ * bytecode/CodeBlock.h:
+ * bytecode/ProfiledCodeBlockJettisoningWatchpoint.cpp:
+ * bytecode/UnlinkedCodeBlock.cpp:
+ (JSC::generateFunctionCodeBlock):
+ (JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):
+ (JSC::UnlinkedFunctionExecutable::codeBlockFor):
+ (JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):
+ * bytecode/UnlinkedCodeBlock.h:
+ (JSC::ExecutableInfo::ExecutableInfo):
+ (JSC::UnlinkedFunctionExecutable::create):
+ * bytecompiler/BytecodeGenerator.cpp:
+ (JSC::BytecodeGenerator::BytecodeGenerator):
+ * bytecompiler/BytecodeGenerator.h:
+ (JSC::BytecodeGenerator::makeFunction):
+ * bytecompiler/NodesCodegen.cpp:
+ (JSC::CallFunctionCallDotNode::emitBytecode):
+ (JSC::ApplyFunctionCallDotNode::emitBytecode):
+ * create_hash_table:
+ * dfg/DFGDominators.cpp:
+ * dfg/DFGJITCode.cpp:
+ * dfg/DFGOperations.cpp:
+ * generate-js-builtins: Removed.
+ * interpreter/CachedCall.h:
+ (JSC::CachedCall::CachedCall):
+ * interpreter/Interpreter.cpp:
+ * interpreter/ProtoCallFrame.cpp:
+ * jit/JITOpcodes.cpp:
+ * jit/JITOpcodes32_64.cpp:
+ * jit/JITOperations.cpp:
+ * jit/JITPropertyAccess.cpp:
+ * jit/JITPropertyAccess32_64.cpp:
+ * jsc.cpp:
+ * llint/LLIntOffsetsExtractor.cpp:
+ * llint/LLIntSlowPaths.cpp:
+ * parser/ASTBuilder.h:
+ (JSC::ASTBuilder::makeFunctionCallNode):
+ * parser/Lexer.cpp:
+ (JSC::Lexer<T>::Lexer):
+ (JSC::Lexer<LChar>::parseIdentifier):
+ (JSC::Lexer<UChar>::parseIdentifier):
+ (JSC::Lexer<T>::lex):
+ * parser/Lexer.h:
+ (JSC::Lexer<T>::lexExpectIdentifier):
+ * parser/Nodes.cpp:
+ * parser/Nodes.h:
+ * parser/Parser.cpp:
+ (JSC::Parser<LexerType>::Parser):
+ (JSC::Parser<LexerType>::parseInner):
+ (JSC::Parser<LexerType>::didFinishParsing):
+ (JSC::Parser<LexerType>::printUnexpectedTokenText):
+ * parser/Parser.h:
+ (JSC::parse):
+ * parser/ParserModes.h:
+ * parser/ParserTokens.h:
+ * runtime/Arguments.h:
+ * runtime/ArgumentsIteratorPrototype.cpp:
+ * runtime/ArrayPrototype.cpp:
+ (JSC::arrayProtoFuncEvery):
+ * runtime/CodeCache.cpp:
+ (JSC::CodeCache::getFunctionExecutableFromGlobalCode):
+ * runtime/CommonIdentifiers.cpp:
+ (JSC::CommonIdentifiers::CommonIdentifiers):
+ * runtime/CommonIdentifiers.h:
+ * runtime/CommonSlowPaths.cpp:
+ * runtime/CommonSlowPathsExceptions.cpp:
+ * runtime/ExceptionHelpers.cpp:
+ (JSC::createUndefinedVariableError):
+ * runtime/Executable.h:
+ (JSC::EvalExecutable::executableInfo):
+ (JSC::ProgramExecutable::executableInfo):
+ (JSC::isHostFunction):
+ * runtime/FunctionPrototype.cpp:
+ (JSC::functionProtoFuncToString):
+ * runtime/JSActivation.cpp:
+ (JSC::JSActivation::symbolTableGet):
+ (JSC::JSActivation::symbolTablePut):
+ (JSC::JSActivation::symbolTablePutWithAttributes):
+ * runtime/JSArgumentsIterator.cpp:
+ * runtime/JSArray.cpp:
+ * runtime/JSArrayIterator.cpp:
+ * runtime/JSCJSValue.cpp:
+ * runtime/JSCellInlines.h:
+ * runtime/JSFunction.cpp:
+ (JSC::JSFunction::calculatedDisplayName):
+ (JSC::JSFunction::sourceCode):
+ (JSC::JSFunction::callerGetter):
+ (JSC::JSFunction::getOwnPropertySlot):
+ (JSC::JSFunction::getOwnNonIndexPropertyNames):
+ (JSC::JSFunction::put):
+ (JSC::JSFunction::defineOwnProperty):
+ * runtime/JSFunction.h:
+ * runtime/JSFunctionInlines.h:
+ (JSC::JSFunction::nativeFunction):
+ (JSC::JSFunction::nativeConstructor):
+ * runtime/JSGenericTypedArrayViewConstructorInlines.h:
+ * runtime/JSGenericTypedArrayViewInlines.h:
+ * runtime/JSGenericTypedArrayViewPrototypeInlines.h:
+ * runtime/JSGlobalObject.cpp:
+ (JSC::JSGlobalObject::reset):
+ (JSC::JSGlobalObject::visitChildren):
+ * runtime/JSGlobalObject.h:
+ (JSC::JSGlobalObject::symbolTableHasProperty):
+ * runtime/JSObject.cpp:
+ (JSC::getClassPropertyNames):
+ (JSC::JSObject::reifyStaticFunctionsForDelete):
+ * runtime/JSObject.h:
+ * runtime/JSPromiseConstructor.cpp:
+ * runtime/JSPromiseDeferred.cpp:
+ * runtime/JSPromisePrototype.cpp:
+ * runtime/JSPromiseReaction.h:
+ * runtime/JSPropertyNameIterator.cpp:
+ * runtime/JSPropertyNameIterator.h:
+ * runtime/JSString.h:
+ (JSC::JSString::getStringPropertySlot):
+ (JSC::inlineJSValueNotStringtoString):
+ (JSC::JSValue::toWTFStringInline):
+ * runtime/JSStringInlines.h: Removed.
+ * runtime/JSSymbolTableObject.cpp:
+ (JSC::JSSymbolTableObject::getOwnNonIndexPropertyNames):
+ * runtime/JSSymbolTableObject.h:
+ (JSC::symbolTableGet):
+ (JSC::symbolTablePut):
+ (JSC::symbolTablePutWithAttributes):
+ * runtime/Lookup.cpp:
+ (JSC::setUpStaticFunctionSlot):
+ * runtime/Lookup.h:
+ (JSC::HashEntry::propertyGetter):
+ (JSC::HashEntry::propertyPutter):
+ (JSC::HashTable::entry):
+ (JSC::getStaticPropertySlot):
+ (JSC::getStaticValueSlot):
+ (JSC::putEntry):
+ * runtime/NativeErrorConstructor.cpp:
+ * runtime/NativeErrorConstructor.h:
+ (JSC::NativeErrorConstructor::finishCreation):
+ * runtime/PropertySlot.h:
+ * runtime/RegExpConstructor.cpp:
+ * runtime/RegExpPrototype.cpp:
+ * runtime/SetConstructor.cpp:
+ * runtime/StringObject.cpp:
+ * runtime/Structure.cpp:
+ * runtime/VM.cpp:
+ (JSC::VM::VM):
+ * runtime/VM.h:
+
</ins><span class="cx"> 2014-01-31 Filip Pizlo <fpizlo@apple.com>
</span><span class="cx">
</span><span class="cx"> DFG->FTL tier-up shouldn't assume that LoopHints stay at the tops of loops
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreDerivedSourcesmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/DerivedSources.make (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/DerivedSources.make        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/DerivedSources.make        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -28,9 +28,8 @@
</span><span class="cx"> $(JavaScriptCore) \
</span><span class="cx"> $(JavaScriptCore)/parser \
</span><span class="cx"> $(JavaScriptCore)/runtime \
</span><del>-        $(JavaScriptCore)/interpreter \
-        $(JavaScriptCore)/jit \
-        $(JavaScriptCore)/builtins \
</del><ins>+ $(JavaScriptCore)/interpreter \
+ $(JavaScriptCore)/jit \
</ins><span class="cx"> #
</span><span class="cx">
</span><span class="cx"> .PHONY : all
</span><span class="lines">@@ -58,18 +57,8 @@
</span><span class="cx"> RegExpObject.lut.h \
</span><span class="cx"> StringConstructor.lut.h \
</span><span class="cx"> udis86_itab.h \
</span><del>- JSCBuiltins \
</del><span class="cx"> #
</span><span class="cx">
</span><del>-# builtin functions
-.PHONY: JSCBuiltins
-
-JSCBuiltins: $(JavaScriptCore)/generate-js-builtins JSCBuiltins.h JSCBuiltins.cpp
-JSCBuiltins.h: $(JavaScriptCore)/generate-js-builtins $(JavaScriptCore)/builtins/*.js
-        python $^ $@
-                                                                                                                                                                
-JSCBuiltins.cpp: JSCBuiltins.h
-
</del><span class="cx"> # lookup tables for classes
</span><span class="cx">
</span><span class="cx"> %.lut.h: create_hash_table %.cpp
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreGNUmakefileam"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/GNUmakefile.am (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/GNUmakefile.am        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/GNUmakefile.am        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -51,7 +51,6 @@
</span><span class="cx">         -I$(srcdir)/Source/JavaScriptCore/ForwardingHeaders \
</span><span class="cx">         -I$(srcdir)/Source/JavaScriptCore/assembler \
</span><span class="cx">         -I$(srcdir)/Source/JavaScriptCore/bindings \
</span><del>-        -I$(srcdir)/Source/JavaScriptCore/builtins \
</del><span class="cx">         -I$(srcdir)/Source/JavaScriptCore/bytecode \
</span><span class="cx">         -I$(srcdir)/Source/JavaScriptCore/bytecompiler \
</span><span class="cx">         -I$(srcdir)/Source/JavaScriptCore/debugger \
</span><span class="lines">@@ -111,16 +110,12 @@
</span><span class="cx">         $(AM_V_GEN)$(RUBY) $(srcdir)/Source/JavaScriptCore/offlineasm/generate_offset_extractor.rb $(srcdir)/Source/JavaScriptCore/llint/LowLevelInterpreter.asm $@
</span><span class="cx">         $(AM_V_at)touch $@
</span><span class="cx">
</span><del>-$(Programs_LLIntOffsetsExtractor_OBJECTS): DerivedSources/JavaScriptCore/LLIntDesiredOffsets.h
</del><ins>+$(Programs_LLIntOffsetsExtractor_OBJECTS): DerivedSources/JavaScriptCore/LLIntDesiredOffsets.h
</ins><span class="cx">
</span><span class="cx"> DerivedSources/JavaScriptCore/LLIntAssembly.h: Programs/LLIntOffsetsExtractor$(EXEEXT)
</span><span class="cx">         $(AM_V_GEN)$(RUBY) $(srcdir)/Source/JavaScriptCore/offlineasm/asm.rb $(srcdir)/Source/JavaScriptCore/llint/LowLevelInterpreter.asm Programs/LLIntOffsetsExtractor$(EXEEXT) $@
</span><span class="cx">         $(AM_V_at)touch $@
</span><span class="cx">
</span><del>-DerivedSources/JavaScriptCore/JSCBuiltins.h: DerivedSources/JavaScriptCore/JSCBuiltins.cpp
-DerivedSources/JavaScriptCore/JSCBuiltins.cpp: $(srcdir)/Source/JavaScriptCore/generate-js-builtins $(javascriptcore_builtins_js_nosources)
-        $(AM_V_GEN)$(PYTHON) $^ $@
-
</del><span class="cx"> $(libjavascriptcoregtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_OBJECTS): DerivedSources/JavaScriptCore/LLIntAssembly.h
</span><span class="cx">
</span><span class="cx"> jsc: $(javascriptcore_built_nosources) Programs/jsc$(EXEEXT)
</span><span class="lines">@@ -221,7 +216,6 @@
</span><span class="cx">         Source/JavaScriptCore/KeywordLookupGenerator.py \
</span><span class="cx">         Source/JavaScriptCore/parser/Keywords.table \
</span><span class="cx">         Source/JavaScriptCore/THANKS \
</span><del>-        $(javascriptcore_builtins_js_nosources) \
</del><span class="cx">         $(llint_nosources) \
</span><span class="cx">         $(offlineasm_nosources)
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreGNUmakefilelistam"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/GNUmakefile.list.am (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/GNUmakefile.list.am        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/GNUmakefile.list.am        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -20,8 +20,6 @@
</span><span class="cx">         DerivedSources/JavaScriptCore/ErrorPrototype.lut.h \
</span><span class="cx">         DerivedSources/JavaScriptCore/JSDataViewPrototype.lut.h \
</span><span class="cx">         DerivedSources/JavaScriptCore/JSGlobalObject.lut.h \
</span><del>-        DerivedSources/JavaScriptCore/JSCBuiltins.cpp \
-        DerivedSources/JavaScriptCore/JSCBuiltins.h \
</del><span class="cx">         DerivedSources/JavaScriptCore/JSONObject.lut.h \
</span><span class="cx">         DerivedSources/JavaScriptCore/JSPromiseConstructor.lut.h \
</span><span class="cx">         DerivedSources/JavaScriptCore/JSPromisePrototype.lut.h \
</span><span class="lines">@@ -37,9 +35,6 @@
</span><span class="cx">         DerivedSources/JavaScriptCore/LLIntDesiredOffsets.h \
</span><span class="cx">         DerivedSources/JavaScriptCore/LLIntAssembly.h
</span><span class="cx">
</span><del>-javascriptcore_builtins_js_nosources += \
-        Source/JavaScriptCore/builtins/Array.prototype.js
-
</del><span class="cx"> javascriptcore_sources += \
</span><span class="cx">         Source/JavaScriptCore/API/APICallbackFunction.h \
</span><span class="cx">         Source/JavaScriptCore/API/APICast.h \
</span><span class="lines">@@ -107,8 +102,6 @@
</span><span class="cx"> Source/JavaScriptCore/bindings/ScriptObject.h \
</span><span class="cx"> Source/JavaScriptCore/bindings/ScriptValue.cpp \
</span><span class="cx"> Source/JavaScriptCore/bindings/ScriptValue.h \
</span><del>- Source/JavaScriptCore/builtins/BuiltinExecutables.cpp \
- Source/JavaScriptCore/builtins/BuiltinExecutables.h \
</del><span class="cx">         Source/JavaScriptCore/bytecode/ArrayAllocationProfile.cpp \
</span><span class="cx">         Source/JavaScriptCore/bytecode/ArrayAllocationProfile.h \
</span><span class="cx">         Source/JavaScriptCore/bytecode/ArrayProfile.cpp \
</span><span class="lines">@@ -1248,9 +1241,7 @@
</span><span class="cx">         DerivedSources/JavaScriptCore/InspectorJSFrontendDispatchers.cpp \
</span><span class="cx">         DerivedSources/JavaScriptCore/InspectorJSFrontendDispatchers.h \
</span><span class="cx">         DerivedSources/JavaScriptCore/InspectorJSTypeBuilders.cpp \
</span><del>-        DerivedSources/JavaScriptCore/InspectorJSTypeBuilders.h \
-        DerivedSources/JavaScriptCore/JSCBuiltins.cpp \
-        DerivedSources/JavaScriptCore/JSCBuiltins.h
</del><ins>+        DerivedSources/JavaScriptCore/InspectorJSTypeBuilders.h
</ins><span class="cx">
</span><span class="cx"> llint_nosources += \
</span><span class="cx">         Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm \
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreJavaScriptCorevcxprojJavaScriptCorevcxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCore.vcxproj (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCore.vcxproj        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCore.vcxproj        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -309,7 +309,6 @@
</span><span class="cx"> <ClCompile Include="..\bindings\ScriptFunctionCall.cpp" />
</span><span class="cx"> <ClCompile Include="..\bindings\ScriptObject.cpp" />
</span><span class="cx"> <ClCompile Include="..\bindings\ScriptValue.cpp" />
</span><del>- <ClInclude Include="..\builtins\BuiltinExecutables.cpp" />
</del><span class="cx"> <ClCompile Include="..\bytecode\ArrayAllocationProfile.cpp" />
</span><span class="cx"> <ClCompile Include="..\bytecode\ArrayProfile.cpp" />
</span><span class="cx"> <ClCompile Include="..\bytecode\BytecodeBasicBlock.cpp" />
</span><span class="lines">@@ -722,7 +721,6 @@
</span><span class="cx"> <ClCompile Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\InspectorJSBackendDispatchers.cpp" />
</span><span class="cx"> <ClCompile Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\InspectorJSFrontendDispatchers.cpp" />
</span><span class="cx"> <ClCompile Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\InspectorJSTypeBuilders.cpp" />
</span><del>- <ClCompile Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSCBuiltins.cpp" />
</del><span class="cx"> </ItemGroup>
</span><span class="cx"> <ItemGroup>
</span><span class="cx"> <ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\ArrayConstructor.lut.h" />
</span><span class="lines">@@ -752,7 +750,6 @@
</span><span class="cx"> <ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\RegExpObject.lut.h" />
</span><span class="cx"> <ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\RegExpPrototype.lut.h" />
</span><span class="cx"> <ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\StringConstructor.lut.h" />
</span><del>- <ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSCBuiltins.h" />
</del><span class="cx"> </ItemGroup>
</span><span class="cx"> <ItemGroup>
</span><span class="cx"> <ClInclude Include="..\API\APICallbackFunction.h" />
</span><span class="lines">@@ -801,7 +798,6 @@
</span><span class="cx"> <ClInclude Include="..\bindings\ScriptFunctionCall.h" />
</span><span class="cx"> <ClInclude Include="..\bindings\ScriptObject.h" />
</span><span class="cx"> <ClInclude Include="..\bindings\ScriptValue.h" />
</span><del>- <ClInclude Include="..\builtins\BuiltinExecutables.h" />
</del><span class="cx"> <ClInclude Include="..\bytecode\ArrayAllocationProfile.h" />
</span><span class="cx"> <ClInclude Include="..\bytecode\ArrayProfile.h" />
</span><span class="cx"> <ClInclude Include="..\bytecode\ByValInfo.h" />
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreJavaScriptCorevcxprojJavaScriptCorevcxprojfilters"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -7,9 +7,6 @@
</span><span class="cx"> <Filter Include="bindings">
</span><span class="cx"> <UniqueIdentifier>{0bace123-4582-eebc-9314-7819b376c198}</UniqueIdentifier>
</span><span class="cx"> </Filter>
</span><del>- <Filter Include="builtins">
- <UniqueIdentifier>{3b9d72a5-135b-43b3-a524-c6d2b9d29d35}</UniqueIdentifier>
- </Filter>
</del><span class="cx"> <Filter Include="bytecode">
</span><span class="cx"> <UniqueIdentifier>{766088a0-1216-4854-aa43-560c5e283668}</UniqueIdentifier>
</span><span class="cx"> </Filter>
</span><span class="lines">@@ -111,9 +108,6 @@
</span><span class="cx"> <ClCompile Include="..\assembler\MacroAssembler.cpp">
</span><span class="cx"> <Filter>assembler</Filter>
</span><span class="cx"> </ClCompile>
</span><del>- <ClCompile Include="..\builtins\BuiltinExecutables.cpp">
- <Filter>builtins</Filter>
- </ClCompile>
</del><span class="cx"> <ClCompile Include="..\bytecode\ArrayAllocationProfile.cpp">
</span><span class="cx"> <Filter>bytecode</Filter>
</span><span class="cx"> </ClCompile>
</span><span class="lines">@@ -1335,9 +1329,6 @@
</span><span class="cx"> <ClCompile Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\InspectorJSTypeBuilders.cpp">
</span><span class="cx"> <Filter>Derived Sources</Filter>
</span><span class="cx"> </ClCompile>
</span><del>- <ClCompile Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSCBuiltins.cpp">
- <Filter>Derived Sources</Filter>
- </ClCompile>
</del><span class="cx"> </ItemGroup>
</span><span class="cx"> <ItemGroup>
</span><span class="cx"> <ClInclude Include="..\API\APICallbackFunction.h">
</span><span class="lines">@@ -1463,9 +1454,6 @@
</span><span class="cx"> <ClInclude Include="..\assembler\X86Assembler.h">
</span><span class="cx"> <Filter>assembler</Filter>
</span><span class="cx"> </ClInclude>
</span><del>- <ClCompile Include="..\builtins\BuiltinExecutables.h">
- <Filter>builtins</Filter>
- </ClCompile>
</del><span class="cx"> <ClInclude Include="..\bytecode\ArrayAllocationProfile.h">
</span><span class="cx"> <Filter>bytecode</Filter>
</span><span class="cx"> </ClInclude>
</span><span class="lines">@@ -2562,9 +2550,6 @@
</span><span class="cx"> <ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\ArrayPrototype.lut.h">
</span><span class="cx"> <Filter>Derived Sources</Filter>
</span><span class="cx"> </ClInclude>
</span><del>- <ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSCBuiltins.h">
- <Filter>Derived Sources</Filter>
- </ClInclude>
</del><span class="cx"> <ClInclude Include="..\runtime\VM.h">
</span><span class="cx"> <Filter>runtime</Filter>
</span><span class="cx"> </ClInclude>
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreJavaScriptCorevcxprojJavaScriptCoreCommonprops"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCoreCommon.props (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCoreCommon.props        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCoreCommon.props        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -5,7 +5,7 @@
</span><span class="cx"> <PropertyGroup />
</span><span class="cx"> <ItemDefinitionGroup>
</span><span class="cx"> <ClCompile>
</span><del>- <AdditionalIncludeDirectories>..\;..\tools\;..\runtime\;..\llint\;..\jit\;..\disassembler\;..\heap\;..\debugger\;..\assembler\;..\profiler\;..\yarr\;..\interpreter\;..\bytecode\;..\builtins\;..\dfg\;..\bytecompiler\;..\parser\;..\API\;..\ftl\;..\bindings\;..\inspector\;$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\JavaScriptCore\DerivedSources\;$(ConfigurationBuildDir)\include\;$(ConfigurationBuildDir)\include\JavaScriptCore\;$(ConfigurationBuildDir)\include\private\;$(WebKit_Libraries)\include;$(WebKit_Libraries)\include\private;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</del><ins>+ <AdditionalIncludeDirectories>..\;..\tools\;..\runtime\;..\llint\;..\jit\;..\disassembler\;..\heap\;..\debugger\;..\assembler\;..\profiler\;..\yarr\;..\interpreter\;..\bytecode\;..\dfg\;..\bytecompiler\;..\parser\;..\API\;..\ftl\;..\bindings\;..\inspector\;$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\JavaScriptCore\DerivedSources\;$(ConfigurationBuildDir)\include\;$(ConfigurationBuildDir)\include\JavaScriptCore\;$(ConfigurationBuildDir)\include\private\;$(WebKit_Libraries)\include;$(WebKit_Libraries)\include\private;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ins><span class="cx"> <ForcedIncludeFiles>ICUVersion.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
</span><span class="cx"> </ClCompile>
</span><span class="cx"> <Link>
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreJavaScriptCorevcxprojcopyfilescmd"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/copy-files.cmd (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/copy-files.cmd        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/copy-files.cmd        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -42,7 +42,6 @@
</span><span class="cx"> assembler
</span><span class="cx"> bindings
</span><span class="cx"> bytecode
</span><del>- builtins
</del><span class="cx"> dfg
</span><span class="cx"> disassembler
</span><span class="cx"> heap
</span><span class="lines">@@ -73,9 +72,6 @@
</span><span class="cx"> xcopy /y "%DerivedSourcesDirectory%\InspectorJSBackendDispatchers.h" "%PrivateHeadersDirectory%" >NUL
</span><span class="cx"> xcopy /y "%DerivedSourcesDirectory%\InspectorJSFrontendDispatchers.h" "%PrivateHeadersDirectory%" >NUL
</span><span class="cx">
</span><del>-echo Copying builtins header as if it were a private header...
-xcopy /y "%DerivedSourcesDirectory%\JSCBuiltins.h" "%PrivateHeadersDirectory%" >NUL
-
</del><span class="cx"> echo Copying resources...
</span><span class="cx"> mkdir "%ResourcesDirectory%" 2>NUL
</span><span class="cx"> xcopy /y /d JavaScriptCore.resources\* "%ResourcesDirectory%" >NUL
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreJavaScriptCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -922,6 +922,7 @@
</span><span class="cx">                 A503FA19188E0FB000110F14 /* JavaScriptCallFrame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A503FA13188E0FAF00110F14 /* JavaScriptCallFrame.cpp */; };
</span><span class="cx">                 A503FA1A188E0FB000110F14 /* JavaScriptCallFrame.h in Headers */ = {isa = PBXBuildFile; fileRef = A503FA14188E0FAF00110F14 /* JavaScriptCallFrame.h */; };
</span><span class="cx">                 A503FA1B188E0FB000110F14 /* JSJavaScriptCallFrame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A503FA15188E0FB000110F14 /* JSJavaScriptCallFrame.cpp */; };
</span><ins>+                A503FA1C188E0FB000110F14 /* JSJavaScriptCallFrame.h in Headers */ = {isa = PBXBuildFile; fileRef = A503FA16188E0FB000110F14 /* JSJavaScriptCallFrame.h */; };
</ins><span class="cx">                 A503FA1D188E0FB000110F14 /* JSJavaScriptCallFramePrototype.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A503FA17188E0FB000110F14 /* JSJavaScriptCallFramePrototype.cpp */; };
</span><span class="cx">                 A503FA1E188E0FB000110F14 /* JSJavaScriptCallFramePrototype.h in Headers */ = {isa = PBXBuildFile; fileRef = A503FA18188E0FB000110F14 /* JSJavaScriptCallFramePrototype.h */; };
</span><span class="cx">                 A503FA21188EFF6800110F14 /* ScriptBreakpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = A503FA1F188EFF6800110F14 /* ScriptBreakpoint.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="lines">@@ -1023,7 +1024,6 @@
</span><span class="cx">                 A70B083217A0B79B00DAF14B /* DFGBinarySwitch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A70B083017A0B79B00DAF14B /* DFGBinarySwitch.cpp */; };
</span><span class="cx">                 A70B083317A0B79B00DAF14B /* DFGBinarySwitch.h in Headers */ = {isa = PBXBuildFile; fileRef = A70B083117A0B79B00DAF14B /* DFGBinarySwitch.h */; };
</span><span class="cx">                 A71236E51195F33C00BD2174 /* JITOpcodes32_64.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A71236E41195F33C00BD2174 /* JITOpcodes32_64.cpp */; };
</span><del>-                A71DA80F1880DBAB00D1F299 /* JSStringInlines.h in Headers */ = {isa = PBXBuildFile; fileRef = A71DA80E1880DBAB00D1F299 /* JSStringInlines.h */; settings = {ATTRIBUTES = (Private, ); }; };
</del><span class="cx">                 A72028B61797601E0098028C /* JSCTestRunnerUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A72028B41797601E0098028C /* JSCTestRunnerUtils.cpp */; };
</span><span class="cx">                 A72028B81797601E0098028C /* JSCTestRunnerUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = A72028B51797601E0098028C /* JSCTestRunnerUtils.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 A72028BA1797603D0098028C /* JSFunctionInlines.h in Headers */ = {isa = PBXBuildFile; fileRef = A72028B91797603D0098028C /* JSFunctionInlines.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="lines">@@ -1150,10 +1150,6 @@
</span><span class="cx">                 A7CA3AE817DA41AE006538AF /* JSWeakMap.h in Headers */ = {isa = PBXBuildFile; fileRef = A7CA3AE217DA41AE006538AF /* JSWeakMap.h */; };
</span><span class="cx">                 A7CA3AEB17DA5168006538AF /* WeakMapData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7CA3AE917DA5168006538AF /* WeakMapData.cpp */; };
</span><span class="cx">                 A7CA3AEC17DA5168006538AF /* WeakMapData.h in Headers */ = {isa = PBXBuildFile; fileRef = A7CA3AEA17DA5168006538AF /* WeakMapData.h */; };
</span><del>-                A7D801A41880D66E0026C39B /* BuiltinExecutables.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7D801A11880D66E0026C39B /* BuiltinExecutables.cpp */; };
-                A7D801A51880D66E0026C39B /* BuiltinExecutables.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D801A21880D66E0026C39B /* BuiltinExecutables.h */; settings = {ATTRIBUTES = (Private, ); }; };
-                A7D801A81880D6A80026C39B /* JSCBuiltins.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7D801A61880D6A80026C39B /* JSCBuiltins.cpp */; };
-                A7D801A91880D6A80026C39B /* JSCBuiltins.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D801A71880D6A80026C39B /* JSCBuiltins.h */; settings = {ATTRIBUTES = (Private, ); }; };
</del><span class="cx">                 A7D89CF217A0B8CC00773AD8 /* DFGBasicBlock.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7D89CE317A0B8CC00773AD8 /* DFGBasicBlock.cpp */; };
</span><span class="cx">                 A7D89CF317A0B8CC00773AD8 /* DFGBlockInsertionSet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7D89CE417A0B8CC00773AD8 /* DFGBlockInsertionSet.cpp */; };
</span><span class="cx">                 A7D89CF417A0B8CC00773AD8 /* DFGBlockInsertionSet.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D89CE517A0B8CC00773AD8 /* DFGBlockInsertionSet.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="lines">@@ -2466,8 +2462,6 @@
</span><span class="cx">                 A71236E41195F33C00BD2174 /* JITOpcodes32_64.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JITOpcodes32_64.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 A718F61A11754A21002465A7 /* RegExpJitTables.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RegExpJitTables.h; sourceTree = "<group>"; };
</span><span class="cx">                 A718F8211178EB4B002465A7 /* create_regex_tables */ = {isa = PBXFileReference; explicitFileType = text.script.python; fileEncoding = 4; path = create_regex_tables; sourceTree = "<group>"; };
</span><del>-                A71DA80D1880D71F00D1F299 /* generate-js-builtins */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = "generate-js-builtins"; sourceTree = "<group>"; };
-                A71DA80E1880DBAB00D1F299 /* JSStringInlines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSStringInlines.h; sourceTree = "<group>"; };
</del><span class="cx">                 A72028B41797601E0098028C /* JSCTestRunnerUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSCTestRunnerUtils.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 A72028B51797601E0098028C /* JSCTestRunnerUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSCTestRunnerUtils.h; sourceTree = "<group>"; };
</span><span class="cx">                 A72028B91797603D0098028C /* JSFunctionInlines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSFunctionInlines.h; sourceTree = "<group>"; };
</span><span class="lines">@@ -2596,11 +2590,6 @@
</span><span class="cx">                 A7CA3AE217DA41AE006538AF /* JSWeakMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSWeakMap.h; sourceTree = "<group>"; };
</span><span class="cx">                 A7CA3AE917DA5168006538AF /* WeakMapData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WeakMapData.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 A7CA3AEA17DA5168006538AF /* WeakMapData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WeakMapData.h; sourceTree = "<group>"; };
</span><del>-                A7D801A01880D66E0026C39B /* Array.prototype.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = Array.prototype.js; sourceTree = "<group>"; };
-                A7D801A11880D66E0026C39B /* BuiltinExecutables.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BuiltinExecutables.cpp; sourceTree = "<group>"; };
-                A7D801A21880D66E0026C39B /* BuiltinExecutables.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BuiltinExecutables.h; sourceTree = "<group>"; };
-                A7D801A61880D6A80026C39B /* JSCBuiltins.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSCBuiltins.cpp; sourceTree = "<group>"; };
-                A7D801A71880D6A80026C39B /* JSCBuiltins.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSCBuiltins.h; sourceTree = "<group>"; };
</del><span class="cx">                 A7D89CE317A0B8CC00773AD8 /* DFGBasicBlock.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = DFGBasicBlock.cpp; path = dfg/DFGBasicBlock.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 A7D89CE417A0B8CC00773AD8 /* DFGBlockInsertionSet.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = DFGBlockInsertionSet.cpp; path = dfg/DFGBlockInsertionSet.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 A7D89CE517A0B8CC00773AD8 /* DFGBlockInsertionSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DFGBlockInsertionSet.h; path = dfg/DFGBlockInsertionSet.h; sourceTree = "<group>"; };
</span><span class="lines">@@ -2937,7 +2926,6 @@
</span><span class="cx">                                 8604F4F2143A6C4400B295F5 /* ChangeLog */,
</span><span class="cx">                                 F692A8540255597D01FF60F7 /* create_hash_table */,
</span><span class="cx">                                 A718F8211178EB4B002465A7 /* create_regex_tables */,
</span><del>-                                A71DA80D1880D71F00D1F299 /* generate-js-builtins */,
</del><span class="cx">                                 45E12D8806A49B0F00E9DF84 /* jsc.cpp */,
</span><span class="cx">                                 F68EBB8C0255D4C601FF60F7 /* config.h */,
</span><span class="cx">                                 F5C290E60284F98E018635CA /* JavaScriptCorePrefix.h */,
</span><span class="lines">@@ -2946,7 +2934,6 @@
</span><span class="cx">                                 1432EBD70A34CAD400717B9F /* API */,
</span><span class="cx">                                 9688CB120ED12B4E001D649F /* assembler */,
</span><span class="cx">                                 A54CF2EA184EA73900237F19 /* bindings */,
</span><del>-                                A7D8019F1880D66E0026C39B /* builtins */,
</del><span class="cx">                                 969A078F0ED1D3AE00F1F681 /* bytecode */,
</span><span class="cx">                                 7E39D81D0EC38EFA003AF11A /* bytecompiler */,
</span><span class="cx">                                 1C90513E0BA9E8830081E9D0 /* Configurations */,
</span><span class="lines">@@ -3522,8 +3509,6 @@
</span><span class="cx">                 650FDF8D09D0FCA700769E54 /* Derived Sources */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><del>-                                A7D801A61880D6A80026C39B /* JSCBuiltins.cpp */,
-                                A7D801A71880D6A80026C39B /* JSCBuiltins.h */,
</del><span class="cx">                                 BC18C5230E16FC8A00B34460 /* ArrayPrototype.lut.h */,
</span><span class="cx">                                 BCD203E70E1718F4002C7E82 /* DatePrototype.lut.h */,
</span><span class="cx">                                 A513E5C6185F9436007E95AD /* InjectedScriptSource.h */,
</span><span class="lines">@@ -3826,7 +3811,6 @@
</span><span class="cx">                                 A790DD6A182F499700588807 /* JSSetIterator.h */,
</span><span class="cx">                                 BC02E9B60E1842FA000F9297 /* JSString.cpp */,
</span><span class="cx">                                 F692A8620255597D01FF60F7 /* JSString.h */,
</span><del>-                                A71DA80E1880DBAB00D1F299 /* JSStringInlines.h */,
</del><span class="cx">                                 86E85538111B9968001AF51E /* JSStringBuilder.h */,
</span><span class="cx">                                 2600B5A4152BAAA70091EE5F /* JSStringJoiner.cpp */,
</span><span class="cx">                                 2600B5A5152BAAA70091EE5F /* JSStringJoiner.h */,
</span><span class="lines">@@ -4577,16 +4561,6 @@
</span><span class="cx">                         path = remote;
</span><span class="cx">                         sourceTree = "<group>";
</span><span class="cx">                 };
</span><del>-                A7D8019F1880D66E0026C39B /* builtins */ = {
-                        isa = PBXGroup;
-                        children = (
-                                A7D801A01880D66E0026C39B /* Array.prototype.js */,
-                                A7D801A11880D66E0026C39B /* BuiltinExecutables.cpp */,
-                                A7D801A21880D66E0026C39B /* BuiltinExecutables.h */,
-                        );
-                        path = builtins;
-                        sourceTree = "<group>";
-                };
</del><span class="cx"> /* End PBXGroup section */
</span><span class="cx">
</span><span class="cx"> /* Begin PBXHeadersBuildPhase section */
</span><span class="lines">@@ -4632,11 +4606,11 @@
</span><span class="cx">                                 86ADD1450FDDEA980006EEC2 /* ARMv7Assembler.h in Headers */,
</span><span class="cx">                                 A5CEEE15187F3BAD00E55C99 /* InspectorAgent.h in Headers */,
</span><span class="cx">                                 65C0285D1717966800351E35 /* ARMv7DOpcode.h in Headers */,
</span><del>-                                2A68295B1875F80500B6C3E2 /* CopyWriteBarrier.h in Headers */,
-                                2A4EC90C1860D6C20094F782 /* WriteBarrierBuffer.h in Headers */,
</del><ins>+                                 2A68295B1875F80500B6C3E2 /* CopyWriteBarrier.h in Headers */,
+ 2A4EC90C1860D6C20094F782 /* WriteBarrierBuffer.h in Headers */,
</ins><span class="cx">                                 FE5932A8183C5A2600A1ECCC /* VMEntryScope.h in Headers */,
</span><span class="cx">                                 A532439318569709002ED692 /* CodeGeneratorInspectorStrings.py in Headers */,
</span><del>-                                A532439218569709002ED692 /* CodeGeneratorInspector.py in Headers */,
</del><ins>+                                 A532439218569709002ED692 /* CodeGeneratorInspector.py in Headers */,
</ins><span class="cx">                                 0F24E54F17EE274900ABB217 /* TempRegisterSet.h in Headers */,
</span><span class="cx">                                 A50E4B6418809DD50068A46D /* JSGlobalObjectRuntimeAgent.h in Headers */,
</span><span class="cx">                                 FEB58C15187B8B160098EF0B /* ErrorHandlingScope.h in Headers */,
</span><span class="lines">@@ -4648,7 +4622,7 @@
</span><span class="cx">                                 0F8335B81639C1EA001443B5 /* ArrayAllocationProfile.h in Headers */,
</span><span class="cx">                                 A5840E29187CA5E600843B10 /* inline-and-minify-stylesheets-and-scripts.py in Headers */,
</span><span class="cx">                                 A5840E2B187CA75B00843B10 /* jsmin.py in Headers */,
</span><del>-                                A53243981856A489002ED692 /* InspectorJS.json in Headers */,
</del><ins>+                                 A53243981856A489002ED692 /* InspectorJS.json in Headers */,
</ins><span class="cx">                                 A5840E2A187CA75900843B10 /* xxd.pl in Headers */,
</span><span class="cx">                                 FEA08620182B7A0400F6D851 /* Breakpoint.h in Headers */,
</span><span class="cx">                                 A7A8AF3517ADB5F3005AB174 /* ArrayBuffer.h in Headers */,
</span><span class="lines">@@ -4759,7 +4733,7 @@
</span><span class="cx">                                 A1A009C01831A22D00CF8711 /* MacroAssemblerARM64.h in Headers */,
</span><span class="cx">                                 86EC9DC51328DF82002B2AD7 /* DFGByteCodeParser.h in Headers */,
</span><span class="cx">                                 0F485328187DFDEC0083B687 /* FTLAvailableRecovery.h in Headers */,
</span><del>-                                A593CF87184038CA00BFCE27 /* InspectorAgentRegistry.h in Headers */,
</del><ins>+ A593CF87184038CA00BFCE27 /* InspectorAgentRegistry.h in Headers */,
</ins><span class="cx">                                 0F256C361627B0AD007F2783 /* DFGCallArrayAllocatorSlowPathGenerator.h in Headers */,
</span><span class="cx">                                 0F7B294B14C3CD2F007C3DB1 /* DFGCapabilities.h in Headers */,
</span><span class="cx">                                 0FFFC95814EF90A200C72532 /* DFGCFAPhase.h in Headers */,
</span><span class="lines">@@ -4898,7 +4872,6 @@
</span><span class="cx">                                 0FEA0A1D1708B00700BB722C /* FTLAbstractHeap.h in Headers */,
</span><span class="cx">                                 0FEA0A1F1708B00700BB722C /* FTLAbstractHeapRepository.h in Headers */,
</span><span class="cx">                                 A59455931824744700CC3843 /* JSGlobalObjectDebuggable.h in Headers */,
</span><del>-                                A7D801A91880D6A80026C39B /* JSCBuiltins.h in Headers */,
</del><span class="cx">                                 0FEA0A0A170513DB00BB722C /* FTLCapabilities.h in Headers */,
</span><span class="cx">                                 0F48532A187DFDEC0083B687 /* FTLRecoveryOpcode.h in Headers */,
</span><span class="cx">                                 0FEA0A231709606900BB722C /* FTLCommonValues.h in Headers */,
</span><span class="lines">@@ -4973,7 +4946,6 @@
</span><span class="cx">                                 BC18C40F0E16F5CD00B34460 /* Identifier.h in Headers */,
</span><span class="cx">                                 C25F8BCE157544A900245B71 /* IncrementalSweeper.h in Headers */,
</span><span class="cx">                                 0FB7F39915ED8E4600F167B2 /* IndexingHeader.h in Headers */,
</span><del>-                                A7D801A51880D66E0026C39B /* BuiltinExecutables.h in Headers */,
</del><span class="cx">                                 0FB7F39A15ED8E4600F167B2 /* IndexingHeaderInlines.h in Headers */,
</span><span class="cx">                                 0FB7F39B15ED8E4600F167B2 /* IndexingType.h in Headers */,
</span><span class="cx">                                 0FCEFAB01805CA6D00472CE4 /* InitializeLLVM.h in Headers */,
</span><span class="lines">@@ -5246,7 +5218,6 @@
</span><span class="cx">                                 A532438818568335002ED692 /* InspectorJSBackendDispatchers.h in Headers */,
</span><span class="cx">                                 BC18C4560E16F5CD00B34460 /* Protect.h in Headers */,
</span><span class="cx">                                 1474C33B16AA2D950062F01D /* PrototypeMap.h in Headers */,
</span><del>-                                A71DA80F1880DBAB00D1F299 /* JSStringInlines.h in Headers */,
</del><span class="cx">                                 0F9332A414CA7DD90085F3C6 /* PutByIdStatus.h in Headers */,
</span><span class="cx">                                 0F0CD4C215F1A6070032F1C0 /* PutDirectIndexMode.h in Headers */,
</span><span class="cx">                                 7C008CE7187631B600955C24 /* Microtask.h in Headers */,
</span><span class="lines">@@ -5865,7 +5836,6 @@
</span><span class="cx">                                 A7D89CF217A0B8CC00773AD8 /* DFGBasicBlock.cpp in Sources */,
</span><span class="cx">                                 A70B083217A0B79B00DAF14B /* DFGBinarySwitch.cpp in Sources */,
</span><span class="cx">                                 A7D89CF317A0B8CC00773AD8 /* DFGBlockInsertionSet.cpp in Sources */,
</span><del>-                                A7D801A41880D66E0026C39B /* BuiltinExecutables.cpp in Sources */,
</del><span class="cx">                                 86EC9DC41328DF82002B2AD7 /* DFGByteCodeParser.cpp in Sources */,
</span><span class="cx">                                 0FD82E2114172CE300179C94 /* DFGCapabilities.cpp in Sources */,
</span><span class="cx">                                 0FFFC95714EF90A000C72532 /* DFGCFAPhase.cpp in Sources */,
</span><span class="lines">@@ -5882,7 +5852,6 @@
</span><span class="cx">                                 0FFFC95914EF90A600C72532 /* DFGCSEPhase.cpp in Sources */,
</span><span class="cx">                                 0F2FC77216E12F710038D976 /* DFGDCEPhase.cpp in Sources */,
</span><span class="cx">                                 0F8F2B99172F04FF007DBDA5 /* DFGDesiredIdentifiers.cpp in Sources */,
</span><del>-                                A7D801A81880D6A80026C39B /* JSCBuiltins.cpp in Sources */,
</del><span class="cx">                                 A73E1330179624CD00E4DEA8 /* DFGDesiredStructureChains.cpp in Sources */,
</span><span class="cx">                                 C2C0F7CD17BBFC5B00464FE4 /* DFGDesiredTransitions.cpp in Sources */,
</span><span class="cx">                                 0FE8534B1723CDA500B618F5 /* DFGDesiredWatchpoints.cpp in Sources */,
</span><span class="lines">@@ -6007,7 +5976,7 @@
</span><span class="cx">                                 0F6B1CC51862C47800845D97 /* FTLUnwindInfo.cpp in Sources */,
</span><span class="cx">                                 0F9D339A1803ADB70073C2BC /* FTLStackMaps.cpp in Sources */,
</span><span class="cx">                                 0FEA0A161706BB9000BB722C /* FTLState.cpp in Sources */,
</span><del>-                                7C008CD2186F8A9300955C24 /* JSPromiseFunctions.cpp in Sources */,
</del><ins>+                                 7C008CD2186F8A9300955C24 /* JSPromiseFunctions.cpp in Sources */,
</ins><span class="cx">                                 0F6B1CB5185FC9E900845D97 /* FTLJSCall.cpp in Sources */,
</span><span class="cx">                                 0F235BE117178E1C00690C7F /* FTLThunks.cpp in Sources */,
</span><span class="cx">                                 A593CF7C1840360300BFCE27 /* InspectorBackendDispatcher.cpp in Sources */,
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebuiltinsArrayprototypejs"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/builtins/Array.prototype.js (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/builtins/Array.prototype.js        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/builtins/Array.prototype.js        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -1,51 +0,0 @@
</span><del>-/*
- * Copyright (C) 2014 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.
- */
-
-function every(callback /*, thisArg */) {
- "use strict";
- if (this === null)
- throw new @TypeError("Array.prototype.every requires that |this| not be null");
-
- if (this === undefined)
- throw new @TypeError("Array.prototype.every requires that |this| not be undefined");
-
- var array = @Object(this);
- var length = array.length >>> 0;
-
- if (typeof callback !== "function")
- throw new @TypeError("Array.prototype.every callback must be a function");
-
- var thisArg = arguments.length > 1 ? arguments[1] : undefined;
-
- for (var i = 0; i < length; i++) {
- if (!(i in array))
- continue;
- if (!callback.@call(thisArg, array[i], i, array))
- return false;
- }
-
- return true;
-}
-
</del></span></pre></div>
<a id="trunkSourceJavaScriptCorebuiltinsBuiltinExecutablescpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/builtins/BuiltinExecutables.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/builtins/BuiltinExecutables.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/builtins/BuiltinExecutables.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -1,95 +0,0 @@
</span><del>-/*
- * Copyright (C) 2014 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 "config.h"
-#include "BuiltinExecutables.h"
-
-#include "Executable.h"
-#include "JSCellInlines.h"
-#include "JSFunctionInlines.h"
-#include "Parser.h"
-
-namespace JSC {
-
-BuiltinExecutables::BuiltinExecutables(VM& vm)
- : m_vm(vm)
-#define INITIALIZE_BUILTIN_SOURCE_MEMBERS(name, functionName, length) , m_##name##Source(makeSource(StringImpl::createFromLiteral(s_##name, length), StringImpl::createFromLiteral("<builtin>")))
- JSC_FOREACH_BUILTIN(INITIALIZE_BUILTIN_SOURCE_MEMBERS)
-#undef EXPOSE_BUILTIN_STRINGS
-{
-}
-
-UnlinkedFunctionExecutable* BuiltinExecutables::createBuiltinExecutable(const SourceCode& source, const Identifier& name)
-{
- JSTextPosition positionBeforeLastNewline;
- ParserError error;
- RefPtr<ProgramNode> program = parse<ProgramNode>(&m_vm, source, 0, Identifier(), JSParseBuiltin, JSParseProgramCode, error, &positionBeforeLastNewline);
-
- if (!program) {
- dataLog("Fatal error compiling builtin function '", name.string(), "': ", error.m_message);
- CRASH();
- }
-
- StatementNode* exprStatement = program->singleStatement();
- RELEASE_ASSERT(exprStatement);
- RELEASE_ASSERT(exprStatement->isExprStatement());
- ExpressionNode* funcExpr = static_cast<ExprStatementNode*>(exprStatement)->expr();
- RELEASE_ASSERT(funcExpr);
- RELEASE_ASSERT(funcExpr->isFuncExprNode());
- FunctionBodyNode* body = static_cast<FuncExprNode*>(funcExpr)->body();
- RELEASE_ASSERT(!program->hasCapturedVariables());
-
- body->setEndPosition(positionBeforeLastNewline);
- RELEASE_ASSERT(body);
- RELEASE_ASSERT(body->ident().isNull());
-
- // This function assumes an input string that would result in a single anonymous function expression.
- body->setEndPosition(positionBeforeLastNewline);
- RELEASE_ASSERT(body);
- for (const auto& closedVariable : program->closedVariables()) {
- if (closedVariable == m_vm.propertyNames->arguments.impl())
- continue;
-
- if (closedVariable == m_vm.propertyNames->undefinedKeyword.impl())
- continue;
- RELEASE_ASSERT(closedVariable->isEmptyUnique());
- }
- UnlinkedFunctionExecutable* functionExecutable = UnlinkedFunctionExecutable::create(&m_vm, source, body, true, UnlinkedBuiltinFunction);
- functionExecutable->m_nameValue.set(m_vm, functionExecutable, jsString(&m_vm, name.string()));
- return functionExecutable;
-}
-
-#define DEFINE_BUILTIN_EXECUTABLES(name, functionName, length) \
-UnlinkedFunctionExecutable* BuiltinExecutables::name##Executable() \
-{\
- if (!m_##name##Executable)\
- m_##name##Executable = createBuiltinExecutable(m_##name##Source, m_vm.propertyNames->functionName);\
- return m_##name##Executable.get();\
-}
-JSC_FOREACH_BUILTIN(DEFINE_BUILTIN_EXECUTABLES)
-#undef EXPOSE_BUILTIN_SOURCES
-
-}
</del></span></pre></div>
<a id="trunkSourceJavaScriptCorebuiltinsBuiltinExecutablesh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/builtins/BuiltinExecutables.h (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/builtins/BuiltinExecutables.h        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/builtins/BuiltinExecutables.h        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -1,67 +0,0 @@
</span><del>-/*
- * Copyright (C) 2014 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 BuiltinExecutables_h
-#define BuiltinExecutables_h
-
-#include "JSCBuiltins.h"
-#include "SourceCode.h"
-#include "Weak.h"
-#include <wtf/PassOwnPtr.h>
-
-namespace JSC {
-
-class UnlinkedFunctionExecutable;
-class Identifier;
-class VM;
-
-class BuiltinExecutables {
-public:
- static PassOwnPtr<BuiltinExecutables> create(VM& vm)
- {
- return adoptPtr(new BuiltinExecutables(vm));
- }
-
-#define EXPOSE_BUILTIN_EXECUTABLES(name, functionName, length) \
-UnlinkedFunctionExecutable* name##Executable(); \
-const SourceCode& name##Source() { return m_##name##Source; }
-
- JSC_FOREACH_BUILTIN(EXPOSE_BUILTIN_EXECUTABLES)
-#undef EXPOSE_BUILTIN_SOURCES
-
-private:
- BuiltinExecutables(VM&);
- VM& m_vm;
- UnlinkedFunctionExecutable* createBuiltinExecutable(const SourceCode&, const Identifier&);
-#define DECLARE_BUILTIN_SOURCE_MEMBERS(name, functionName, length)\
- SourceCode m_##name##Source; \
- Weak<UnlinkedFunctionExecutable> m_##name##Executable;
- JSC_FOREACH_BUILTIN(DECLARE_BUILTIN_SOURCE_MEMBERS)
-#undef DECLARE_BUILTIN_SOURCE_MEMBERS
-};
-
-}
-
-#endif
</del></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodeCodeBlockcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/CodeBlock.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/CodeBlock.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/bytecode/CodeBlock.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -43,13 +43,11 @@
</span><span class="cx"> #include "JIT.h"
</span><span class="cx"> #include "JITStubs.h"
</span><span class="cx"> #include "JSActivation.h"
</span><del>-#include "JSCJSValueInlines.h"
</del><ins>+#include "JSCJSValue.h"
</ins><span class="cx"> #include "JSFunction.h"
</span><span class="cx"> #include "JSNameScope.h"
</span><span class="cx"> #include "LLIntEntrypoint.h"
</span><span class="cx"> #include "LowLevelInterpreter.h"
</span><del>-#include "NativeErrorConstructor.h"
-#include "ObjectConstructor.h"
</del><span class="cx"> #include "Operations.h"
</span><span class="cx"> #include "PolymorphicPutByIdList.h"
</span><span class="cx"> #include "ReduceWhitespace.h"
</span><span class="lines">@@ -1579,7 +1577,7 @@
</span><span class="cx">
</span><span class="cx"> setConstantRegisters(unlinkedCodeBlock->constantRegisters());
</span><span class="cx"> if (unlinkedCodeBlock->usesGlobalObject())
</span><del>- m_constantRegisters[unlinkedCodeBlock->globalObjectRegister().toConstantIndex()].set(*m_vm, ownerExecutable, m_globalObject.get());
</del><ins>+ m_constantRegisters[unlinkedCodeBlock->globalObjectRegister().offset()].set(*m_vm, ownerExecutable, m_globalObject.get());
</ins><span class="cx"> m_functionDecls.resizeToFit(unlinkedCodeBlock->numberOfFunctionDecls());
</span><span class="cx"> for (size_t count = unlinkedCodeBlock->numberOfFunctionDecls(), i = 0; i < count; ++i) {
</span><span class="cx"> UnlinkedFunctionExecutable* unlinkedExecutable = unlinkedCodeBlock->functionDecl(i);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodeCodeBlockh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/CodeBlock.h (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/CodeBlock.h        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/bytecode/CodeBlock.h        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -56,6 +56,7 @@
</span><span class="cx"> #include "HandlerInfo.h"
</span><span class="cx"> #include "ObjectAllocationProfile.h"
</span><span class="cx"> #include "Options.h"
</span><ins>+#include "Operations.h"
</ins><span class="cx"> #include "PutPropertySlot.h"
</span><span class="cx"> #include "Instruction.h"
</span><span class="cx"> #include "JITCode.h"
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodeProfiledCodeBlockJettisoningWatchpointcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/ProfiledCodeBlockJettisoningWatchpoint.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/ProfiledCodeBlockJettisoningWatchpoint.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/bytecode/ProfiledCodeBlockJettisoningWatchpoint.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -31,7 +31,6 @@
</span><span class="cx"> #include "CodeBlock.h"
</span><span class="cx"> #include "DFGCommon.h"
</span><span class="cx"> #include "DFGExitProfile.h"
</span><del>-#include "JSCellInlines.h"
</del><span class="cx">
</span><span class="cx"> namespace JSC {
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodeUnlinkedCodeBlockcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -49,9 +49,9 @@
</span><span class="cx"> const ClassInfo UnlinkedEvalCodeBlock::s_info = { "UnlinkedEvalCodeBlock", &Base::s_info, 0, 0, CREATE_METHOD_TABLE(UnlinkedEvalCodeBlock) };
</span><span class="cx"> const ClassInfo UnlinkedFunctionCodeBlock::s_info = { "UnlinkedFunctionCodeBlock", &Base::s_info, 0, 0, CREATE_METHOD_TABLE(UnlinkedFunctionCodeBlock) };
</span><span class="cx">
</span><del>-static UnlinkedFunctionCodeBlock* generateFunctionCodeBlock(VM& vm, UnlinkedFunctionExecutable* executable, const SourceCode& source, CodeSpecializationKind kind, DebuggerMode debuggerMode, ProfilerMode profilerMode, UnlinkedFunctionKind functionKind, ParserError& error)
</del><ins>+static UnlinkedFunctionCodeBlock* generateFunctionCodeBlock(VM& vm, UnlinkedFunctionExecutable* executable, const SourceCode& source, CodeSpecializationKind kind, DebuggerMode debuggerMode, ProfilerMode profilerMode, ParserError& error)
</ins><span class="cx"> {
</span><del>- RefPtr<FunctionBodyNode> body = parse<FunctionBodyNode>(&vm, source, executable->parameters(), executable->name(), executable->toStrictness(), JSParseFunctionCode, error);
</del><ins>+ RefPtr<FunctionBodyNode> body = parse<FunctionBodyNode>(&vm, source, executable->parameters(), executable->name(), executable->isInStrictContext() ? JSParseStrict : JSParseNormal, JSParseFunctionCode, error);
</ins><span class="cx">
</span><span class="cx"> if (!body) {
</span><span class="cx"> ASSERT(error.m_type != ParserError::ErrorNone);
</span><span class="lines">@@ -63,7 +63,7 @@
</span><span class="cx"> body->finishParsing(executable->parameters(), executable->name(), executable->functionNameIsInScopeToggle());
</span><span class="cx"> executable->recordParse(body->features(), body->hasCapturedVariables());
</span><span class="cx">
</span><del>- UnlinkedFunctionCodeBlock* result = UnlinkedFunctionCodeBlock::create(&vm, FunctionCode, ExecutableInfo(body->needsActivation(), body->usesEval(), body->isStrictMode(), kind == CodeForConstruct, functionKind == UnlinkedBuiltinFunction));
</del><ins>+ UnlinkedFunctionCodeBlock* result = UnlinkedFunctionCodeBlock::create(&vm, FunctionCode, ExecutableInfo(body->needsActivation(), body->usesEval(), body->isStrictMode(), kind == CodeForConstruct));
</ins><span class="cx"> OwnPtr<BytecodeGenerator> generator(adoptPtr(new BytecodeGenerator(vm, body.get(), result, debuggerMode, profilerMode)));
</span><span class="cx"> error = generator->generate();
</span><span class="cx"> body->destroyData();
</span><span class="lines">@@ -82,14 +82,13 @@
</span><span class="cx"> return addConstant(v);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-UnlinkedFunctionExecutable::UnlinkedFunctionExecutable(VM* vm, Structure* structure, const SourceCode& source, FunctionBodyNode* node, bool isFromGlobalCode, UnlinkedFunctionKind kind)
</del><ins>+UnlinkedFunctionExecutable::UnlinkedFunctionExecutable(VM* vm, Structure* structure, const SourceCode& source, FunctionBodyNode* node, bool isFromGlobalCode)
</ins><span class="cx"> : Base(*vm, structure)
</span><span class="cx"> , m_numCapturedVariables(node->capturedVariableCount())
</span><span class="cx"> , m_forceUsesArguments(node->usesArguments())
</span><span class="cx"> , m_isInStrictContext(node->isStrictMode())
</span><span class="cx"> , m_hasCapturedVariables(node->hasCapturedVariables())
</span><span class="cx"> , m_isFromGlobalCode(isFromGlobalCode)
</span><del>- , m_isBuiltinFunction(kind == UnlinkedBuiltinFunction)
</del><span class="cx"> , m_name(node->ident())
</span><span class="cx"> , m_inferredName(node->inferredName())
</span><span class="cx"> , m_parameters(node->parameters())
</span><span class="lines">@@ -167,7 +166,7 @@
</span><span class="cx"> break;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- UnlinkedFunctionCodeBlock* result = generateFunctionCodeBlock(vm, this, source, specializationKind, debuggerMode, profilerMode, isBuiltinFunction() ? UnlinkedBuiltinFunction : UnlinkedNormalFunction, error);
</del><ins>+ UnlinkedFunctionCodeBlock* result = generateFunctionCodeBlock(vm, this, source, specializationKind, debuggerMode, profilerMode, error);
</ins><span class="cx">
</span><span class="cx"> if (error.m_type != ParserError::ErrorNone)
</span><span class="cx"> return 0;
</span><span class="lines">@@ -211,7 +210,6 @@
</span><span class="cx"> , m_isStrictMode(info.m_isStrictMode)
</span><span class="cx"> , m_isConstructor(info.m_isConstructor)
</span><span class="cx"> , m_hasCapturedVariables(false)
</span><del>- , m_isBuiltinFunction(info.m_isBuiltinFunction)
</del><span class="cx"> , m_firstLine(0)
</span><span class="cx"> , m_lineCount(0)
</span><span class="cx"> , m_endColumn(UINT_MAX)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodeUnlinkedCodeBlockh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.h (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.h        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.h        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -66,35 +66,26 @@
</span><span class="cx"> typedef unsigned UnlinkedLLIntCallLinkInfo;
</span><span class="cx">
</span><span class="cx"> struct ExecutableInfo {
</span><del>- ExecutableInfo(bool needsActivation, bool usesEval, bool isStrictMode, bool isConstructor, bool isBuiltinFunction)
</del><ins>+ ExecutableInfo(bool needsActivation, bool usesEval, bool isStrictMode, bool isConstructor)
</ins><span class="cx"> : m_needsActivation(needsActivation)
</span><span class="cx"> , m_usesEval(usesEval)
</span><span class="cx"> , m_isStrictMode(isStrictMode)
</span><span class="cx"> , m_isConstructor(isConstructor)
</span><del>- , m_isBuiltinFunction(isBuiltinFunction)
</del><span class="cx"> {
</span><span class="cx"> }
</span><del>- bool m_needsActivation : 1;
- bool m_usesEval : 1;
- bool m_isStrictMode : 1;
- bool m_isConstructor : 1;
- bool m_isBuiltinFunction : 1;
</del><ins>+ bool m_needsActivation;
+ bool m_usesEval;
+ bool m_isStrictMode;
+ bool m_isConstructor;
</ins><span class="cx"> };
</span><span class="cx">
</span><del>-enum UnlinkedFunctionKind {
- UnlinkedNormalFunction,
- UnlinkedBuiltinFunction,
-};
-
</del><span class="cx"> class UnlinkedFunctionExecutable : public JSCell {
</span><span class="cx"> public:
</span><del>- friend class BuiltinExecutables;
</del><span class="cx"> friend class CodeCache;
</span><del>- friend class VM;
</del><span class="cx"> typedef JSCell Base;
</span><del>- static UnlinkedFunctionExecutable* create(VM* vm, const SourceCode& source, FunctionBodyNode* node, bool isFromGlobalCode, UnlinkedFunctionKind unlinkedFunctionKind)
</del><ins>+ static UnlinkedFunctionExecutable* create(VM* vm, const SourceCode& source, FunctionBodyNode* node, bool isFromGlobalCode = false)
</ins><span class="cx"> {
</span><del>- UnlinkedFunctionExecutable* instance = new (NotNull, allocateCell<UnlinkedFunctionExecutable>(vm->heap)) UnlinkedFunctionExecutable(vm, vm->unlinkedFunctionExecutableStructure.get(), source, node, isFromGlobalCode, unlinkedFunctionKind);
</del><ins>+ UnlinkedFunctionExecutable* instance = new (NotNull, allocateCell<UnlinkedFunctionExecutable>(vm->heap)) UnlinkedFunctionExecutable(vm, vm->unlinkedFunctionExecutableStructure.get(), source, node, isFromGlobalCode);
</ins><span class="cx"> instance->finishCreation(*vm);
</span><span class="cx"> return instance;
</span><span class="cx"> }
</span><span class="lines">@@ -108,14 +99,6 @@
</span><span class="cx"> }
</span><span class="cx"> size_t parameterCount() const;
</span><span class="cx"> bool isInStrictContext() const { return m_isInStrictContext; }
</span><del>- JSParserStrictness toStrictness() const
- {
- if (m_isBuiltinFunction)
- return JSParseBuiltin;
- if (m_isInStrictContext)
- return JSParseStrict;
- return JSParseNormal;
- }
</del><span class="cx"> FunctionNameIsInScopeToggle functionNameIsInScopeToggle() const { return m_functionNameIsInScopeToggle; }
</span><span class="cx">
</span><span class="cx"> unsigned firstLineOffset() const { return m_firstLineOffset; }
</span><span class="lines">@@ -159,10 +142,8 @@
</span><span class="cx"> static const bool hasImmortalStructure = true;
</span><span class="cx"> static void destroy(JSCell*);
</span><span class="cx">
</span><del>- bool isBuiltinFunction() const { return m_isBuiltinFunction; }
-
</del><span class="cx"> private:
</span><del>- UnlinkedFunctionExecutable(VM*, Structure*, const SourceCode&, FunctionBodyNode*, bool isFromGlobalCode, UnlinkedFunctionKind);
</del><ins>+ UnlinkedFunctionExecutable(VM*, Structure*, const SourceCode&, FunctionBodyNode*, bool isFromGlobalCode);
</ins><span class="cx"> WriteBarrier<UnlinkedFunctionCodeBlock> m_codeBlockForCall;
</span><span class="cx"> WriteBarrier<UnlinkedFunctionCodeBlock> m_codeBlockForConstruct;
</span><span class="cx">
</span><span class="lines">@@ -171,7 +152,6 @@
</span><span class="cx"> bool m_isInStrictContext : 1;
</span><span class="cx"> bool m_hasCapturedVariables : 1;
</span><span class="cx"> bool m_isFromGlobalCode : 1;
</span><del>- bool m_isBuiltinFunction : 1;
</del><span class="cx">
</span><span class="cx"> Identifier m_name;
</span><span class="cx"> Identifier m_inferredName;
</span><span class="lines">@@ -338,8 +318,6 @@
</span><span class="cx"> void setIsNumericCompareFunction(bool isNumericCompareFunction) { m_isNumericCompareFunction = isNumericCompareFunction; }
</span><span class="cx"> bool isNumericCompareFunction() const { return m_isNumericCompareFunction; }
</span><span class="cx">
</span><del>- bool isBuiltinFunction() const { return m_isBuiltinFunction; }
-
</del><span class="cx"> void shrinkToFit()
</span><span class="cx"> {
</span><span class="cx"> m_jumpTargets.shrinkToFit();
</span><span class="lines">@@ -521,7 +499,6 @@
</span><span class="cx"> bool m_isStrictMode : 1;
</span><span class="cx"> bool m_isConstructor : 1;
</span><span class="cx"> bool m_hasCapturedVariables : 1;
</span><del>- bool m_isBuiltinFunction : 1;
</del><span class="cx"> unsigned m_firstLine;
</span><span class="cx"> unsigned m_lineCount;
</span><span class="cx"> unsigned m_endColumn;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecompilerBytecodeGeneratorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -175,7 +175,6 @@
</span><span class="cx"> #endif
</span><span class="cx"> , m_usesExceptions(false)
</span><span class="cx"> , m_expressionTooDeep(false)
</span><del>- , m_isBuiltinFunction(false)
</del><span class="cx"> {
</span><span class="cx"> m_codeBlock->setNumParameters(1); // Allocate space for "this"
</span><span class="cx">
</span><span class="lines">@@ -219,12 +218,16 @@
</span><span class="cx"> #endif
</span><span class="cx"> , m_usesExceptions(false)
</span><span class="cx"> , m_expressionTooDeep(false)
</span><del>- , m_isBuiltinFunction(codeBlock->isBuiltinFunction())
</del><span class="cx"> {
</span><ins>+<<<<<<< Updated upstream
</ins><span class="cx"> if (m_isBuiltinFunction) {
</span><span class="cx"> m_shouldEmitProfileHooks = false;
</span><span class="cx"> m_shouldEmitDebugHooks = false;
</span><span class="cx"> }
</span><ins>+=======
+ if (m_shouldEmitDebugHooks)
+ m_codeBlock->setNeedsFullScopeChain(true);
+>>>>>>> Stashed changes
</ins><span class="cx">
</span><span class="cx"> m_symbolTable->setUsesNonStrictEval(codeBlock->usesEval() && !codeBlock->isStrictMode());
</span><span class="cx"> Vector<Identifier> boundParameterProperties;
</span><span class="lines">@@ -427,7 +430,6 @@
</span><span class="cx"> #endif
</span><span class="cx"> , m_usesExceptions(false)
</span><span class="cx"> , m_expressionTooDeep(false)
</span><del>- , m_isBuiltinFunction(false)
</del><span class="cx"> {
</span><span class="cx"> m_symbolTable->setUsesNonStrictEval(codeBlock->usesEval() && !codeBlock->isStrictMode());
</span><span class="cx"> m_codeBlock->setNumParameters(1);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecompilerBytecodeGeneratorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.h (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.h        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.h        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -462,9 +462,7 @@
</span><span class="cx"> bool shouldEmitDebugHooks() { return m_shouldEmitDebugHooks; }
</span><span class="cx">
</span><span class="cx"> bool isStrictMode() const { return m_codeBlock->isStrictMode(); }
</span><del>-
- bool isBuiltinFunction() const { return m_isBuiltinFunction; }
-
</del><ins>+
</ins><span class="cx"> private:
</span><span class="cx"> friend class Label;
</span><span class="cx">
</span><span class="lines">@@ -546,7 +544,7 @@
</span><span class="cx">
</span><span class="cx"> UnlinkedFunctionExecutable* makeFunction(FunctionBodyNode* body)
</span><span class="cx"> {
</span><del>- return UnlinkedFunctionExecutable::create(m_vm, m_scopeNode->source(), body, false, isBuiltinFunction() ? UnlinkedBuiltinFunction : UnlinkedNormalFunction);
</del><ins>+ return UnlinkedFunctionExecutable::create(m_vm, m_scopeNode->source(), body);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> RegisterID* emitInitLazyRegister(RegisterID*);
</span><span class="lines">@@ -679,7 +677,6 @@
</span><span class="cx">
</span><span class="cx"> bool m_usesExceptions;
</span><span class="cx"> bool m_expressionTooDeep;
</span><del>- bool m_isBuiltinFunction;
</del><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecompilerNodesCodegencpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -26,10 +26,10 @@
</span><span class="cx">
</span><span class="cx"> #include "config.h"
</span><span class="cx"> #include "Nodes.h"
</span><ins>+#include "NodeConstructors.h"
</ins><span class="cx">
</span><span class="cx"> #include "BytecodeGenerator.h"
</span><span class="cx"> #include "CallFrame.h"
</span><del>-#include "CommonIdentifiers.h"
</del><span class="cx"> #include "Debugger.h"
</span><span class="cx"> #include "JIT.h"
</span><span class="cx"> #include "JSFunction.h"
</span><span class="lines">@@ -38,7 +38,6 @@
</span><span class="cx"> #include "JSONObject.h"
</span><span class="cx"> #include "LabelScope.h"
</span><span class="cx"> #include "Lexer.h"
</span><del>-#include "NodeConstructors.h"
</del><span class="cx"> #include "Operations.h"
</span><span class="cx"> #include "Parser.h"
</span><span class="cx"> #include "PropertyNameArray.h"
</span><span class="lines">@@ -536,39 +535,36 @@
</span><span class="cx"> RefPtr<Label> end = generator.newLabel();
</span><span class="cx"> RefPtr<RegisterID> base = generator.emitNode(m_base);
</span><span class="cx"> generator.emitExpressionInfo(subexpressionDivot(), subexpressionStart(), subexpressionEnd());
</span><del>- RefPtr<RegisterID> function = generator.emitGetById(generator.tempDestination(dst), base.get(), generator.propertyNames().call);
</del><ins>+ RefPtr<RegisterID> function = generator.emitGetById(generator.tempDestination(dst), base.get(), m_ident);
</ins><span class="cx"> RefPtr<RegisterID> returnValue = generator.finalDestination(dst, function.get());
</span><del>- bool emitCallCheck = !generator.isBuiltinFunction();
- if (emitCallCheck)
- generator.emitJumpIfNotFunctionCall(function.get(), realCall.get());
-
</del><ins>+ generator.emitJumpIfNotFunctionCall(function.get(), realCall.get());
</ins><span class="cx"> {
</span><span class="cx"> if (m_args->m_listNode && m_args->m_listNode->m_expr) {
</span><span class="cx"> ArgumentListNode* oldList = m_args->m_listNode;
</span><span class="cx"> m_args->m_listNode = m_args->m_listNode->m_next;
</span><del>-
</del><ins>+
</ins><span class="cx"> RefPtr<RegisterID> realFunction = generator.emitMove(generator.tempDestination(dst), base.get());
</span><span class="cx"> CallArguments callArguments(generator, m_args);
</span><span class="cx"> generator.emitNode(callArguments.thisRegister(), oldList->m_expr);
</span><span class="cx"> generator.emitCall(returnValue.get(), realFunction.get(), NoExpectedFunction, callArguments, divot(), divotStart(), divotEnd());
</span><ins>+ generator.emitJump(end.get());
+
</ins><span class="cx"> m_args->m_listNode = oldList;
</span><span class="cx"> } else {
</span><span class="cx"> RefPtr<RegisterID> realFunction = generator.emitMove(generator.tempDestination(dst), base.get());
</span><span class="cx"> CallArguments callArguments(generator, m_args);
</span><span class="cx"> generator.emitLoad(callArguments.thisRegister(), jsUndefined());
</span><span class="cx"> generator.emitCall(returnValue.get(), realFunction.get(), NoExpectedFunction, callArguments, divot(), divotStart(), divotEnd());
</span><ins>+ generator.emitJump(end.get());
</ins><span class="cx"> }
</span><span class="cx"> }
</span><del>- if (emitCallCheck) {
- generator.emitJump(end.get());
- generator.emitLabel(realCall.get());
- {
- CallArguments callArguments(generator, m_args);
- generator.emitMove(callArguments.thisRegister(), base.get());
- generator.emitCall(returnValue.get(), function.get(), NoExpectedFunction, callArguments, divot(), divotStart(), divotEnd());
- }
- generator.emitLabel(end.get());
</del><ins>+ generator.emitLabel(realCall.get());
+ {
+ CallArguments callArguments(generator, m_args);
+ generator.emitMove(callArguments.thisRegister(), base.get());
+ generator.emitCall(returnValue.get(), function.get(), NoExpectedFunction, callArguments, divot(), divotStart(), divotEnd());
</ins><span class="cx"> }
</span><ins>+ generator.emitLabel(end.get());
</ins><span class="cx"> return returnValue.get();
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -589,67 +585,65 @@
</span><span class="cx"> RefPtr<Label> end = generator.newLabel();
</span><span class="cx"> RefPtr<RegisterID> base = generator.emitNode(m_base);
</span><span class="cx"> generator.emitExpressionInfo(subexpressionDivot(), subexpressionStart(), subexpressionEnd());
</span><del>- RefPtr<RegisterID> function;
</del><ins>+ RefPtr<RegisterID> function = generator.emitGetById(generator.tempDestination(dst), base.get(), m_ident);
</ins><span class="cx"> RefPtr<RegisterID> returnValue = generator.finalDestination(dst, function.get());
</span><del>- bool emitCallCheck = !generator.isBuiltinFunction();
- if (emitCallCheck) {
- function = generator.emitGetById(generator.tempDestination(dst), base.get(), generator.propertyNames().apply);
- generator.emitJumpIfNotFunctionApply(function.get(), realCall.get());
- }
- if (mayBeCall) {
- if (m_args->m_listNode && m_args->m_listNode->m_expr) {
- ArgumentListNode* oldList = m_args->m_listNode;
- if (m_args->m_listNode->m_next) {
- ASSERT(m_args->m_listNode->m_next->m_expr->isSimpleArray());
- ASSERT(!m_args->m_listNode->m_next->m_next);
- m_args->m_listNode = static_cast<ArrayNode*>(m_args->m_listNode->m_next->m_expr)->toArgumentList(generator.vm(), 0, 0);
- RefPtr<RegisterID> realFunction = generator.emitMove(generator.tempDestination(dst), base.get());
- CallArguments callArguments(generator, m_args);
- generator.emitNode(callArguments.thisRegister(), oldList->m_expr);
- generator.emitCall(returnValue.get(), realFunction.get(), NoExpectedFunction, callArguments, divot(), divotStart(), divotEnd());
</del><ins>+ generator.emitJumpIfNotFunctionApply(function.get(), realCall.get());
+ {
+ if (mayBeCall) {
+ if (m_args->m_listNode && m_args->m_listNode->m_expr) {
+ ArgumentListNode* oldList = m_args->m_listNode;
+ if (m_args->m_listNode->m_next) {
+ ASSERT(m_args->m_listNode->m_next->m_expr->isSimpleArray());
+ ASSERT(!m_args->m_listNode->m_next->m_next);
+ m_args->m_listNode = static_cast<ArrayNode*>(m_args->m_listNode->m_next->m_expr)->toArgumentList(generator.vm(), 0, 0);
+ RefPtr<RegisterID> realFunction = generator.emitMove(generator.tempDestination(dst), base.get());
+ CallArguments callArguments(generator, m_args);
+ generator.emitNode(callArguments.thisRegister(), oldList->m_expr);
+ generator.emitCall(returnValue.get(), realFunction.get(), NoExpectedFunction, callArguments, divot(), divotStart(), divotEnd());
+ } else {
+ m_args->m_listNode = m_args->m_listNode->m_next;
+ RefPtr<RegisterID> realFunction = generator.emitMove(generator.tempDestination(dst), base.get());
+ CallArguments callArguments(generator, m_args);
+ generator.emitNode(callArguments.thisRegister(), oldList->m_expr);
+ generator.emitCall(returnValue.get(), realFunction.get(), NoExpectedFunction, callArguments, divot(), divotStart(), divotEnd());
+ }
+ m_args->m_listNode = oldList;
</ins><span class="cx"> } else {
</span><del>- m_args->m_listNode = m_args->m_listNode->m_next;
</del><span class="cx"> RefPtr<RegisterID> realFunction = generator.emitMove(generator.tempDestination(dst), base.get());
</span><span class="cx"> CallArguments callArguments(generator, m_args);
</span><del>- generator.emitNode(callArguments.thisRegister(), oldList->m_expr);
</del><ins>+ generator.emitLoad(callArguments.thisRegister(), jsUndefined());
</ins><span class="cx"> generator.emitCall(returnValue.get(), realFunction.get(), NoExpectedFunction, callArguments, divot(), divotStart(), divotEnd());
</span><span class="cx"> }
</span><del>- m_args->m_listNode = oldList;
</del><span class="cx"> } else {
</span><ins>+ ASSERT(m_args->m_listNode && m_args->m_listNode->m_next);
+ RefPtr<RegisterID> profileHookRegister;
+ if (generator.shouldEmitProfileHooks())
+ profileHookRegister = generator.newTemporary();
</ins><span class="cx"> RefPtr<RegisterID> realFunction = generator.emitMove(generator.tempDestination(dst), base.get());
</span><del>- CallArguments callArguments(generator, m_args);
- generator.emitLoad(callArguments.thisRegister(), jsUndefined());
- generator.emitCall(returnValue.get(), realFunction.get(), NoExpectedFunction, callArguments, divot(), divotStart(), divotEnd());
- }
- } else {
- ASSERT(m_args->m_listNode && m_args->m_listNode->m_next);
- RefPtr<RegisterID> profileHookRegister;
- if (generator.shouldEmitProfileHooks())
- profileHookRegister = generator.newTemporary();
- RefPtr<RegisterID> realFunction = generator.emitMove(generator.tempDestination(dst), base.get());
- RefPtr<RegisterID> thisRegister = generator.emitNode(m_args->m_listNode->m_expr);
- RefPtr<RegisterID> argsRegister;
- ArgumentListNode* args = m_args->m_listNode->m_next;
- if (args->m_expr->isResolveNode() && generator.willResolveToArguments(static_cast<ResolveNode*>(args->m_expr)->identifier()))
- argsRegister = generator.uncheckedRegisterForArguments();
- else
- argsRegister = generator.emitNode(args->m_expr);
</del><ins>+ RefPtr<RegisterID> thisRegister = generator.emitNode(m_args->m_listNode->m_expr);
+ RefPtr<RegisterID> argsRegister;
+ ArgumentListNode* args = m_args->m_listNode->m_next;
+ if (args->m_expr->isResolveNode() && generator.willResolveToArguments(static_cast<ResolveNode*>(args->m_expr)->identifier()))
+ argsRegister = generator.uncheckedRegisterForArguments();
+ else
+ argsRegister = generator.emitNode(args->m_expr);
</ins><span class="cx">
</span><del>- // Function.prototype.apply ignores extra arguments, but we still
- // need to evaluate them for side effects.
- while ((args = args->m_next))
- generator.emitNode(args->m_expr);
</del><ins>+ // Function.prototype.apply ignores extra arguments, but we still
+ // need to evaluate them for side effects.
+ while ((args = args->m_next))
+ generator.emitNode(args->m_expr);
</ins><span class="cx">
</span><del>- generator.emitCallVarargs(returnValue.get(), realFunction.get(), thisRegister.get(), argsRegister.get(), generator.newTemporary(), profileHookRegister.get(), divot(), divotStart(), divotEnd());
- }
- if (emitCallCheck) {
</del><ins>+ generator.emitCallVarargs(returnValue.get(), realFunction.get(), thisRegister.get(), argsRegister.get(), generator.newTemporary(), profileHookRegister.get(), divot(), divotStart(), divotEnd());
+ }
</ins><span class="cx"> generator.emitJump(end.get());
</span><del>- generator.emitLabel(realCall.get());
</del><ins>+ }
+ generator.emitLabel(realCall.get());
+ {
</ins><span class="cx"> CallArguments callArguments(generator, m_args);
</span><span class="cx"> generator.emitMove(callArguments.thisRegister(), base.get());
</span><span class="cx"> generator.emitCall(returnValue.get(), function.get(), NoExpectedFunction, callArguments, divot(), divotStart(), divotEnd());
</span><del>- generator.emitLabel(end.get());
</del><span class="cx"> }
</span><ins>+ generator.emitLabel(end.get());
</ins><span class="cx"> return returnValue.get();
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorecreate_hash_table"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/create_hash_table (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/create_hash_table        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/create_hash_table        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -289,17 +289,7 @@
</span><span class="cx"> $intrinsic = "RegExpTestIntrinsic" if ($key eq "test");
</span><span class="cx"> }
</span><span class="cx">
</span><del>- if ($values[$i]{"type"} eq "Function") {
- my $tableHead = $name;
- $tableHead =~ s/Table$//;
- print " #if JSC_BUILTIN_EXISTS(" . uc($tableHead . $key) .")\n";
- print " { \"$key\", (($attrs[$i]) & ~Function) | Builtin, $intrinsic, (intptr_t)static_cast<BuiltinGenerator>(" . $tableHead . ucfirst($key) . "CodeGenerator), (intptr_t)$secondValue },\n";
- print " #else\n"
- }
</del><span class="cx"> print " { \"$key\", $attrs[$i], $intrinsic, (intptr_t)" . $firstCastStr . "($firstValue), (intptr_t)" . $secondCastStr . "($secondValue) },\n";
</span><del>- if ($values[$i]{"type"} eq "Function") {
- print " #endif\n"
- }
</del><span class="cx"> $i++;
</span><span class="cx"> }
</span><span class="cx"> print " { 0, 0, NoIntrinsic, 0, 0 }\n";
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGDominatorscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGDominators.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGDominators.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/dfg/DFGDominators.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -25,7 +25,6 @@
</span><span class="cx">
</span><span class="cx"> #include "config.h"
</span><span class="cx"> #include "DFGDominators.h"
</span><del>-#include "JSFunctionInlines.h"
</del><span class="cx">
</span><span class="cx"> #if ENABLE(DFG_JIT)
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGJITCodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGJITCode.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGJITCode.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/dfg/DFGJITCode.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -29,7 +29,6 @@
</span><span class="cx"> #if ENABLE(DFG_JIT)
</span><span class="cx">
</span><span class="cx"> #include "CodeBlock.h"
</span><del>-#include "JSCJSValueInlines.h"
</del><span class="cx">
</span><span class="cx"> namespace JSC { namespace DFG {
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGOperationscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGOperations.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGOperations.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/dfg/DFGOperations.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -48,7 +48,6 @@
</span><span class="cx"> #include "JSActivation.h"
</span><span class="cx"> #include "VM.h"
</span><span class="cx"> #include "JSNameScope.h"
</span><del>-#include "JSStringInlines.h"
</del><span class="cx"> #include "NameInstance.h"
</span><span class="cx"> #include "ObjectConstructor.h"
</span><span class="cx"> #include "Operations.h"
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoregeneratejsbuiltins"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/generate-js-builtins (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/generate-js-builtins        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/generate-js-builtins        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -1,304 +0,0 @@
</span><del>-#!/usr/bin/python
-# Copyright (C) 2014 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.
-
-import filecmp
-import fnmatch
-import os
-import re
-import shutil
-import sys
-import datetime
-import json
-
-copyrightText = """ *
- * 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.
- */\n
-"""
-
-generatorString = "/* Generated by %s do not hand edit. */\n" % os.path.basename(__file__)
-
-functionHeadRegExp = re.compile(r"function\s+\w+\s*\(.*?\)", re.MULTILINE | re.S)
-functionNameRegExp = re.compile(r"function\s+(\w+)\s*\(", re.MULTILINE | re.S)
-functionParameterFinder = re.compile(r"^function\s+(?:\w+)\s*\(((?:\s*\w+)?\s*(?:\s*,\s*\w+)*)?\)", re.MULTILINE | re.S)
-
-multilineCommentRegExp = re.compile(r"\/\*.*?\*\/", re.MULTILINE | re.S)
-singleLineCommentRegExp = re.compile(r"\/\/.*?\n", re.MULTILINE | re.S)
-
-def getCopyright(source):
- copyrightBlock = multilineCommentRegExp.findall(source)[0]
- copyrightBlock = copyrightBlock[:copyrightBlock.index("Redistribution")]
- copyRightLines = []
-
- for line in copyrightBlock.split("\n"):
- line = line.replace("/*", "")
- line = line.replace("*/", "")
- line = line.replace("*", "")
- line = line.replace("Copyright", "")
- line = line.replace("copyright", "")
- line = line.replace("(C)", "")
- line = line.replace("(c)", "")
- line = line.strip()
- if len(line) == 0:
- continue
-
- copyRightLines.append(line)
-
- return list(set(copyRightLines))
-
-
-
-def getFunctions(source):
-
- source = multilineCommentRegExp.sub("/**/", singleLineCommentRegExp.sub("//\n", source))
-
- matches = [ f for f in functionHeadRegExp.finditer(source)]
- functionBounds = []
- start = 0
- end = 0
- for match in matches:
- start = match.start()
- if start < end:
- continue
- end = match.end()
- while source[end] != '{':
- end = end + 1
- depth = 1
- end = end + 1
- while depth > 0:
- if source[end] == '{':
- depth = depth + 1
- elif source[end] == '}':
- depth = depth - 1
- end = end + 1
- functionBounds.append((start, end))
-
- functions = [source[start:end].strip() for (start, end) in functionBounds]
- result = []
- for function in functions:
- function = multilineCommentRegExp.sub("", function)
- functionName = functionNameRegExp.findall(function)[0]
- functionParameters = functionParameterFinder.findall(function)[0].split(',')
- if len(functionParameters[0]) == 0:
- functionParameters = []
-
- result.append((functionName, function, functionParameters))
- return result
-
-
-def generateCode(source):
- inputFile = open(source, "r")
- baseName = os.path.basename(source).replace(".js", "")
-
- source = ""
- for line in inputFile:
- source = source + line
-
- if sys.platform == "cygwin":
- source = source.replace("\r\n", "\n")
- return (baseName, getFunctions(source), getCopyright(source))
-
-def mangleName(object, name):
- qName = object + "." + name
- mangledName = ""
- i = 0
- while i < len(qName):
- if qName[i] == '.':
- mangledName = mangledName + qName[i + 1].upper()
- i = i + 1
- else:
- mangledName = mangledName + qName[i]
- i = i + 1
- return mangledName
-
-builtins = []
-
-baseName = sys.argv[-1]
-builtin_definitions = sys.argv[1:-1]
-(output_base, _) = os.path.splitext(sys.argv[-1])
-
-copyrights = []
-for file in builtin_definitions:
- if fnmatch.fnmatch(file, '*.js'):
- (baseName, functions, objectCopyrights) = generateCode(file)
- copyrights.extend(objectCopyrights)
- builtins.append((baseName, functions))
-
-copyrights = list(set(copyrights))
-
-copyrightBody = ""
-for copyright in copyrights:
- copyrightBody = copyrightBody +" * Copyright (C) " + copyright + "\n"
-
-builtinsHeader = open(output_base + ".h.tmp", "w")
-builtinsImplementation = open(output_base + ".cpp.tmp", "w")
-copyrightText = "/*\n" + copyrightBody + copyrightText
-builtinsHeader.write("""%s
-%s
-
-#ifndef JSCBuiltins_H
-#define JSCBuiltins_H
-
-namespace JSC {
-
-class FunctionExecutable;
-class Identifier;
-class JSGlobalObject;
-class SourceCode;
-class UnlinkedFunctionExecutable;
-class VM;
-
-FunctionExecutable* createBuiltinExecutable(VM&, UnlinkedFunctionExecutable*, const SourceCode&);
-
-""" % (generatorString, copyrightText))
-
-codeReferences = []
-
-for (objectName, functions) in builtins:
- print("Generating bindings for the %s builtin." % objectName)
- builtinsHeader.write("/* %s functions */\n" % objectName)
- for (name, implementation, _) in functions:
- mangledName = mangleName(objectName, name)
- mangledName = mangledName[0].lower() + mangledName[1:] + "Code"
- codeReferences.append((mangledName, name, implementation))
- builtinsHeader.write("extern const char* s_%s;\n" % mangledName)
- builtinsHeader.write("extern const int s_%sLength;\n" % mangledName)
- builtinsHeader.write("\n")
- builtinsHeader.write("#define JSC_FOREACH_%s_BUILTIN(macro) \\\n" % objectName.replace(".", "_").upper())
- for (name, implementation, arguments) in functions:
- mangledName = mangleName(objectName, name)
- builtinsHeader.write(" macro(%s, %s, %d) \\\n" % (name, mangledName, len(arguments)))
- builtinsHeader.write("\n")
- for (name, implementation, arguments) in functions:
- builtinsHeader.write("#define JSC_BUILTIN_%s 1\n" % mangleName(objectName, name).upper())
- builtinsHeader.write("\n\n")
-names = []
-builtinsHeader.write("#define JSC_FOREACH_BUILTIN(macro)\\\n")
-for (codeReference, functionName, source) in codeReferences:
- builtinsHeader.write(" macro(%s, %s, s_%sLength) \\\n" % (codeReference, functionName, codeReference))
- names.append(functionName)
-
-builtinsHeader.write("\n\n")
-builtinsHeader.write("#define JSC_FOREACH_BUILTIN_FUNCTION_NAME(macro) \\\n")
-for name in sorted(set(names)):
- builtinsHeader.write(" macro(%s) \\\n" % name)
-builtinsHeader.write("""
-
-#define JSC_DECLARE_BUILTIN_GENERATOR(codeName, functionName, argumentCount) \\
- FunctionExecutable* codeName##Generator(VM&);
-
-JSC_FOREACH_BUILTIN(JSC_DECLARE_BUILTIN_GENERATOR)
-#undef JSC_DECLARE_BUILTIN_GENERATOR
-
-#define JSC_BUILTIN_EXISTS(name) defined JSC_BUILTIN_ ## name
-
-}
-
-#endif
-
-""")
-
-builtinsImplementation.write("""%s
-%s
-
-#include "config.h"
-
-#include "JSCBuiltins.h"
-
-#include "BuiltinExecutables.h"
-#include "Executable.h"
-#include "JSCellInlines.h"
-#include "VM.h"
-
-namespace JSC {
-
-""" % (generatorString, copyrightText))
-
-for (codeReference, name, source) in codeReferences:
- source = "(function " + source[source.index("("):] + ")"
- lines = json.dumps(source)[1:-1].split("\\n")
- sourceLength = len(source)
- source = ""
- for line in lines:
- source = source + (" \"%s\\n\" \\\n" % line)
- builtinsImplementation.write("const char* s_%s =\n%s;\n\n" % (codeReference, source))
- builtinsImplementation.write("const int s_%sLength = %d;\n\n" % (codeReference, sourceLength + 1)) # + 1 for \n
-
-builtinsImplementation.write("""
-FunctionExecutable* createBuiltinExecutable(VM& vm, UnlinkedFunctionExecutable* unlinkedExecutable, const SourceCode& source)
-{
- unsigned lineCount = unlinkedExecutable->lineCount();
- unsigned startColumn = 1;
- unsigned sourceLength = unlinkedExecutable->sourceLength();
- bool endColumnIsOnStartLine = !lineCount;
- unsigned endColumnExcludingBraces = unlinkedExecutable->unlinkedBodyEndColumn() + (endColumnIsOnStartLine ? 0 : 1);
- unsigned startOffset = unlinkedExecutable->startOffset();
- unsigned startOffsetExcludingOpenBrace = startOffset + 1;
- unsigned endOffsetExcludingCloseBrace = startOffset + sourceLength - 1;
- SourceCode bodySource(source.provider(), startOffsetExcludingOpenBrace, endOffsetExcludingCloseBrace, 0, startColumn);
- return FunctionExecutable::create(vm, bodySource, unlinkedExecutable, 0, lineCount, startColumn, endColumnExcludingBraces, false);
-}
-
-#define JSC_DEFINE_BUILTIN_GENERATOR(codeName, functionName, argumentCount) \\
-FunctionExecutable* codeName##Generator(VM& vm) \\
-{ \\
- return createBuiltinExecutable(vm, vm.builtinExecutables()->codeName##Executable(), vm.builtinExecutables()->codeName##Source()); \\
-}
-
-JSC_FOREACH_BUILTIN(JSC_DEFINE_BUILTIN_GENERATOR)
-#undef JSC_DEFINE_BUILTIN_GENERATOR
-}
-
-""")
-
-builtinsHeader.close()
-builtinsImplementation.close()
-
-if (not os.path.exists(output_base + ".h")) or (not filecmp.cmp(output_base + ".h.tmp", output_base + ".h", shallow=False)):
- os.rename(output_base + ".h.tmp", output_base + ".h")
-else:
- os.remove(output_base + ".h.tmp")
-
-if (not os.path.exists(output_base + ".cpp")) or (not filecmp.cmp(output_base + ".cpp.tmp", output_base + ".cpp", shallow=False)):
- os.rename(output_base + ".cpp.tmp", output_base + ".cpp")
-else:
- os.remove(output_base + ".cpp.tmp")
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreinterpreterCachedCallh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/interpreter/CachedCall.h (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/interpreter/CachedCall.h        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/interpreter/CachedCall.h        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -43,7 +43,7 @@
</span><span class="cx"> , m_interpreter(callFrame->interpreter())
</span><span class="cx"> , m_entryScope(callFrame->vm(), function->scope()->globalObject())
</span><span class="cx"> {
</span><del>- ASSERT(!function->isHostFunctionNonInline());
</del><ins>+ ASSERT(!function->isHostFunction());
</ins><span class="cx"> if (callFrame->vm().isSafeToRecurse()) {
</span><span class="cx"> m_arguments.resize(argumentCount);
</span><span class="cx"> m_closure = m_interpreter->prepareForRepeatCall(function->jsExecutable(), callFrame, &m_protoCallFrame, function, argumentCount + 1, function->scope(), m_arguments.data());
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinterpreterInterpretercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/interpreter/Interpreter.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/interpreter/Interpreter.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/interpreter/Interpreter.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -50,7 +50,6 @@
</span><span class="cx"> #include "JSPropertyNameIterator.h"
</span><span class="cx"> #include "JSStackInlines.h"
</span><span class="cx"> #include "JSString.h"
</span><del>-#include "JSStringInlines.h"
</del><span class="cx"> #include "JSWithScope.h"
</span><span class="cx"> #include "LLIntCLoop.h"
</span><span class="cx"> #include "LLIntThunks.h"
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinterpreterProtoCallFramecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/interpreter/ProtoCallFrame.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/interpreter/ProtoCallFrame.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/interpreter/ProtoCallFrame.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -27,7 +27,6 @@
</span><span class="cx"> #include "ProtoCallFrame.h"
</span><span class="cx">
</span><span class="cx"> #include "CodeBlock.h"
</span><del>-#include "JSCJSValueInlines.h"
</del><span class="cx"> #include "StackAlignment.h"
</span><span class="cx">
</span><span class="cx"> namespace JSC {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejitJITOpcodescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jit/JITOpcodes.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jit/JITOpcodes.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/jit/JITOpcodes.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -34,7 +34,6 @@
</span><span class="cx"> #include "Heap.h"
</span><span class="cx"> #include "JITInlines.h"
</span><span class="cx"> #include "JSArray.h"
</span><del>-#include "JSCJSValueInlines.h"
</del><span class="cx"> #include "JSCell.h"
</span><span class="cx"> #include "JSFunction.h"
</span><span class="cx"> #include "JSPropertyNameIterator.h"
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejitJITOpcodes32_64cpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jit/JITOpcodes32_64.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jit/JITOpcodes32_64.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/jit/JITOpcodes32_64.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -34,7 +34,6 @@
</span><span class="cx"> #include "Debugger.h"
</span><span class="cx"> #include "JITInlines.h"
</span><span class="cx"> #include "JSArray.h"
</span><del>-#include "JSCJSValueInlines.h"
</del><span class="cx"> #include "JSCell.h"
</span><span class="cx"> #include "JSFunction.h"
</span><span class="cx"> #include "JSPropertyNameIterator.h"
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejitJITOperationscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jit/JITOperations.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jit/JITOperations.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/jit/JITOperations.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -41,13 +41,10 @@
</span><span class="cx"> #include "JIT.h"
</span><span class="cx"> #include "JITOperationWrappers.h"
</span><span class="cx"> #include "JITToDFGDeferredCompilationCallback.h"
</span><del>-#include "JSCJSValueInlines.h"
-#include "JSFunctionInlines.h"
</del><span class="cx"> #include "JSGlobalObjectFunctions.h"
</span><span class="cx"> #include "JSNameScope.h"
</span><span class="cx"> #include "JSPropertyNameIterator.h"
</span><span class="cx"> #include "JSStackInlines.h"
</span><del>-#include "JSStringInlines.h"
</del><span class="cx"> #include "JSWithScope.h"
</span><span class="cx"> #include "ObjectConstructor.h"
</span><span class="cx"> #include "Operations.h"
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejitJITPropertyAccesscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jit/JITPropertyAccess.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jit/JITPropertyAccess.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/jit/JITPropertyAccess.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -29,13 +29,11 @@
</span><span class="cx"> #include "JIT.h"
</span><span class="cx">
</span><span class="cx"> #include "CodeBlock.h"
</span><del>-#include "CommonIdentifiers.h"
</del><span class="cx"> #include "GCAwareJITStubRoutine.h"
</span><span class="cx"> #include "GetterSetter.h"
</span><span class="cx"> #include "Interpreter.h"
</span><span class="cx"> #include "JITInlines.h"
</span><span class="cx"> #include "JSArray.h"
</span><del>-#include "JSCJSValueInlines.h"
</del><span class="cx"> #include "JSFunction.h"
</span><span class="cx"> #include "JSPropertyNameIterator.h"
</span><span class="cx"> #include "JSVariableObject.h"
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejitJITPropertyAccess32_64cpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jit/JITPropertyAccess32_64.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jit/JITPropertyAccess32_64.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/jit/JITPropertyAccess32_64.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -30,12 +30,10 @@
</span><span class="cx"> #include "JIT.h"
</span><span class="cx">
</span><span class="cx"> #include "CodeBlock.h"
</span><del>-#include "CommonIdentifiers.h"
</del><span class="cx"> #include "GCAwareJITStubRoutine.h"
</span><span class="cx"> #include "Interpreter.h"
</span><span class="cx"> #include "JITInlines.h"
</span><span class="cx"> #include "JSArray.h"
</span><del>-#include "JSCJSValueInlines.h"
</del><span class="cx"> #include "JSFunction.h"
</span><span class="cx"> #include "JSPropertyNameIterator.h"
</span><span class="cx"> #include "JSVariableObject.h"
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejsccpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jsc.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jsc.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/jsc.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -38,7 +38,6 @@
</span><span class="cx"> #include "JSLock.h"
</span><span class="cx"> #include "JSProxy.h"
</span><span class="cx"> #include "JSString.h"
</span><del>-#include "JSStringInlines.h"
</del><span class="cx"> #include "Operations.h"
</span><span class="cx"> #include "SamplingTool.h"
</span><span class="cx"> #include "StackVisitor.h"
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorellintLLIntOffsetsExtractorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/llint/LLIntOffsetsExtractor.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/llint/LLIntOffsetsExtractor.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/llint/LLIntOffsetsExtractor.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -35,7 +35,7 @@
</span><span class="cx"> #include "JITStubs.h"
</span><span class="cx"> #include "JSArray.h"
</span><span class="cx"> #include "JSCell.h"
</span><del>-#include "JSFunctionInlines.h"
</del><ins>+#include "JSFunction.h"
</ins><span class="cx"> #include "VM.h"
</span><span class="cx"> #include "JSGlobalObject.h"
</span><span class="cx"> #include "JSObject.h"
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorellintLLIntSlowPathscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -45,7 +45,7 @@
</span><span class="cx"> #include "JSNameScope.h"
</span><span class="cx"> #include "JSPropertyNameIterator.h"
</span><span class="cx"> #include "JSStackInlines.h"
</span><del>-#include "JSStringInlines.h"
</del><ins>+#include "JSString.h"
</ins><span class="cx"> #include "JSWithScope.h"
</span><span class="cx"> #include "LLIntCommon.h"
</span><span class="cx"> #include "LLIntExceptions.h"
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreparserASTBuilderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/parser/ASTBuilder.h (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/parser/ASTBuilder.h        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/parser/ASTBuilder.h        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -888,9 +888,9 @@
</span><span class="cx"> ASSERT(func->isDotAccessorNode());
</span><span class="cx"> DotAccessorNode* dot = static_cast<DotAccessorNode*>(func);
</span><span class="cx"> FunctionCallDotNode* node;
</span><del>- if (dot->identifier() == m_vm->propertyNames->call || dot->identifier() == m_vm->propertyNames->callPrivateName)
</del><ins>+ if (dot->identifier() == m_vm->propertyNames->call)
</ins><span class="cx"> node = new (m_vm) CallFunctionCallDotNode(location, dot->base(), dot->identifier(), args, divot, divotStart, divotEnd);
</span><del>- else if (dot->identifier() == m_vm->propertyNames->apply || dot->identifier() == m_vm->propertyNames->applyPrivateName)
</del><ins>+ else if (dot->identifier() == m_vm->propertyNames->apply)
</ins><span class="cx"> node = new (m_vm) ApplyFunctionCallDotNode(location, dot->base(), dot->identifier(), args, divot, divotStart, divotEnd);
</span><span class="cx"> else
</span><span class="cx"> node = new (m_vm) FunctionCallDotNode(location, dot->base(), dot->identifier(), args, divot, divotStart, divotEnd);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreparserLexercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/parser/Lexer.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/parser/Lexer.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/parser/Lexer.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -25,10 +25,10 @@
</span><span class="cx"> #include "config.h"
</span><span class="cx"> #include "Lexer.h"
</span><span class="cx">
</span><del>-#include "CommonIdentifiers.h"
-#include "Identifier.h"
</del><span class="cx"> #include "JSFunctionInlines.h"
</span><ins>+
</ins><span class="cx"> #include "JSGlobalObjectFunctions.h"
</span><ins>+#include "Identifier.h"
</ins><span class="cx"> #include "NodeInfo.h"
</span><span class="cx"> #include "Nodes.h"
</span><span class="cx"> #include <wtf/dtoa.h>
</span><span class="lines">@@ -90,7 +90,6 @@
</span><span class="cx">
</span><span class="cx"> // Other types (only one so far)
</span><span class="cx"> CharacterWhiteSpace,
</span><del>- CharacterPrivateIdentifierStart
</del><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> // 256 Latin-1 codes
</span><span class="lines">@@ -159,7 +158,7 @@
</span><span class="cx"> /* 61 - = */ CharacterEqual,
</span><span class="cx"> /* 62 - > */ CharacterGreater,
</span><span class="cx"> /* 63 - ? */ CharacterQuestion,
</span><del>-/* 64 - @ */ CharacterPrivateIdentifierStart,
</del><ins>+/* 64 - @ */ CharacterInvalid,
</ins><span class="cx"> /* 65 - A */ CharacterIdentifierStart,
</span><span class="cx"> /* 66 - B */ CharacterIdentifierStart,
</span><span class="cx"> /* 67 - C */ CharacterIdentifierStart,
</span><span class="lines">@@ -487,10 +486,9 @@
</span><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> template <typename T>
</span><del>-Lexer<T>::Lexer(VM* vm, JSParserStrictness strictness)
</del><ins>+Lexer<T>::Lexer(VM* vm)
</ins><span class="cx"> : m_isReparsing(false)
</span><span class="cx"> , m_vm(vm)
</span><del>- , m_parsingBuiltinFunction(strictness == JSParseBuiltin)
</del><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -755,27 +753,7 @@
</span><span class="cx"> ASSERT(c <= static_cast<int>(USHRT_MAX));
</span><span class="cx"> m_buffer16.append(static_cast<UChar>(c));
</span><span class="cx"> }
</span><del>-
-#if !ASSERT_DISABLED
-bool isSafeIdentifier(VM& vm, const Identifier* ident)
-{
- if (!ident)
- return true;
- /* Just block any use of suspicious identifiers. This is intended to
- * be used as a safety net while implementing builtins.
- */
- if (*ident == vm.propertyNames->call)
- return false;
- if (*ident == vm.propertyNames->apply)
- return false;
- if (*ident == vm.propertyNames->eval)
- return false;
- if (*ident == vm.propertyNames->Function)
- return false;
- return true;
-}
-#endif
-
</del><ins>+
</ins><span class="cx"> template <>
</span><span class="cx"> template <bool shouldCreateIdentifier> ALWAYS_INLINE JSTokenType Lexer<LChar>::parseIdentifier(JSTokenData* tokenData, unsigned lexerFlags, bool strictMode)
</span><span class="cx"> {
</span><span class="lines">@@ -787,11 +765,7 @@
</span><span class="cx"> return keyword == RESERVED_IF_STRICT && !strictMode ? IDENT : keyword;
</span><span class="cx"> }
</span><span class="cx"> }
</span><del>-
- bool isPrivateName = m_current == '@' && m_parsingBuiltinFunction;
- if (isPrivateName)
- shift();
-
</del><ins>+
</ins><span class="cx"> const LChar* identifierStart = currentSourcePtr();
</span><span class="cx"> unsigned identifierLineStart = currentLineStartOffset();
</span><span class="cx">
</span><span class="lines">@@ -805,26 +779,15 @@
</span><span class="cx">
</span><span class="cx"> const Identifier* ident = 0;
</span><span class="cx">
</span><del>- if (shouldCreateIdentifier || m_parsingBuiltinFunction) {
</del><ins>+ if (shouldCreateIdentifier) {
</ins><span class="cx"> int identifierLength = currentSourcePtr() - identifierStart;
</span><span class="cx"> ident = makeIdentifier(identifierStart, identifierLength);
</span><del>- if (m_parsingBuiltinFunction) {
- if (!isSafeIdentifier(*m_vm, ident) && !isPrivateName) {
- m_lexErrorMessage = makeString("The use of '", ident->string(), "' is disallowed in builtin functions.");
- return ERRORTOK;
- }
- if (isPrivateName)
- ident = m_vm->propertyNames->getPrivateName(*ident);
- else if (*ident == m_vm->propertyNames->undefinedKeyword)
- tokenData->ident = &m_vm->propertyNames->undefinedKeywordPrivateName;
- if (!ident)
- return INVALID_PRIVATE_NAME_ERRORTOK;
- }
</del><ins>+
</ins><span class="cx"> tokenData->ident = ident;
</span><span class="cx"> } else
</span><span class="cx"> tokenData->ident = 0;
</span><span class="cx">
</span><del>- if (UNLIKELY((remaining < maxTokenLength) && !(lexerFlags & LexerFlagsIgnoreReservedWords)) && !isPrivateName) {
</del><ins>+ if (UNLIKELY((remaining < maxTokenLength) && !(lexerFlags & LexerFlagsIgnoreReservedWords))) {
</ins><span class="cx"> ASSERT(shouldCreateIdentifier);
</span><span class="cx"> if (remaining < maxTokenLength) {
</span><span class="cx"> const HashEntry* entry = m_vm->keywords->getKeyword(*ident);
</span><span class="lines">@@ -851,10 +814,6 @@
</span><span class="cx"> return keyword == RESERVED_IF_STRICT && !strictMode ? IDENT : keyword;
</span><span class="cx"> }
</span><span class="cx"> }
</span><del>-
- bool isPrivateName = m_current == '@' && m_parsingBuiltinFunction;
- if (isPrivateName)
- shift();
</del><span class="cx">
</span><span class="cx"> const UChar* identifierStart = currentSourcePtr();
</span><span class="cx"> int identifierLineStart = currentLineStartOffset();
</span><span class="lines">@@ -867,7 +826,6 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> if (UNLIKELY(m_current == '\\')) {
</span><del>- ASSERT(!isPrivateName);
</del><span class="cx"> setOffsetFromSourcePtr(identifierStart, identifierLineStart);
</span><span class="cx"> return parseIdentifierSlowCase<shouldCreateIdentifier>(tokenData, lexerFlags, strictMode);
</span><span class="cx"> }
</span><span class="lines">@@ -879,29 +837,18 @@
</span><span class="cx">
</span><span class="cx"> const Identifier* ident = 0;
</span><span class="cx">
</span><del>- if (shouldCreateIdentifier || m_parsingBuiltinFunction) {
</del><ins>+ if (shouldCreateIdentifier) {
</ins><span class="cx"> int identifierLength = currentSourcePtr() - identifierStart;
</span><span class="cx"> if (isAll8Bit)
</span><span class="cx"> ident = makeIdentifierLCharFromUChar(identifierStart, identifierLength);
</span><span class="cx"> else
</span><span class="cx"> ident = makeIdentifier(identifierStart, identifierLength);
</span><del>- if (m_parsingBuiltinFunction) {
- if (!isSafeIdentifier(*m_vm, ident) && !isPrivateName) {
- m_lexErrorMessage = makeString("The use of '", ident->string(), "' is disallowed in builtin functions.");
- return ERRORTOK;
- }
- if (isPrivateName)
- ident = m_vm->propertyNames->getPrivateName(*ident);
- else if (*ident == m_vm->propertyNames->undefinedKeyword)
- tokenData->ident = &m_vm->propertyNames->undefinedKeywordPrivateName;
- if (!ident)
- return INVALID_PRIVATE_NAME_ERRORTOK;
- }
</del><ins>+
</ins><span class="cx"> tokenData->ident = ident;
</span><span class="cx"> } else
</span><span class="cx"> tokenData->ident = 0;
</span><span class="cx">
</span><del>- if (UNLIKELY((remaining < maxTokenLength) && !(lexerFlags & LexerFlagsIgnoreReservedWords)) && !isPrivateName) {
</del><ins>+ if (UNLIKELY((remaining < maxTokenLength) && !(lexerFlags & LexerFlagsIgnoreReservedWords))) {
</ins><span class="cx"> ASSERT(shouldCreateIdentifier);
</span><span class="cx"> if (remaining < maxTokenLength) {
</span><span class="cx"> const HashEntry* entry = m_vm->keywords->getKeyword(*ident);
</span><span class="lines">@@ -1711,7 +1658,6 @@
</span><span class="cx"> ASSERT(isIdentStart(m_current));
</span><span class="cx"> FALLTHROUGH;
</span><span class="cx"> case CharacterBackSlash:
</span><del>- parseIdent:
</del><span class="cx"> if (lexerFlags & LexexFlagsDontBuildKeywords)
</span><span class="cx"> token = parseIdentifier<false>(tokenData, lexerFlags, strictMode);
</span><span class="cx"> else
</span><span class="lines">@@ -1724,11 +1670,6 @@
</span><span class="cx"> m_terminator = true;
</span><span class="cx"> m_lineStart = m_code;
</span><span class="cx"> goto start;
</span><del>- case CharacterPrivateIdentifierStart:
- if (m_parsingBuiltinFunction)
- goto parseIdent;
-
- FALLTHROUGH;
</del><span class="cx"> case CharacterInvalid:
</span><span class="cx"> m_lexErrorMessage = invalidCharacterMessage();
</span><span class="cx"> token = ERRORTOK;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreparserLexerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/parser/Lexer.h (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/parser/Lexer.h        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/parser/Lexer.h        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -72,7 +72,7 @@
</span><span class="cx"> WTF_MAKE_FAST_ALLOCATED;
</span><span class="cx">
</span><span class="cx"> public:
</span><del>- Lexer(VM*, JSParserStrictness);
</del><ins>+ Lexer(VM*);
</ins><span class="cx"> ~Lexer();
</span><span class="cx">
</span><span class="cx"> // Character manipulation functions.
</span><span class="lines">@@ -238,7 +238,6 @@
</span><span class="cx"> IdentifierArena* m_arena;
</span><span class="cx">
</span><span class="cx"> VM* m_vm;
</span><del>- bool m_parsingBuiltinFunction;
</del><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> template <>
</span><span class="lines">@@ -336,12 +335,6 @@
</span><span class="cx"> return &m_arena->makeIdentifierLCharFromUChar(m_vm, characters, length);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-#if ASSERT_DISABLED
-ALWAYS_INLINE bool isSafeIdentifier(VM&, const Identifier*) { return true; }
-#else
-bool isSafeIdentifier(VM&, const Identifier*);
-#endif
-
</del><span class="cx"> template <typename T>
</span><span class="cx"> ALWAYS_INLINE JSTokenType Lexer<T>::lexExpectIdentifier(JSToken* tokenRecord, unsigned lexerFlags, bool strictMode)
</span><span class="cx"> {
</span><span class="lines">@@ -377,15 +370,10 @@
</span><span class="cx"> ASSERT(currentOffset() >= currentLineStartOffset());
</span><span class="cx">
</span><span class="cx"> // Create the identifier if needed
</span><del>- if (lexerFlags & LexexFlagsDontBuildKeywords
-#if !ASSERT_DISABLED
- && !m_parsingBuiltinFunction
-#endif
- )
</del><ins>+ if (lexerFlags & LexexFlagsDontBuildKeywords)
</ins><span class="cx"> tokenData->ident = 0;
</span><span class="cx"> else
</span><span class="cx"> tokenData->ident = makeLCharIdentifier(start, ptr - start);
</span><del>-
</del><span class="cx"> tokenLocation->line = m_lineNumber;
</span><span class="cx"> tokenLocation->lineStartOffset = currentLineStartOffset();
</span><span class="cx"> tokenLocation->startOffset = offsetFromSourcePtr(start);
</span><span class="lines">@@ -393,13 +381,6 @@
</span><span class="cx"> ASSERT(tokenLocation->startOffset >= tokenLocation->lineStartOffset);
</span><span class="cx"> tokenRecord->m_startPosition = startPosition;
</span><span class="cx"> tokenRecord->m_endPosition = currentPosition();
</span><del>-#if !ASSERT_DISABLED
- if (m_parsingBuiltinFunction) {
- if (!isSafeIdentifier(*m_vm, tokenData->ident))
- return ERRORTOK;
- }
-#endif
-
</del><span class="cx"> m_lastToken = IDENT;
</span><span class="cx"> return IDENT;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreparserNodescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/parser/Nodes.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/parser/Nodes.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/parser/Nodes.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -132,12 +132,6 @@
</span><span class="cx"> return node.release();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-
-void ProgramNode::setClosedVariables(const Vector<RefPtr<StringImpl>>&& closedVariables)
-{
- m_closedVariables = std::move(closedVariables);
-}
-
</del><span class="cx"> // ------------------------------ EvalNode -----------------------------
</span><span class="cx">
</span><span class="cx"> inline EvalNode::EvalNode(VM* vm, const JSTokenLocation& startLocation, const JSTokenLocation& endLocation, unsigned endColumn, SourceElements* children, VarStack* varStack, FunctionStack* funcStack, IdentifierSet& capturedVariables, const SourceCode& source, CodeFeatures features, int numConstants)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreparserNodesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/parser/Nodes.h (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/parser/Nodes.h        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/parser/Nodes.h        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -1431,7 +1431,6 @@
</span><span class="cx"> bool needsActivation() const { return (hasCapturedVariables()) || (m_features & (EvalFeature | WithFeature | CatchFeature)); }
</span><span class="cx"> bool hasCapturedVariables() const { return !!m_capturedVariables.size(); }
</span><span class="cx"> size_t capturedVariableCount() const { return m_capturedVariables.size(); }
</span><del>- const IdentifierSet& capturedVariables() const { return m_capturedVariables; }
</del><span class="cx"> bool captures(const Identifier& ident) { return m_capturedVariables.contains(ident.impl()); }
</span><span class="cx">
</span><span class="cx"> VarStack& varStack() { return m_varStack; }
</span><span class="lines">@@ -1447,8 +1446,6 @@
</span><span class="cx"> StatementNode* singleStatement() const;
</span><span class="cx">
</span><span class="cx"> void emitStatementsBytecode(BytecodeGenerator&, RegisterID* destination);
</span><del>-
- void setClosedVariables(const Vector<RefPtr<StringImpl>>&&) { }
</del><span class="cx">
</span><span class="cx"> protected:
</span><span class="cx"> void setSource(const SourceCode& source) { m_source = source; }
</span><span class="lines">@@ -1478,13 +1475,11 @@
</span><span class="cx">
</span><span class="cx"> static const bool scopeIsFunction = false;
</span><span class="cx">
</span><del>- void setClosedVariables(const Vector<RefPtr<StringImpl>>&&);
- const Vector<RefPtr<StringImpl>>& closedVariables() const { return m_closedVariables; }
</del><span class="cx"> private:
</span><span class="cx"> ProgramNode(VM*, const JSTokenLocation& start, const JSTokenLocation& end, unsigned startColumn, unsigned endColumn, SourceElements*, VarStack*, FunctionStack*, IdentifierSet&, const SourceCode&, CodeFeatures, int numConstants);
</span><span class="cx">
</span><span class="cx"> virtual void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override;
</span><del>- Vector<RefPtr<StringImpl>> m_closedVariables;
</del><ins>+
</ins><span class="cx"> unsigned m_startColumn;
</span><span class="cx"> unsigned m_endColumn;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreparserParsercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/parser/Parser.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/parser/Parser.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/parser/Parser.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -204,9 +204,8 @@
</span><span class="cx"> , m_lastIdentifier(0)
</span><span class="cx"> , m_lastFunctionName(nullptr)
</span><span class="cx"> , m_sourceElements(0)
</span><del>- , m_parsingBuiltin(strictness == JSParseBuiltin)
</del><span class="cx"> {
</span><del>- m_lexer = adoptPtr(new LexerType(vm, strictness));
</del><ins>+ m_lexer = adoptPtr(new LexerType(vm));
</ins><span class="cx"> m_arena = m_vm->parserArena.get();
</span><span class="cx"> m_lexer->setCode(source, m_arena);
</span><span class="cx"> m_token.m_location.line = source.firstLine();
</span><span class="lines">@@ -257,7 +256,6 @@
</span><span class="cx"> IdentifierSet capturedVariables;
</span><span class="cx"> bool modifiedParameter = false;
</span><span class="cx"> scope->getCapturedVariables(capturedVariables, modifiedParameter);
</span><del>-
</del><span class="cx"> CodeFeatures features = context.features();
</span><span class="cx"> if (scope->strictMode())
</span><span class="cx"> features |= StrictModeFeature;
</span><span class="lines">@@ -265,36 +263,21 @@
</span><span class="cx"> features |= ShadowsArgumentsFeature;
</span><span class="cx"> if (modifiedParameter)
</span><span class="cx"> features |= ModifiedParameterFeature;
</span><del>-
- Vector<RefPtr<StringImpl>> closedVariables;
- if (m_parsingBuiltin) {
- RELEASE_ASSERT(!capturedVariables.size());
- IdentifierSet usedVariables;
- scope->getUsedVariables(usedVariables);
- for (const auto& variable : usedVariables) {
- if (scope->hasDeclaredVariable(Identifier(m_vm, variable.get())))
- continue;
-
- if (scope->hasDeclaredParameter(Identifier(m_vm, variable.get())))
- continue;
- closedVariables.append(variable);
- }
- }
</del><ins>+
</ins><span class="cx"> didFinishParsing(sourceElements, context.varDeclarations(), context.funcDeclarations(), features,
</span><del>- context.numConstants(), capturedVariables, std::move(closedVariables));
</del><ins>+ context.numConstants(), capturedVariables);
</ins><span class="cx">
</span><span class="cx"> return parseError;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> template <typename LexerType>
</span><span class="cx"> void Parser<LexerType>::didFinishParsing(SourceElements* sourceElements, ParserArenaData<DeclarationStacks::VarStack>* varStack,
</span><del>- ParserArenaData<DeclarationStacks::FunctionStack>* funcStack, CodeFeatures features, int numConstants, IdentifierSet& capturedVars, const Vector<RefPtr<StringImpl>>&& closedVariables)
</del><ins>+ ParserArenaData<DeclarationStacks::FunctionStack>* funcStack, CodeFeatures features, int numConstants, IdentifierSet& capturedVars)
</ins><span class="cx"> {
</span><span class="cx"> m_sourceElements = sourceElements;
</span><span class="cx"> m_varDeclarations = varStack;
</span><span class="cx"> m_funcDeclarations = funcStack;
</span><span class="cx"> m_capturedVariables.swap(capturedVars);
</span><del>- m_closedVariables = closedVariables;
</del><span class="cx"> m_features = features;
</span><span class="cx"> m_numConstants = numConstants;
</span><span class="cx"> }
</span><span class="lines">@@ -2363,10 +2346,6 @@
</span><span class="cx"> case RESERVED:
</span><span class="cx"> out.print("Unexpected use of reserved word '", getToken(), "'");
</span><span class="cx"> return;
</span><del>-
- case INVALID_PRIVATE_NAME_ERRORTOK:
- out.print("Invalid private name '", getToken(), "'");
- return;
</del><span class="cx">
</span><span class="cx"> case IDENT:
</span><span class="cx"> out.print("Unexpected identifier '", getToken(), "'");
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreparserParserh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/parser/Parser.h (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/parser/Parser.h        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/parser/Parser.h        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -23,7 +23,6 @@
</span><span class="cx"> #ifndef Parser_h
</span><span class="cx"> #define Parser_h
</span><span class="cx">
</span><del>-#include "CommonIdentifiers.h"
</del><span class="cx"> #include "Debugger.h"
</span><span class="cx"> #include "ExceptionHelpers.h"
</span><span class="cx"> #include "Executable.h"
</span><span class="lines">@@ -260,10 +259,6 @@
</span><span class="cx"> return isValidStrictMode ? BindingSucceeded : StrictBindingFailed;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- void getUsedVariables(IdentifierSet& usedVariables)
- {
- usedVariables.swap(m_usedVariables);
- }
</del><span class="cx">
</span><span class="cx"> void useVariable(const Identifier* ident, bool isEval)
</span><span class="cx"> {
</span><span class="lines">@@ -419,7 +414,6 @@
</span><span class="cx"> PassRefPtr<ParsedNode> parse(ParserError&);
</span><span class="cx">
</span><span class="cx"> JSTextPosition positionBeforeLastNewline() const { return m_lexer->positionBeforeLastNewline(); }
</span><del>- const Vector<RefPtr<StringImpl>>&& closedVariables() { return std::move(m_closedVariables); }
</del><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> struct AllowInOverride {
</span><span class="lines">@@ -546,7 +540,7 @@
</span><span class="cx"> String parseInner();
</span><span class="cx">
</span><span class="cx"> void didFinishParsing(SourceElements*, ParserArenaData<DeclarationStacks::VarStack>*,
</span><del>- ParserArenaData<DeclarationStacks::FunctionStack>*, CodeFeatures, int, IdentifierSet&, const Vector<RefPtr<StringImpl>>&&);
</del><ins>+ ParserArenaData<DeclarationStacks::FunctionStack>*, CodeFeatures, int, IdentifierSet&);
</ins><span class="cx">
</span><span class="cx"> // Used to determine type of error to report.
</span><span class="cx"> bool isFunctionBodyNode(ScopeNode*) { return false; }
</span><span class="lines">@@ -846,11 +840,9 @@
</span><span class="cx"> const Identifier* m_lastFunctionName;
</span><span class="cx"> RefPtr<SourceProviderCache> m_functionCache;
</span><span class="cx"> SourceElements* m_sourceElements;
</span><del>- bool m_parsingBuiltin;
</del><span class="cx"> ParserArenaData<DeclarationStacks::VarStack>* m_varDeclarations;
</span><span class="cx"> ParserArenaData<DeclarationStacks::FunctionStack>* m_funcDeclarations;
</span><span class="cx"> IdentifierSet m_capturedVariables;
</span><del>- Vector<RefPtr<StringImpl>> m_closedVariables;
</del><span class="cx"> CodeFeatures m_features;
</span><span class="cx"> int m_numConstants;
</span><span class="cx">
</span><span class="lines">@@ -965,10 +957,6 @@
</span><span class="cx"> RefPtr<ParsedNode> result = parser.parse<ParsedNode>(error);
</span><span class="cx"> if (positionBeforeLastNewline)
</span><span class="cx"> *positionBeforeLastNewline = parser.positionBeforeLastNewline();
</span><del>- if (strictness == JSParseBuiltin) {
- RELEASE_ASSERT(result);
- result->setClosedVariables(std::move(parser.closedVariables()));
- }
</del><span class="cx"> return result.release();
</span><span class="cx"> }
</span><span class="cx"> Parser<Lexer<UChar>> parser(vm, source, parameters, name, strictness, parserMode);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreparserParserModesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/parser/ParserModes.h (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/parser/ParserModes.h        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/parser/ParserModes.h        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -29,7 +29,7 @@
</span><span class="cx">
</span><span class="cx"> namespace JSC {
</span><span class="cx">
</span><del>-enum JSParserStrictness { JSParseNormal, JSParseBuiltin, JSParseStrict };
</del><ins>+enum JSParserStrictness { JSParseNormal, JSParseStrict };
</ins><span class="cx"> enum JSParserMode { JSParseProgramCode, JSParseFunctionCode };
</span><span class="cx">
</span><span class="cx"> enum ProfilerMode { ProfilerOff, ProfilerOn };
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreparserParserTokensh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/parser/ParserTokens.h (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/parser/ParserTokens.h        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/parser/ParserTokens.h        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -149,7 +149,6 @@
</span><span class="cx"> INVALID_NUMERIC_LITERAL_ERRORTOK = 7 | ErrorTokenFlag,
</span><span class="cx"> UNTERMINATED_STRING_LITERAL_ERRORTOK = 8 | ErrorTokenFlag | UnterminatedErrorTokenFlag,
</span><span class="cx"> INVALID_STRING_LITERAL_ERRORTOK = 9 | ErrorTokenFlag,
</span><del>- INVALID_PRIVATE_NAME_ERRORTOK = 10 | ErrorTokenFlag
</del><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> struct JSTextPosition {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeArgumentsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/Arguments.h (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/Arguments.h        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/Arguments.h        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -25,7 +25,6 @@
</span><span class="cx"> #define Arguments_h
</span><span class="cx">
</span><span class="cx"> #include "CodeOrigin.h"
</span><del>-#include "CommonIdentifiers.h"
</del><span class="cx"> #include "JSActivation.h"
</span><span class="cx"> #include "JSDestructibleObject.h"
</span><span class="cx"> #include "JSFunction.h"
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeArgumentsIteratorPrototypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/ArgumentsIteratorPrototype.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/ArgumentsIteratorPrototype.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/ArgumentsIteratorPrototype.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -26,9 +26,7 @@
</span><span class="cx"> #include "config.h"
</span><span class="cx"> #include "ArgumentsIteratorPrototype.h"
</span><span class="cx">
</span><del>-#include "CommonIdentifiers.h"
</del><span class="cx"> #include "JSArgumentsIterator.h"
</span><del>-#include "JSCJSValueInlines.h"
</del><span class="cx">
</span><span class="cx"> namespace JSC {
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeArrayPrototypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/ArrayPrototype.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/ArrayPrototype.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/ArrayPrototype.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -33,7 +33,6 @@
</span><span class="cx"> #include "JIT.h"
</span><span class="cx"> #include "JSArrayIterator.h"
</span><span class="cx"> #include "JSStringBuilder.h"
</span><del>-#include "JSStringInlines.h"
</del><span class="cx"> #include "JSStringJoiner.h"
</span><span class="cx"> #include "Lookup.h"
</span><span class="cx"> #include "ObjectPrototype.h"
</span><span class="lines">@@ -57,6 +56,7 @@
</span><span class="cx"> static EncodedJSValue JSC_HOST_CALL arrayProtoFuncSort(ExecState*);
</span><span class="cx"> static EncodedJSValue JSC_HOST_CALL arrayProtoFuncSplice(ExecState*);
</span><span class="cx"> static EncodedJSValue JSC_HOST_CALL arrayProtoFuncUnShift(ExecState*);
</span><ins>+static EncodedJSValue JSC_HOST_CALL arrayProtoFuncEvery(ExecState*);
</ins><span class="cx"> static EncodedJSValue JSC_HOST_CALL arrayProtoFuncForEach(ExecState*);
</span><span class="cx"> static EncodedJSValue JSC_HOST_CALL arrayProtoFuncSome(ExecState*);
</span><span class="cx"> static EncodedJSValue JSC_HOST_CALL arrayProtoFuncIndexOf(ExecState*);
</span><span class="lines">@@ -954,6 +954,69 @@
</span><span class="cx"> return JSValue::encode(resultArray);
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+// Documentation for these three is available at:
+// http://developer-test.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Objects:Array:every
+// http://developer-test.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Objects:Array:forEach
+// http://developer-test.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Objects:Array:some
+
+EncodedJSValue JSC_HOST_CALL arrayProtoFuncEvery(ExecState* exec)
+{
+ JSObject* thisObj = exec->hostThisValue().toThis(exec, StrictMode).toObject(exec);
+ unsigned length = thisObj->get(exec, exec->propertyNames().length).toUInt32(exec);
+ if (exec->hadException())
+ return JSValue::encode(jsUndefined());
+
+ JSValue function = exec->argument(0);
+ CallData callData;
+ CallType callType = getCallData(function, callData);
+ if (callType == CallTypeNone)
+ return throwVMTypeError(exec);
+
+ JSValue applyThis = exec->argument(1);
+
+ JSValue result = jsBoolean(true);
+
+ unsigned k = 0;
+ if (callType == CallTypeJS && isJSArray(thisObj)) {
+ JSFunction* f = jsCast<JSFunction*>(function);
+ JSArray* array = asArray(thisObj);
+ CachedCall cachedCall(exec, f, 3);
+ for (; k < length && !exec->hadException(); ++k) {
+ if (UNLIKELY(!array->canGetIndexQuickly(k)))
+ break;
+
+ cachedCall.setThis(applyThis);
+ cachedCall.setArgument(0, array->getIndexQuickly(k));
+ cachedCall.setArgument(1, jsNumber(k));
+ cachedCall.setArgument(2, thisObj);
+ JSValue result = cachedCall.call();
+ if (!result.toBoolean(exec))
+ return JSValue::encode(jsBoolean(false));
+ }
+ }
+ for (; k < length && !exec->hadException(); ++k) {
+ PropertySlot slot(thisObj);
+ if (!thisObj->getPropertySlot(exec, k, slot))
+ continue;
+
+ MarkedArgumentBuffer eachArguments;
+ eachArguments.append(slot.getValue(exec, k));
+ eachArguments.append(jsNumber(k));
+ eachArguments.append(thisObj);
+
+ if (exec->hadException())
+ return JSValue::encode(jsUndefined());
+
+ bool predicateResult = call(exec, function, callType, callData, applyThis, eachArguments).toBoolean(exec);
+ if (!predicateResult) {
+ result = jsBoolean(false);
+ break;
+ }
+ }
+
+ return JSValue::encode(result);
+}
+
</ins><span class="cx"> EncodedJSValue JSC_HOST_CALL arrayProtoFuncForEach(ExecState* exec)
</span><span class="cx"> {
</span><span class="cx"> JSObject* thisObj = exec->hostThisValue().toThis(exec, StrictMode).toObject(exec);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeCodeCachecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/CodeCache.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/CodeCache.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/CodeCache.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -144,26 +144,24 @@
</span><span class="cx"> JSTextPosition positionBeforeLastNewline;
</span><span class="cx"> RefPtr<ProgramNode> program = parse<ProgramNode>(&vm, source, 0, Identifier(), JSParseNormal, JSParseProgramCode, error, &positionBeforeLastNewline);
</span><span class="cx"> if (!program) {
</span><del>- RELEASE_ASSERT(error.m_type != ParserError::ErrorNone);
</del><ins>+ ASSERT(error.m_type != ParserError::ErrorNone);
</ins><span class="cx"> m_sourceCode.remove(addResult.iterator);
</span><span class="cx"> return 0;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // This function assumes an input string that would result in a single anonymous function expression.
</span><span class="cx"> StatementNode* exprStatement = program->singleStatement();
</span><del>- RELEASE_ASSERT(exprStatement);
- RELEASE_ASSERT(exprStatement->isExprStatement());
</del><ins>+ ASSERT(exprStatement);
+ ASSERT(exprStatement->isExprStatement());
</ins><span class="cx"> ExpressionNode* funcExpr = static_cast<ExprStatementNode*>(exprStatement)->expr();
</span><del>- RELEASE_ASSERT(funcExpr);
</del><ins>+ ASSERT(funcExpr);
</ins><span class="cx"> RELEASE_ASSERT(funcExpr->isFuncExprNode());
</span><span class="cx"> FunctionBodyNode* body = static_cast<FuncExprNode*>(funcExpr)->body();
</span><del>- RELEASE_ASSERT(!program->hasCapturedVariables());
-
</del><span class="cx"> body->setEndPosition(positionBeforeLastNewline);
</span><del>- RELEASE_ASSERT(body);
- RELEASE_ASSERT(body->ident().isNull());
</del><ins>+ ASSERT(body);
+ ASSERT(body->ident().isNull());
</ins><span class="cx">
</span><del>- UnlinkedFunctionExecutable* functionExecutable = UnlinkedFunctionExecutable::create(&vm, source, body, true, UnlinkedNormalFunction);
</del><ins>+ UnlinkedFunctionExecutable* functionExecutable = UnlinkedFunctionExecutable::create(&vm, source, body, true);
</ins><span class="cx"> functionExecutable->m_nameValue.set(vm, functionExecutable, jsString(&vm, name.string()));
</span><span class="cx">
</span><span class="cx"> addResult.iterator->value = SourceCodeValue(vm, functionExecutable, m_sourceCode.age());
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeCommonIdentifierscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/CommonIdentifiers.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/CommonIdentifiers.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/CommonIdentifiers.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -27,11 +27,8 @@
</span><span class="cx">
</span><span class="cx"> #define INITIALIZE_PROPERTY_NAME(name) , name(vm, #name)
</span><span class="cx"> #define INITIALIZE_KEYWORD(name) , name##Keyword(vm, #name)
</span><del>-#define INITIALIZE_PRIVATE_NAME(name) \
- , name##PrivateName(Identifier::from(PrivateName())) \
- , m_##name##PublicStringPair(name, name##PrivateName) \
</del><ins>+#define INITIALIZE_PRIVATE_NAME(name) , name##PrivateName(Identifier::from(PrivateName()))
</ins><span class="cx">
</span><del>-
</del><span class="cx"> CommonIdentifiers::CommonIdentifiers(VM* vm)
</span><span class="cx"> : nullIdentifier()
</span><span class="cx"> , emptyIdentifier(Identifier::EmptyIdentifier)
</span><span class="lines">@@ -41,26 +38,8 @@
</span><span class="cx"> , hasNextIdentifier(vm, "hasNext")
</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_FOREACH_BUILTIN_FUNCTION_NAME(INITIALIZE_PROPERTY_NAME)
</del><span class="cx"> JSC_COMMON_PRIVATE_IDENTIFIERS_EACH_PROPERTY_NAME(INITIALIZE_PRIVATE_NAME)
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><del>-const Identifier* CommonIdentifiers::getPrivateName(const Identifier& ident) const
-{
-#define RETURN_IF_PRIVATE_NAME_MATCHES(name) if (m_##name##PublicStringPair.first == ident) return &m_##name##PublicStringPair.second;
- JSC_COMMON_PRIVATE_IDENTIFIERS_EACH_PROPERTY_NAME(RETURN_IF_PRIVATE_NAME_MATCHES)
-#undef RETURN_IF_PRIVATE_NAME_MATCHES
- return 0;
-}
-
-Identifier CommonIdentifiers::getPublicName(const Identifier& ident) const
-{
-#define RETURN_IF_PRIVATE_NAME_MATCHES(name) if (m_##name##PublicStringPair.second == ident) return m_##name##PublicStringPair.first;
- JSC_COMMON_PRIVATE_IDENTIFIERS_EACH_PROPERTY_NAME(RETURN_IF_PRIVATE_NAME_MATCHES)
-#undef RETURN_IF_PRIVATE_NAME_MATCHES
- RELEASE_ASSERT_NOT_REACHED();
- return emptyIdentifier;
-}
-
</del><span class="cx"> } // namespace JSC
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeCommonIdentifiersh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/CommonIdentifiers.h (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/CommonIdentifiers.h        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/CommonIdentifiers.h        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -22,7 +22,6 @@
</span><span class="cx"> #define CommonIdentifiers_h
</span><span class="cx">
</span><span class="cx"> #include "Identifier.h"
</span><del>-#include "JSCBuiltins.h"
</del><span class="cx"> #include <wtf/Noncopyable.h>
</span><span class="cx">
</span><span class="cx"> // MarkedArgumentBuffer of property names, passed to a macro so we can do set them up various
</span><span class="lines">@@ -134,10 +133,8 @@
</span><span class="cx"> macro(osrExits) \
</span><span class="cx"> macro(parse) \
</span><span class="cx"> macro(profiledBytecodes) \
</span><del>- macro(promise) \
</del><span class="cx"> macro(propertyIsEnumerable) \
</span><span class="cx"> macro(prototype) \
</span><del>- macro(resolve) \
</del><span class="cx"> macro(set) \
</span><span class="cx"> macro(size) \
</span><span class="cx"> macro(slice) \
</span><span class="lines">@@ -158,14 +155,7 @@
</span><span class="cx"> macro(values) \
</span><span class="cx"> macro(valueOf) \
</span><span class="cx"> macro(window) \
</span><del>- macro(writable) \
- macro(iterator) \
- macro(iteratorNext) \
- macro(reject) \
- macro(fulfillmentHandler) \
- macro(rejectionHandler) \
- macro(deferred) \
- macro(countdownHolder) \
</del><ins>+ macro(writable)
</ins><span class="cx">
</span><span class="cx"> #define JSC_COMMON_IDENTIFIERS_EACH_KEYWORD(macro) \
</span><span class="cx"> macro(break) \
</span><span class="lines">@@ -213,7 +203,7 @@
</span><span class="cx"> macro(void) \
</span><span class="cx"> macro(while) \
</span><span class="cx"> macro(with) \
</span><del>- macro(yield) \
</del><ins>+ macro(yield)
</ins><span class="cx">
</span><span class="cx"> #define JSC_COMMON_PRIVATE_IDENTIFIERS_EACH_PROPERTY_NAME(macro) \
</span><span class="cx"> macro(iterator) \
</span><span class="lines">@@ -226,12 +216,7 @@
</span><span class="cx"> macro(index) \
</span><span class="cx"> macro(values) \
</span><span class="cx"> macro(deferred) \
</span><del>- macro(countdownHolder) \
- macro(Object) \
- macro(TypeError) \
- macro(undefinedKeyword) \
- macro(call) \
- macro(apply)
</del><ins>+ macro(countdownHolder)
</ins><span class="cx">
</span><span class="cx"> namespace JSC {
</span><span class="cx">
</span><span class="lines">@@ -255,15 +240,11 @@
</span><span class="cx">
</span><span class="cx"> #define JSC_IDENTIFIER_DECLARE_PROPERTY_NAME_GLOBAL(name) const Identifier name;
</span><span class="cx"> JSC_COMMON_IDENTIFIERS_EACH_PROPERTY_NAME(JSC_IDENTIFIER_DECLARE_PROPERTY_NAME_GLOBAL)
</span><del>- JSC_FOREACH_BUILTIN_FUNCTION_NAME(JSC_IDENTIFIER_DECLARE_PROPERTY_NAME_GLOBAL)
</del><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; const std::pair<Identifier, Identifier> m_##name##PublicStringPair;
</del><ins>+#define JSC_IDENTIFIER_DECLARE_PRIVATE_PROPERTY_NAME_GLOBAL(name) const Identifier name##PrivateName;
</ins><span class="cx"> JSC_COMMON_PRIVATE_IDENTIFIERS_EACH_PROPERTY_NAME(JSC_IDENTIFIER_DECLARE_PRIVATE_PROPERTY_NAME_GLOBAL)
</span><span class="cx"> #undef JSC_IDENTIFIER_DECLARE_PRIVATE_PROPERTY_NAME_GLOBAL
</span><del>-
- const Identifier* getPrivateName(const Identifier&) const;
- Identifier getPublicName(const Identifier&) const;
</del><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> } // namespace JSC
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeCommonSlowPathscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/CommonSlowPaths.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/CommonSlowPaths.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/CommonSlowPaths.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -41,7 +41,7 @@
</span><span class="cx"> #include "JIT.h"
</span><span class="cx"> #include "JITStubs.h"
</span><span class="cx"> #include "JSActivation.h"
</span><del>-#include "JSCJSValueInlines.h"
</del><ins>+#include "JSCJSValue.h"
</ins><span class="cx"> #include "JSGlobalObjectFunctions.h"
</span><span class="cx"> #include "JSNameScope.h"
</span><span class="cx"> #include "JSPropertyNameIterator.h"
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeCommonSlowPathsExceptionscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/CommonSlowPathsExceptions.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/CommonSlowPathsExceptions.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/CommonSlowPathsExceptions.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -29,8 +29,6 @@
</span><span class="cx"> #include "CallFrame.h"
</span><span class="cx"> #include "CodeBlock.h"
</span><span class="cx"> #include "JITExceptions.h"
</span><del>-#include "JSCJSValueInlines.h"
-#include "JSFunctionInlines.h"
</del><span class="cx"> #include "LLIntCommon.h"
</span><span class="cx">
</span><span class="cx"> namespace JSC { namespace CommonSlowPaths {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeExceptionHelperscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/ExceptionHelpers.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/ExceptionHelpers.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/ExceptionHelpers.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -81,11 +81,6 @@
</span><span class="cx">
</span><span class="cx"> JSObject* createUndefinedVariableError(ExecState* exec, const Identifier& ident)
</span><span class="cx"> {
</span><del>-
- if (ident.impl()->isEmptyUnique()) {
- String message(makeString("Can't find private variable: @", exec->propertyNames().getPublicName(ident).string()));
- return createReferenceError(exec, message);
- }
</del><span class="cx"> String message(makeString("Can't find variable: ", ident.string()));
</span><span class="cx"> return createReferenceError(exec, message);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeExecutableh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/Executable.h (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/Executable.h        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/Executable.h        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -484,7 +484,7 @@
</span><span class="cx">
</span><span class="cx"> void clearCode();
</span><span class="cx">
</span><del>- ExecutableInfo executableInfo() const { return ExecutableInfo(needsActivation(), usesEval(), isStrictMode(), false, false); }
</del><ins>+ ExecutableInfo executableInfo() const { return ExecutableInfo(needsActivation(), usesEval(), isStrictMode(), false); }
</ins><span class="cx">
</span><span class="cx"> unsigned numVariables() { return m_unlinkedEvalCodeBlock->numVariables(); }
</span><span class="cx"> unsigned numberOfFunctionDecls() { return m_unlinkedEvalCodeBlock->numberOfFunctionDecls(); }
</span><span class="lines">@@ -540,7 +540,7 @@
</span><span class="cx">
</span><span class="cx"> void clearCode();
</span><span class="cx">
</span><del>- ExecutableInfo executableInfo() const { return ExecutableInfo(needsActivation(), usesEval(), isStrictMode(), false, false); }
</del><ins>+ ExecutableInfo executableInfo() const { return ExecutableInfo(needsActivation(), usesEval(), isStrictMode(), false); }
</ins><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> friend class ScriptExecutable;
</span><span class="lines">@@ -628,8 +628,7 @@
</span><span class="cx"> {
</span><span class="cx"> return baselineCodeBlockFor(kind);
</span><span class="cx"> }
</span><del>-
- bool isBuiltinFunction() const { return m_unlinkedExecutable->isBuiltinFunction(); }
</del><ins>+
</ins><span class="cx"> const Identifier& name() { return m_unlinkedExecutable->name(); }
</span><span class="cx"> const Identifier& inferredName() { return m_unlinkedExecutable->inferredName(); }
</span><span class="cx"> JSString* nameValue() const { return m_unlinkedExecutable->nameValue(); }
</span><span class="lines">@@ -676,6 +675,14 @@
</span><span class="cx"> bool m_bodyIncludesBraces;
</span><span class="cx"> };
</span><span class="cx">
</span><ins>+inline bool isHostFunction(JSValue value, NativeFunction nativeFunction)
+{
+ JSFunction* function = jsCast<JSFunction*>(getJSFunction(value));
+ if (!function || !function->isHostFunction())
+ return false;
+ return function->nativeFunction() == nativeFunction;
+}
+
</ins><span class="cx"> inline void ExecutableBase::clearCodeVirtual(ExecutableBase* executable)
</span><span class="cx"> {
</span><span class="cx"> switch (executable->structure()->typeInfo().type()) {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeFunctionPrototypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/FunctionPrototype.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/FunctionPrototype.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/FunctionPrototype.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -22,13 +22,12 @@
</span><span class="cx"> #include "FunctionPrototype.h"
</span><span class="cx">
</span><span class="cx"> #include "Arguments.h"
</span><del>-#include "Interpreter.h"
</del><span class="cx"> #include "JSArray.h"
</span><span class="cx"> #include "JSBoundFunction.h"
</span><span class="cx"> #include "JSFunction.h"
</span><span class="cx"> #include "JSString.h"
</span><span class="cx"> #include "JSStringBuilder.h"
</span><del>-#include "JSStringInlines.h"
</del><ins>+#include "Interpreter.h"
</ins><span class="cx"> #include "Lexer.h"
</span><span class="cx"> #include "Operations.h"
</span><span class="cx">
</span><span class="lines">@@ -109,7 +108,7 @@
</span><span class="cx"> JSValue thisValue = exec->hostThisValue();
</span><span class="cx"> if (thisValue.inherits(JSFunction::info())) {
</span><span class="cx"> JSFunction* function = jsCast<JSFunction*>(thisValue);
</span><del>- if (function->isHostOrBuiltinFunction())
</del><ins>+ if (function->isHostFunction())
</ins><span class="cx"> return JSValue::encode(jsMakeNontrivialString(exec, "function ", function->name(exec), "() {\n [native code]\n}"));
</span><span class="cx"> FunctionExecutable* executable = function->jsExecutable();
</span><span class="cx"> String sourceString = executable->source().toString();
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSActivationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSActivation.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSActivation.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/JSActivation.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -58,7 +58,7 @@
</span><span class="cx">
</span><span class="cx"> inline bool JSActivation::symbolTableGet(PropertyName propertyName, PropertySlot& slot)
</span><span class="cx"> {
</span><del>- SymbolTableEntry entry = symbolTable()->inlineGet(propertyName.uid());
</del><ins>+ SymbolTableEntry entry = symbolTable()->inlineGet(propertyName.publicName());
</ins><span class="cx"> if (entry.isNull())
</span><span class="cx"> return false;
</span><span class="cx">
</span><span class="lines">@@ -72,7 +72,7 @@
</span><span class="cx">
</span><span class="cx"> inline bool JSActivation::symbolTableGet(PropertyName propertyName, PropertyDescriptor& descriptor)
</span><span class="cx"> {
</span><del>- SymbolTableEntry entry = symbolTable()->inlineGet(propertyName.uid());
</del><ins>+ SymbolTableEntry entry = symbolTable()->inlineGet(propertyName.publicName());
</ins><span class="cx"> if (entry.isNull())
</span><span class="cx"> return false;
</span><span class="cx">
</span><span class="lines">@@ -89,7 +89,7 @@
</span><span class="cx"> VM& vm = exec->vm();
</span><span class="cx"> ASSERT(!Heap::heap(value) || Heap::heap(value) == Heap::heap(this));
</span><span class="cx">
</span><del>- SymbolTableEntry entry = symbolTable()->inlineGet(propertyName.uid());
</del><ins>+ SymbolTableEntry entry = symbolTable()->inlineGet(propertyName.publicName());
</ins><span class="cx"> if (entry.isNull())
</span><span class="cx"> return false;
</span><span class="cx"> if (entry.isReadOnly()) {
</span><span class="lines">@@ -136,7 +136,7 @@
</span><span class="cx"> WriteBarrierBase<Unknown>* reg;
</span><span class="cx"> {
</span><span class="cx"> ConcurrentJITLocker locker(symbolTable()->m_lock);
</span><del>- SymbolTable::Map::iterator iter = symbolTable()->find(locker, propertyName.uid());
</del><ins>+ SymbolTable::Map::iterator iter = symbolTable()->find(locker, propertyName.publicName());
</ins><span class="cx"> if (iter == symbolTable()->end(locker))
</span><span class="cx"> return false;
</span><span class="cx"> SymbolTableEntry& entry = iter->value;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSArgumentsIteratorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSArgumentsIterator.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSArgumentsIterator.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/JSArgumentsIterator.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -27,7 +27,6 @@
</span><span class="cx"> #include "JSArgumentsIterator.h"
</span><span class="cx">
</span><span class="cx"> #include "Arguments.h"
</span><del>-#include "JSCJSValueInlines.h"
</del><span class="cx">
</span><span class="cx"> namespace JSC {
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSArraycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSArray.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSArray.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/JSArray.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -32,7 +32,6 @@
</span><span class="cx"> #include "Executable.h"
</span><span class="cx"> #include "GetterSetter.h"
</span><span class="cx"> #include "IndexingHeaderInlines.h"
</span><del>-#include "JSStringInlines.h"
</del><span class="cx"> #include "PropertyNameArray.h"
</span><span class="cx"> #include "Reject.h"
</span><span class="cx"> #include <wtf/AVLTree.h>
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSArrayIteratorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSArrayIterator.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSArrayIterator.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/JSArrayIterator.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -28,7 +28,6 @@
</span><span class="cx">
</span><span class="cx"> #include "JSCJSValueInlines.h"
</span><span class="cx"> #include "JSCellInlines.h"
</span><del>-#include "JSStringInlines.h"
</del><span class="cx"> #include "SlotVisitorInlines.h"
</span><span class="cx">
</span><span class="cx"> namespace JSC {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSCJSValuecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSCJSValue.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSCJSValue.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/JSCJSValue.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -32,9 +32,7 @@
</span><span class="cx"> #include "JSFunction.h"
</span><span class="cx"> #include "JSGlobalObject.h"
</span><span class="cx"> #include "JSNotAnObject.h"
</span><del>-#include "JSStringInlines.h"
</del><span class="cx"> #include "NumberObject.h"
</span><del>-#include "Operations.h"
</del><span class="cx"> #include <wtf/MathExtras.h>
</span><span class="cx"> #include <wtf/StringExtras.h>
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSCellInlinesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSCellInlines.h (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSCellInlines.h        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/JSCellInlines.h        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -27,10 +27,8 @@
</span><span class="cx"> #define JSCellInlines_h
</span><span class="cx">
</span><span class="cx"> #include "CallFrame.h"
</span><del>-#include "CommonIdentifiers.h"
</del><span class="cx"> #include "DeferGC.h"
</span><span class="cx"> #include "Handle.h"
</span><del>-#include "JSCJSValueInlines.h"
</del><span class="cx"> #include "JSCell.h"
</span><span class="cx"> #include "JSObject.h"
</span><span class="cx"> #include "JSString.h"
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSFunctioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSFunction.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSFunction.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/JSFunction.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -34,8 +34,7 @@
</span><span class="cx"> #include "FunctionPrototype.h"
</span><span class="cx"> #include "GetterSetter.h"
</span><span class="cx"> #include "JSArray.h"
</span><del>-#include "JSBoundFunction.h"
-#include "JSFunctionInlines.h"
</del><ins>+#include "JSBoundFunction.h"
</ins><span class="cx"> #include "JSGlobalObject.h"
</span><span class="cx"> #include "JSNotAnObject.h"
</span><span class="cx"> #include "Interpreter.h"
</span><span class="lines">@@ -110,14 +109,6 @@
</span><span class="cx"> putDirect(vm, vm.propertyNames->length, jsNumber(length), DontDelete | ReadOnly | DontEnum);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-JSFunction* JSFunction::createBuiltinFunction(VM& vm, FunctionExecutable* executable, JSGlobalObject* globalObject)
-{
- JSFunction* function = create(vm, executable, globalObject);
- function->putDirect(vm, vm.propertyNames->name, jsString(&vm, executable->name().string()), DontDelete | ReadOnly | DontEnum);
- function->putDirect(vm, vm.propertyNames->length, jsNumber(executable->parameterCount()), DontDelete | ReadOnly | DontEnum);
- return function;
-}
-
</del><span class="cx"> ObjectAllocationProfile* JSFunction::createAllocationProfile(ExecState* exec, size_t inlineCapacity)
</span><span class="cx"> {
</span><span class="cx"> VM& vm = exec->vm();
</span><span class="lines">@@ -151,7 +142,7 @@
</span><span class="cx"> return explicitName;
</span><span class="cx">
</span><span class="cx"> const String actualName = name(exec);
</span><del>- if (!actualName.isEmpty() || isHostOrBuiltinFunction())
</del><ins>+ if (!actualName.isEmpty() || isHostFunction())
</ins><span class="cx"> return actualName;
</span><span class="cx">
</span><span class="cx"> return jsExecutable()->inferredName().string();
</span><span class="lines">@@ -159,21 +150,11 @@
</span><span class="cx">
</span><span class="cx"> const SourceCode* JSFunction::sourceCode() const
</span><span class="cx"> {
</span><del>- if (isHostOrBuiltinFunction())
</del><ins>+ if (isHostFunction())
</ins><span class="cx"> return 0;
</span><span class="cx"> return &jsExecutable()->source();
</span><span class="cx"> }
</span><del>-
-bool JSFunction::isHostOrBuiltinFunction() const
-{
- return isHostFunction() || isBuiltinFunction();
-}
</del><span class="cx">
</span><del>-bool JSFunction::isBuiltinFunction() const
-{
- return !isHostFunction() && jsExecutable()->isBuiltinFunction();
-}
-
</del><span class="cx"> void JSFunction::visitChildren(JSCell* cell, SlotVisitor& visitor)
</span><span class="cx"> {
</span><span class="cx"> JSFunction* thisObject = jsCast<JSFunction*>(cell);
</span><span class="lines">@@ -296,7 +277,7 @@
</span><span class="cx"> if (!caller.isObject() || !asObject(caller)->inherits(JSFunction::info()))
</span><span class="cx"> return JSValue::encode(caller);
</span><span class="cx"> JSFunction* function = jsCast<JSFunction*>(caller);
</span><del>- if (function->isHostOrBuiltinFunction() || !function->jsExecutable()->isStrictMode())
</del><ins>+ if (function->isHostFunction() || !function->jsExecutable()->isStrictMode())
</ins><span class="cx"> return JSValue::encode(caller);
</span><span class="cx"> return JSValue::encode(throwTypeError(exec, ASCIILiteral("Function.caller used to retrieve strict caller")));
</span><span class="cx"> }
</span><span class="lines">@@ -318,7 +299,7 @@
</span><span class="cx"> bool JSFunction::getOwnPropertySlot(JSObject* object, ExecState* exec, PropertyName propertyName, PropertySlot& slot)
</span><span class="cx"> {
</span><span class="cx"> JSFunction* thisObject = jsCast<JSFunction*>(object);
</span><del>- if (thisObject->isHostOrBuiltinFunction())
</del><ins>+ if (thisObject->isHostFunction())
</ins><span class="cx"> return Base::getOwnPropertySlot(thisObject, exec, propertyName, slot);
</span><span class="cx">
</span><span class="cx"> if (propertyName == exec->propertyNames().prototype) {
</span><span class="lines">@@ -380,7 +361,7 @@
</span><span class="cx"> void JSFunction::getOwnNonIndexPropertyNames(JSObject* object, ExecState* exec, PropertyNameArray& propertyNames, EnumerationMode mode)
</span><span class="cx"> {
</span><span class="cx"> JSFunction* thisObject = jsCast<JSFunction*>(object);
</span><del>- if (!thisObject->isHostOrBuiltinFunction() && (mode == IncludeDontEnumProperties)) {
</del><ins>+ if (!thisObject->isHostFunction() && (mode == IncludeDontEnumProperties)) {
</ins><span class="cx"> // Make sure prototype has been reified.
</span><span class="cx"> PropertySlot slot(thisObject);
</span><span class="cx"> thisObject->methodTable()->getOwnPropertySlot(thisObject, exec, exec->propertyNames().prototype, slot);
</span><span class="lines">@@ -396,7 +377,7 @@
</span><span class="cx"> void JSFunction::put(JSCell* cell, ExecState* exec, PropertyName propertyName, JSValue value, PutPropertySlot& slot)
</span><span class="cx"> {
</span><span class="cx"> JSFunction* thisObject = jsCast<JSFunction*>(cell);
</span><del>- if (thisObject->isHostOrBuiltinFunction()) {
</del><ins>+ if (thisObject->isHostFunction()) {
</ins><span class="cx"> Base::put(thisObject, exec, propertyName, value, slot);
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="lines">@@ -444,7 +425,7 @@
</span><span class="cx"> bool JSFunction::defineOwnProperty(JSObject* object, ExecState* exec, PropertyName propertyName, const PropertyDescriptor& descriptor, bool throwException)
</span><span class="cx"> {
</span><span class="cx"> JSFunction* thisObject = jsCast<JSFunction*>(object);
</span><del>- if (thisObject->isHostOrBuiltinFunction())
</del><ins>+ if (thisObject->isHostFunction())
</ins><span class="cx"> return Base::defineOwnProperty(object, exec, propertyName, descriptor, throwException);
</span><span class="cx">
</span><span class="cx"> if (propertyName == exec->propertyNames().prototype) {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSFunctionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSFunction.h (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSFunction.h        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/JSFunction.h        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -68,8 +68,6 @@
</span><span class="cx"> return function;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- static JSFunction* createBuiltinFunction(VM&, FunctionExecutable*, JSGlobalObject*);
-
</del><span class="cx"> static void destroy(JSCell*);
</span><span class="cx">
</span><span class="cx"> JS_EXPORT_PRIVATE String name(ExecState*);
</span><span class="lines">@@ -99,7 +97,7 @@
</span><span class="cx"> ExecutableBase* executable() const { return m_executable.get(); }
</span><span class="cx">
</span><span class="cx"> // To call either of these methods include Executable.h
</span><del>- bool isHostFunction() const;
</del><ins>+ inline bool isHostFunction() const;
</ins><span class="cx"> FunctionExecutable* jsExecutable() const;
</span><span class="cx">
</span><span class="cx"> JS_EXPORT_PRIVATE const SourceCode* sourceCode() const;
</span><span class="lines">@@ -147,10 +145,6 @@
</span><span class="cx"> return m_allocationProfileWatchpoint;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- bool isHostOrBuiltinFunction() const;
- bool isBuiltinFunction() const;
- JS_EXPORT_PRIVATE bool isHostFunctionNonInline() const;
-
</del><span class="cx"> protected:
</span><span class="cx"> const static unsigned StructureFlags = OverridesGetOwnPropertySlot | ImplementsHasInstance | OverridesVisitChildren | OverridesGetPropertyNames | JSObject::StructureFlags;
</span><span class="cx">
</span><span class="lines">@@ -175,6 +169,8 @@
</span><span class="cx"> private:
</span><span class="cx"> friend class LLIntOffsetsExtractor;
</span><span class="cx">
</span><ins>+ JS_EXPORT_PRIVATE bool isHostFunctionNonInline() const;
+
</ins><span class="cx"> static EncodedJSValue argumentsGetter(ExecState*, EncodedJSValue, EncodedJSValue, PropertyName);
</span><span class="cx"> static EncodedJSValue callerGetter(ExecState*, EncodedJSValue, EncodedJSValue, PropertyName);
</span><span class="cx"> static EncodedJSValue lengthGetter(ExecState*, EncodedJSValue, EncodedJSValue, PropertyName);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSFunctionInlinesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSFunctionInlines.h (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSFunctionInlines.h        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/JSFunctionInlines.h        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -53,24 +53,16 @@
</span><span class="cx">
</span><span class="cx"> inline NativeFunction JSFunction::nativeFunction()
</span><span class="cx"> {
</span><del>- ASSERT(isHostFunctionNonInline());
</del><ins>+ ASSERT(isHostFunction());
</ins><span class="cx"> return static_cast<NativeExecutable*>(m_executable.get())->function();
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> inline NativeFunction JSFunction::nativeConstructor()
</span><span class="cx"> {
</span><del>- ASSERT(isHostFunctionNonInline());
</del><ins>+ ASSERT(isHostFunction());
</ins><span class="cx"> return static_cast<NativeExecutable*>(m_executable.get())->constructor();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-inline bool isHostFunction(JSValue value, NativeFunction nativeFunction)
-{
- JSFunction* function = jsCast<JSFunction*>(getJSFunction(value));
- if (!function || !function->isHostFunction())
- return false;
- return function->nativeFunction() == nativeFunction;
-}
-
</del><span class="cx"> } // namespace JSC
</span><span class="cx">
</span><span class="cx"> #endif // JSFunctionInlines_h
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSGenericTypedArrayViewConstructorInlinesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayViewConstructorInlines.h (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayViewConstructorInlines.h        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayViewConstructorInlines.h        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -26,7 +26,6 @@
</span><span class="cx"> #ifndef JSGenericTypedArrayViewConstructorInlines_h
</span><span class="cx"> #define JSGenericTypedArrayViewConstructorInlines_h
</span><span class="cx">
</span><del>-#include "CommonIdentifiers.h"
</del><span class="cx"> #include "Error.h"
</span><span class="cx"> #include "JSArrayBuffer.h"
</span><span class="cx"> #include "JSGenericTypedArrayViewConstructor.h"
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSGenericTypedArrayViewInlinesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayViewInlines.h (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayViewInlines.h        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayViewInlines.h        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -27,7 +27,6 @@
</span><span class="cx"> #define JSGenericTypedArrayViewInlines_h
</span><span class="cx">
</span><span class="cx"> #include "ArrayBufferView.h"
</span><del>-#include "CommonIdentifiers.h"
</del><span class="cx"> #include "DeferGC.h"
</span><span class="cx"> #include "Error.h"
</span><span class="cx"> #include "ExceptionHelpers.h"
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSGenericTypedArrayViewPrototypeInlinesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayViewPrototypeInlines.h (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayViewPrototypeInlines.h        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayViewPrototypeInlines.h        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -26,7 +26,6 @@
</span><span class="cx"> #ifndef JSGenericTypedArrayViewPrototypeInlines_h
</span><span class="cx"> #define JSGenericTypedArrayViewPrototypeInlines_h
</span><span class="cx">
</span><del>-#include "CommonIdentifiers.h"
</del><span class="cx"> #include "Error.h"
</span><span class="cx"> #include "ExceptionHelpers.h"
</span><span class="cx"> #include "JSFunction.h"
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSGlobalObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSGlobalObject.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSGlobalObject.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/JSGlobalObject.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -346,8 +346,7 @@
</span><span class="cx">
</span><span class="cx"> // Constructors
</span><span class="cx">
</span><del>- ObjectConstructor* objectConstructor = ObjectConstructor::create(vm, ObjectConstructor::createStructure(vm, this, m_functionPrototype.get()), m_objectPrototype.get());
- m_objectConstructor.set(vm, this, objectConstructor);
</del><ins>+ JSCell* objectConstructor = ObjectConstructor::create(vm, ObjectConstructor::createStructure(vm, this, m_functionPrototype.get()), m_objectPrototype.get());
</ins><span class="cx"> JSCell* functionConstructor = FunctionConstructor::create(vm, FunctionConstructor::createStructure(vm, this, m_functionPrototype.get()), m_functionPrototype.get());
</span><span class="cx"> JSCell* arrayConstructor = ArrayConstructor::create(vm, ArrayConstructor::createStructure(vm, this, m_functionPrototype.get()), m_arrayPrototype.get());
</span><span class="cx">
</span><span class="lines">@@ -433,10 +432,7 @@
</span><span class="cx"> GlobalPropertyInfo staticGlobals[] = {
</span><span class="cx"> GlobalPropertyInfo(vm.propertyNames->NaN, jsNaN(), DontEnum | DontDelete | ReadOnly),
</span><span class="cx"> GlobalPropertyInfo(vm.propertyNames->Infinity, jsNumber(std::numeric_limits<double>::infinity()), DontEnum | DontDelete | ReadOnly),
</span><del>- GlobalPropertyInfo(vm.propertyNames->undefinedKeyword, jsUndefined(), DontEnum | DontDelete | ReadOnly),
- GlobalPropertyInfo(vm.propertyNames->undefinedKeywordPrivateName, jsUndefined(), DontEnum | DontDelete | ReadOnly),
- GlobalPropertyInfo(vm.propertyNames->ObjectPrivateName, objectConstructor, DontEnum | DontDelete | ReadOnly),
- GlobalPropertyInfo(vm.propertyNames->TypeErrorPrivateName, m_typeErrorConstructor.get(), DontEnum | DontDelete | ReadOnly)
</del><ins>+ GlobalPropertyInfo(vm.propertyNames->undefinedKeyword, jsUndefined(), DontEnum | DontDelete | ReadOnly)
</ins><span class="cx"> };
</span><span class="cx"> addStaticGlobals(staticGlobals, WTF_ARRAY_LENGTH(staticGlobals));
</span><span class="cx">
</span><span class="lines">@@ -612,7 +608,6 @@
</span><span class="cx"> visitor.append(&thisObject->m_syntaxErrorConstructor);
</span><span class="cx"> visitor.append(&thisObject->m_typeErrorConstructor);
</span><span class="cx"> visitor.append(&thisObject->m_URIErrorConstructor);
</span><del>- visitor.append(&thisObject->m_objectConstructor);
</del><span class="cx"> visitor.append(&thisObject->m_promiseConstructor);
</span><span class="cx">
</span><span class="cx"> visitor.append(&thisObject->m_evalFunction);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSGlobalObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSGlobalObject.h (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSGlobalObject.h        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/JSGlobalObject.h        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -67,7 +67,6 @@
</span><span class="cx"> class LLIntOffsetsExtractor;
</span><span class="cx"> class Microtask;
</span><span class="cx"> class NativeErrorConstructor;
</span><del>-class ObjectConstructor;
</del><span class="cx"> class ProgramCodeBlock;
</span><span class="cx"> class ProgramExecutable;
</span><span class="cx"> class RegExpConstructor;
</span><span class="lines">@@ -159,7 +158,6 @@
</span><span class="cx"> WriteBarrier<NativeErrorConstructor> m_typeErrorConstructor;
</span><span class="cx"> WriteBarrier<NativeErrorConstructor> m_URIErrorConstructor;
</span><span class="cx"> WriteBarrier<JSPromiseConstructor> m_promiseConstructor;
</span><del>- WriteBarrier<ObjectConstructor> m_objectConstructor;
</del><span class="cx">
</span><span class="cx"> WriteBarrier<JSFunction> m_evalFunction;
</span><span class="cx"> WriteBarrier<JSFunction> m_callFunction;
</span><span class="lines">@@ -332,7 +330,6 @@
</span><span class="cx"> RegExpConstructor* regExpConstructor() const { return m_regExpConstructor.get(); }
</span><span class="cx">
</span><span class="cx"> ErrorConstructor* errorConstructor() const { return m_errorConstructor.get(); }
</span><del>- ObjectConstructor* objectConstructor() const { return m_objectConstructor.get(); }
</del><span class="cx"> NativeErrorConstructor* evalErrorConstructor() const { return m_evalErrorConstructor.get(); }
</span><span class="cx"> NativeErrorConstructor* rangeErrorConstructor() const { return m_rangeErrorConstructor.get(); }
</span><span class="cx"> NativeErrorConstructor* referenceErrorConstructor() const { return m_referenceErrorConstructor.get(); }
</span><span class="lines">@@ -584,7 +581,7 @@
</span><span class="cx">
</span><span class="cx"> inline bool JSGlobalObject::symbolTableHasProperty(PropertyName propertyName)
</span><span class="cx"> {
</span><del>- SymbolTableEntry entry = symbolTable()->inlineGet(propertyName.uid());
</del><ins>+ SymbolTableEntry entry = symbolTable()->inlineGet(propertyName.publicName());
</ins><span class="cx"> return !entry.isNull();
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSObject.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSObject.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/JSObject.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -87,7 +87,7 @@
</span><span class="cx"> int hashSizeMask = table->compactSize - 1;
</span><span class="cx"> const HashEntry* entry = table->table;
</span><span class="cx"> for (int i = 0; i <= hashSizeMask; ++i, ++entry) {
</span><del>- if (entry->key() && (!(entry->attributes() & DontEnum) || (mode == IncludeDontEnumProperties)) && !((entry->attributes() & BuiltinOrFunction) && didReify))
</del><ins>+ if (entry->key() && (!(entry->attributes() & DontEnum) || (mode == IncludeDontEnumProperties)) && !((entry->attributes() & Function) && didReify))
</ins><span class="cx"> propertyNames.add(entry->key());
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="lines">@@ -1618,7 +1618,7 @@
</span><span class="cx"> continue;
</span><span class="cx"> PropertySlot slot(this);
</span><span class="cx"> for (HashTable::ConstIterator iter = hashTable->begin(vm); iter != hashTable->end(vm); ++iter) {
</span><del>- if (iter->attributes() & BuiltinOrFunction)
</del><ins>+ if (iter->attributes() & Function)
</ins><span class="cx"> setUpStaticFunctionSlot(globalObject()->globalExec(), *iter, this, Identifier(&vm, iter->key()), slot);
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="lines">@@ -2236,16 +2236,6 @@
</span><span class="cx"> putDirect(vm, propertyName, function, attributes);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void JSObject::putDirectBuiltinFunction(VM& vm, JSGlobalObject* globalObject, const PropertyName& propertyName, FunctionExecutable* functionExecutable, unsigned attributes)
-{
- StringImpl* name = propertyName.publicName();
- if (!name)
- name = vm.propertyNames->anonymous.impl();
- ASSERT(name);
- JSFunction* function = JSFunction::createBuiltinFunction(vm, static_cast<FunctionExecutable*>(functionExecutable), globalObject);
- putDirect(vm, propertyName, function, attributes);
-}
-
</del><span class="cx"> void JSObject::putDirectNativeFunctionWithoutTransition(VM& vm, JSGlobalObject* globalObject, const PropertyName& propertyName, unsigned functionLength, NativeFunction nativeFunction, Intrinsic intrinsic, unsigned attributes)
</span><span class="cx"> {
</span><span class="cx"> StringImpl* name = propertyName.publicName();
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSObject.h (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSObject.h        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/JSObject.h        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -29,6 +29,7 @@
</span><span class="cx"> #include "Butterfly.h"
</span><span class="cx"> #include "CallFrame.h"
</span><span class="cx"> #include "ClassInfo.h"
</span><ins>+#include "CommonIdentifiers.h"
</ins><span class="cx"> #include "CopyWriteBarrier.h"
</span><span class="cx"> #include "DeferGC.h"
</span><span class="cx"> #include "Heap.h"
</span><span class="lines">@@ -580,7 +581,6 @@
</span><span class="cx"> void putDirectUndefined(PropertyOffset offset) { locationForOffset(offset)->setUndefined(); }
</span><span class="cx">
</span><span class="cx"> void putDirectNativeFunction(VM&, JSGlobalObject*, const PropertyName&, unsigned functionLength, NativeFunction, Intrinsic, unsigned attributes);
</span><del>- void putDirectBuiltinFunction(VM&, JSGlobalObject*, const PropertyName&, FunctionExecutable*, unsigned attributes);
</del><span class="cx"> void putDirectNativeFunctionWithoutTransition(VM&, JSGlobalObject*, const PropertyName&, unsigned functionLength, NativeFunction, Intrinsic, unsigned attributes);
</span><span class="cx">
</span><span class="cx"> JS_EXPORT_PRIVATE static bool defineOwnProperty(JSObject*, ExecState*, PropertyName, const PropertyDescriptor&, bool shouldThrow);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSPromiseConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSPromiseConstructor.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSPromiseConstructor.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/JSPromiseConstructor.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -35,7 +35,6 @@
</span><span class="cx"> #include "JSPromiseDeferred.h"
</span><span class="cx"> #include "JSPromiseFunctions.h"
</span><span class="cx"> #include "JSPromisePrototype.h"
</span><del>-#include "JSStringInlines.h"
</del><span class="cx"> #include "Lookup.h"
</span><span class="cx"> #include "NumberObject.h"
</span><span class="cx"> #include "StructureInlines.h"
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSPromiseDeferredcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSPromiseDeferred.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSPromiseDeferred.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/JSPromiseDeferred.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -32,7 +32,6 @@
</span><span class="cx"> #include "JSPromise.h"
</span><span class="cx"> #include "JSPromiseConstructor.h"
</span><span class="cx"> #include "JSPromiseFunctions.h"
</span><del>-#include "JSStringInlines.h"
</del><span class="cx"> #include "SlotVisitorInlines.h"
</span><span class="cx">
</span><span class="cx"> namespace JSC {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSPromisePrototypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSPromisePrototype.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSPromisePrototype.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/JSPromisePrototype.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -36,7 +36,6 @@
</span><span class="cx"> #include "JSPromiseDeferred.h"
</span><span class="cx"> #include "JSPromiseFunctions.h"
</span><span class="cx"> #include "JSPromiseReaction.h"
</span><del>-#include "JSStringInlines.h"
</del><span class="cx"> #include "Microtask.h"
</span><span class="cx"> #include "StructureInlines.h"
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSPromiseReactionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSPromiseReaction.h (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSPromiseReaction.h        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/JSPromiseReaction.h        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -27,7 +27,6 @@
</span><span class="cx"> #define JSPromiseReaction_h
</span><span class="cx">
</span><span class="cx"> #include "JSCell.h"
</span><del>-#include "JSStringInlines.h"
</del><span class="cx"> #include "Structure.h"
</span><span class="cx">
</span><span class="cx"> namespace JSC {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSPropertyNameIteratorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSPropertyNameIterator.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSPropertyNameIterator.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/JSPropertyNameIterator.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -29,9 +29,7 @@
</span><span class="cx"> #include "config.h"
</span><span class="cx"> #include "JSPropertyNameIterator.h"
</span><span class="cx">
</span><del>-#include "JSCJSValueInlines.h"
</del><span class="cx"> #include "JSGlobalObject.h"
</span><del>-#include "Operations.h"
</del><span class="cx"> #include <wtf/StdLibExtras.h>
</span><span class="cx">
</span><span class="cx"> namespace JSC {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSPropertyNameIteratorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSPropertyNameIterator.h (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSPropertyNameIterator.h        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/JSPropertyNameIterator.h        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -31,6 +31,7 @@
</span><span class="cx">
</span><span class="cx"> #include "JSObject.h"
</span><span class="cx"> #include "JSString.h"
</span><ins>+#include "Operations.h"
</ins><span class="cx"> #include "PropertyNameArray.h"
</span><span class="cx"> #include <memory>
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSStringh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSString.h (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSString.h        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/JSString.h        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -24,6 +24,7 @@
</span><span class="cx"> #define JSString_h
</span><span class="cx">
</span><span class="cx"> #include "CallFrame.h"
</span><ins>+#include "CommonIdentifiers.h"
</ins><span class="cx"> #include "Identifier.h"
</span><span class="cx"> #include "PropertyDescriptor.h"
</span><span class="cx"> #include "PropertySlot.h"
</span><span class="lines">@@ -471,6 +472,33 @@
</span><span class="cx"> inline JSString* jsNontrivialString(ExecState* exec, const String& s) { return jsNontrivialString(&exec->vm(), s); }
</span><span class="cx"> inline JSString* jsOwnedString(ExecState* exec, const String& s) { return jsOwnedString(&exec->vm(), s); }
</span><span class="cx">
</span><ins>+ ALWAYS_INLINE bool JSString::getStringPropertySlot(ExecState* exec, PropertyName propertyName, PropertySlot& slot)
+ {
+ if (propertyName == exec->propertyNames().length) {
+ slot.setValue(this, DontEnum | DontDelete | ReadOnly, jsNumber(m_length));
+ return true;
+ }
+
+ unsigned i = propertyName.asIndex();
+ if (i < m_length) {
+ ASSERT(i != PropertyName::NotAnIndex); // No need for an explicit check, the above test would always fail!
+ slot.setValue(this, DontDelete | ReadOnly, getIndex(exec, i));
+ return true;
+ }
+
+ return false;
+ }
+
+ ALWAYS_INLINE bool JSString::getStringPropertySlot(ExecState* exec, unsigned propertyName, PropertySlot& slot)
+ {
+ if (propertyName < m_length) {
+ slot.setValue(this, DontDelete | ReadOnly, getIndex(exec, propertyName));
+ return true;
+ }
+
+ return false;
+ }
+
</ins><span class="cx"> inline bool isJSString(JSValue v) { return v.isCell() && v.asCell()->classInfo() == JSString::info(); }
</span><span class="cx">
</span><span class="cx"> // --- JSValue inlines ----------------------------
</span><span class="lines">@@ -500,6 +528,32 @@
</span><span class="cx"> return toWTFStringSlowCase(exec);
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+ ALWAYS_INLINE String inlineJSValueNotStringtoString(const JSValue& value, ExecState* exec)
+ {
+ VM& vm = exec->vm();
+ if (value.isInt32())
+ return vm.numericStrings.add(value.asInt32());
+ if (value.isDouble())
+ return vm.numericStrings.add(value.asDouble());
+ if (value.isTrue())
+ return vm.propertyNames->trueKeyword.string();
+ if (value.isFalse())
+ return vm.propertyNames->falseKeyword.string();
+ if (value.isNull())
+ return vm.propertyNames->nullKeyword.string();
+ if (value.isUndefined())
+ return vm.propertyNames->undefinedKeyword.string();
+ return value.toString(exec)->value(exec);
+ }
+
+ ALWAYS_INLINE String JSValue::toWTFStringInline(ExecState* exec) const
+ {
+ if (isString())
+ return static_cast<JSString*>(asCell())->value(exec);
+
+ return inlineJSValueNotStringtoString(*this, exec);
+ }
+
</ins><span class="cx"> } // namespace JSC
</span><span class="cx">
</span><span class="cx"> #endif // JSString_h
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSStringInlinesh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/runtime/JSStringInlines.h (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSStringInlines.h        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/JSStringInlines.h        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -1,90 +0,0 @@
</span><del>-/*
- * Copyright (C) 2012, 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 JSStringInlines_h
-#define JSStringInlines_h
-
-#include "CommonIdentifiers.h"
-#include "JSCJSValueInlines.h"
-#include "JSString.h"
-
-namespace JSC {
-
-ALWAYS_INLINE bool JSString::getStringPropertySlot(ExecState* exec, PropertyName propertyName, PropertySlot& slot)
-{
- if (propertyName == exec->propertyNames().length) {
- slot.setValue(this, DontEnum | DontDelete | ReadOnly, jsNumber(m_length));
- return true;
- }
-
- unsigned i = propertyName.asIndex();
- if (i < m_length) {
- ASSERT(i != PropertyName::NotAnIndex); // No need for an explicit check, the above test would always fail!
- slot.setValue(this, DontDelete | ReadOnly, getIndex(exec, i));
- return true;
- }
-
- return false;
-}
-
-ALWAYS_INLINE bool JSString::getStringPropertySlot(ExecState* exec, unsigned propertyName, PropertySlot& slot)
-{
- if (propertyName < m_length) {
- slot.setValue(this, DontDelete | ReadOnly, getIndex(exec, propertyName));
- return true;
- }
-
- return false;
-}
-
-ALWAYS_INLINE String inlineJSValueNotStringtoString(const JSValue& value, ExecState* exec)
-{
- VM& vm = exec->vm();
- if (value.isInt32())
- return vm.numericStrings.add(value.asInt32());
- if (value.isDouble())
- return vm.numericStrings.add(value.asDouble());
- if (value.isTrue())
- return vm.propertyNames->trueKeyword.string();
- if (value.isFalse())
- return vm.propertyNames->falseKeyword.string();
- if (value.isNull())
- return vm.propertyNames->nullKeyword.string();
- if (value.isUndefined())
- return vm.propertyNames->undefinedKeyword.string();
- return value.toString(exec)->value(exec);
-}
-
-ALWAYS_INLINE String JSValue::toWTFStringInline(ExecState* exec) const
-{
- if (isString())
- return static_cast<JSString*>(asCell())->value(exec);
-
- return inlineJSValueNotStringtoString(*this, exec);
-}
-
-}
-
-#endif
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSSymbolTableObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSSymbolTableObject.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSSymbolTableObject.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/JSSymbolTableObject.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -64,8 +64,6 @@
</span><span class="cx"> ConcurrentJITLocker locker(thisObject->symbolTable()->m_lock);
</span><span class="cx"> SymbolTable::Map::iterator end = thisObject->symbolTable()->end(locker);
</span><span class="cx"> for (SymbolTable::Map::iterator it = thisObject->symbolTable()->begin(locker); it != end; ++it) {
</span><del>- if (it->key->isEmptyUnique())
- continue;
</del><span class="cx"> if (!(it->value.getAttributes() & DontEnum) || (mode == IncludeDontEnumProperties))
</span><span class="cx"> propertyNames.add(Identifier(exec, it->key.get()));
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSSymbolTableObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSSymbolTableObject.h (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSSymbolTableObject.h        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/JSSymbolTableObject.h        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -72,7 +72,7 @@
</span><span class="cx"> {
</span><span class="cx"> SymbolTable& symbolTable = *object->symbolTable();
</span><span class="cx"> ConcurrentJITLocker locker(symbolTable.m_lock);
</span><del>- SymbolTable::Map::iterator iter = symbolTable.find(locker, propertyName.uid());
</del><ins>+ SymbolTable::Map::iterator iter = symbolTable.find(locker, propertyName.publicName());
</ins><span class="cx"> if (iter == symbolTable.end(locker))
</span><span class="cx"> return false;
</span><span class="cx"> SymbolTableEntry::Fast entry = iter->value;
</span><span class="lines">@@ -87,7 +87,7 @@
</span><span class="cx"> {
</span><span class="cx"> SymbolTable& symbolTable = *object->symbolTable();
</span><span class="cx"> ConcurrentJITLocker locker(symbolTable.m_lock);
</span><del>- SymbolTable::Map::iterator iter = symbolTable.find(locker, propertyName.uid());
</del><ins>+ SymbolTable::Map::iterator iter = symbolTable.find(locker, propertyName.publicName());
</ins><span class="cx"> if (iter == symbolTable.end(locker))
</span><span class="cx"> return false;
</span><span class="cx"> SymbolTableEntry::Fast entry = iter->value;
</span><span class="lines">@@ -104,7 +104,7 @@
</span><span class="cx"> {
</span><span class="cx"> SymbolTable& symbolTable = *object->symbolTable();
</span><span class="cx"> ConcurrentJITLocker locker(symbolTable.m_lock);
</span><del>- SymbolTable::Map::iterator iter = symbolTable.find(locker, propertyName.uid());
</del><ins>+ SymbolTable::Map::iterator iter = symbolTable.find(locker, propertyName.publicName());
</ins><span class="cx"> if (iter == symbolTable.end(locker))
</span><span class="cx"> return false;
</span><span class="cx"> SymbolTableEntry::Fast entry = iter->value;
</span><span class="lines">@@ -126,7 +126,7 @@
</span><span class="cx"> {
</span><span class="cx"> SymbolTable& symbolTable = *object->symbolTable();
</span><span class="cx"> GCSafeConcurrentJITLocker locker(symbolTable.m_lock, exec->vm().heap);
</span><del>- SymbolTable::Map::iterator iter = symbolTable.find(locker, propertyName.uid());
</del><ins>+ SymbolTable::Map::iterator iter = symbolTable.find(locker, propertyName.publicName());
</ins><span class="cx"> if (iter == symbolTable.end(locker))
</span><span class="cx"> return false;
</span><span class="cx"> bool wasFat;
</span><span class="lines">@@ -159,7 +159,7 @@
</span><span class="cx"> {
</span><span class="cx"> SymbolTable& symbolTable = *object->symbolTable();
</span><span class="cx"> ConcurrentJITLocker locker(symbolTable.m_lock);
</span><del>- SymbolTable::Map::iterator iter = symbolTable.find(locker, propertyName.uid());
</del><ins>+ SymbolTable::Map::iterator iter = symbolTable.find(locker, propertyName.publicName());
</ins><span class="cx"> if (iter == symbolTable.end(locker))
</span><span class="cx"> return false;
</span><span class="cx"> SymbolTableEntry& entry = iter->value;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeLookupcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/Lookup.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/Lookup.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/Lookup.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -68,7 +68,7 @@
</span><span class="cx"> bool setUpStaticFunctionSlot(ExecState* exec, const HashEntry* entry, JSObject* thisObj, PropertyName propertyName, PropertySlot& slot)
</span><span class="cx"> {
</span><span class="cx"> ASSERT(thisObj->globalObject());
</span><del>- ASSERT(entry->attributes() & BuiltinOrFunction);
</del><ins>+ ASSERT(entry->attributes() & Function);
</ins><span class="cx"> VM& vm = exec->vm();
</span><span class="cx"> unsigned attributes;
</span><span class="cx"> PropertyOffset offset = thisObj->getDirectOffset(vm, propertyName, attributes);
</span><span class="lines">@@ -79,13 +79,9 @@
</span><span class="cx"> if (thisObj->staticFunctionsReified())
</span><span class="cx"> return false;
</span><span class="cx">
</span><del>- if (entry->attributes() & Builtin)
- thisObj->putDirectBuiltinFunction(vm, thisObj->globalObject(), propertyName, entry->builtinGenerator()(vm), entry->attributes());
- else {
- thisObj->putDirectNativeFunction(
- vm, thisObj->globalObject(), propertyName, entry->functionLength(),
- entry->function(), entry->intrinsic(), entry->attributes());
- }
</del><ins>+ thisObj->putDirectNativeFunction(
+ vm, thisObj->globalObject(), propertyName, entry->functionLength(),
+ entry->function(), entry->intrinsic(), entry->attributes());
</ins><span class="cx"> offset = thisObj->getDirectOffset(vm, propertyName, attributes);
</span><span class="cx"> ASSERT(isValidOffset(offset));
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeLookuph"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/Lookup.h (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/Lookup.h        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/Lookup.h        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -43,7 +43,6 @@
</span><span class="cx"> // ie. typedef JSValue (*GetFunction)(ExecState*, JSObject* baseObject)
</span><span class="cx"> typedef PropertySlot::GetValueFunc GetFunction;
</span><span class="cx"> typedef PutPropertySlot::PutValueFunc PutFunction;
</span><del>- typedef FunctionExecutable* (*BuiltinGenerator)(VM&);
</del><span class="cx">
</span><span class="cx"> class HashEntry {
</span><span class="cx"> WTF_MAKE_FAST_ALLOCATED;
</span><span class="lines">@@ -69,12 +68,11 @@
</span><span class="cx"> return m_intrinsic;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- BuiltinGenerator builtinGenerator() const { ASSERT(m_attributes & Builtin); return m_u.builtinGenerator.generatorValue; }
</del><span class="cx"> NativeFunction function() const { ASSERT(m_attributes & Function); return m_u.function.functionValue; }
</span><span class="cx"> unsigned char functionLength() const { ASSERT(m_attributes & Function); return static_cast<unsigned char>(m_u.function.length); }
</span><span class="cx">
</span><del>- GetFunction propertyGetter() const { ASSERT(!(m_attributes & BuiltinOrFunction)); return m_u.property.get; }
- PutFunction propertyPutter() const { ASSERT(!(m_attributes & BuiltinOrFunction)); return m_u.property.put; }
</del><ins>+ GetFunction propertyGetter() const { ASSERT(!(m_attributes & Function)); return m_u.property.get; }
+ PutFunction propertyPutter() const { ASSERT(!(m_attributes & Function)); return m_u.property.put; }
</ins><span class="cx">
</span><span class="cx"> intptr_t lexerValue() const { ASSERT(!m_attributes); return m_u.lexer.value; }
</span><span class="cx">
</span><span class="lines">@@ -96,10 +94,6 @@
</span><span class="cx"> intptr_t length; // number of arguments for function
</span><span class="cx"> } function;
</span><span class="cx"> struct {
</span><del>- BuiltinGenerator generatorValue;
- intptr_t unused;
- } builtinGenerator;
- struct {
</del><span class="cx"> GetFunction get;
</span><span class="cx"> PutFunction put;
</span><span class="cx"> } property;
</span><span class="lines">@@ -215,7 +209,7 @@
</span><span class="cx"> private:
</span><span class="cx"> ALWAYS_INLINE const HashEntry* entry(PropertyName propertyName) const
</span><span class="cx"> {
</span><del>- StringImpl* impl = propertyName.uid();
</del><ins>+ StringImpl* impl = propertyName.publicName();
</ins><span class="cx"> if (!impl)
</span><span class="cx"> return 0;
</span><span class="cx">
</span><span class="lines">@@ -255,7 +249,7 @@
</span><span class="cx"> if (!entry) // not found, forward to parent
</span><span class="cx"> return ParentImp::getOwnPropertySlot(thisObj, exec, propertyName, slot);
</span><span class="cx">
</span><del>- if (entry->attributes() & BuiltinOrFunction)
</del><ins>+ if (entry->attributes() & Function)
</ins><span class="cx"> return setUpStaticFunctionSlot(exec, entry, thisObj, propertyName, slot);
</span><span class="cx">
</span><span class="cx"> slot.setCacheableCustom(thisObj, entry->attributes(), entry->propertyGetter());
</span><span class="lines">@@ -292,7 +286,7 @@
</span><span class="cx"> if (!entry) // not found, forward to parent
</span><span class="cx"> return ParentImp::getOwnPropertySlot(thisObj, exec, propertyName, slot);
</span><span class="cx">
</span><del>- ASSERT(!(entry->attributes() & BuiltinOrFunction));
</del><ins>+ ASSERT(!(entry->attributes() & Function));
</ins><span class="cx">
</span><span class="cx"> slot.setCacheableCustom(thisObj, entry->attributes(), entry->propertyGetter());
</span><span class="cx"> return true;
</span><span class="lines">@@ -301,7 +295,7 @@
</span><span class="cx"> inline void putEntry(ExecState* exec, const HashEntry* entry, JSObject* base, PropertyName propertyName, JSValue value, PutPropertySlot& slot)
</span><span class="cx"> {
</span><span class="cx"> // If this is a function put it as an override property.
</span><del>- if (entry->attributes() & BuiltinOrFunction) {
</del><ins>+ if (entry->attributes() & Function) {
</ins><span class="cx"> if (JSObject* thisObject = jsDynamicCast<JSObject*>(slot.thisValue()))
</span><span class="cx"> thisObject->putDirect(exec->vm(), propertyName, value);
</span><span class="cx"> } else if (!(entry->attributes() & ReadOnly)) {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeNativeErrorConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/NativeErrorConstructor.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/NativeErrorConstructor.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/NativeErrorConstructor.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -38,20 +38,6 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void NativeErrorConstructor::finishCreation(VM& vm, JSGlobalObject* globalObject, Structure* prototypeStructure, const String& name)
-{
- Base::finishCreation(vm, name);
- ASSERT(inherits(info()));
-
- NativeErrorPrototype* prototype = NativeErrorPrototype::create(vm, globalObject, prototypeStructure, name, this);
-
- putDirect(vm, vm.propertyNames->length, jsNumber(1), DontDelete | ReadOnly | DontEnum); // ECMA 15.11.7.5
- putDirect(vm, vm.propertyNames->prototype, prototype, DontDelete | ReadOnly | DontEnum);
- m_errorStructure.set(vm, this, ErrorInstance::createStructure(vm, globalObject, prototype));
- ASSERT(m_errorStructure);
- ASSERT(m_errorStructure->isObject());
-}
-
</del><span class="cx"> void NativeErrorConstructor::visitChildren(JSCell* cell, SlotVisitor& visitor)
</span><span class="cx"> {
</span><span class="cx"> NativeErrorConstructor* thisObject = jsCast<NativeErrorConstructor*>(cell);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeNativeErrorConstructorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/NativeErrorConstructor.h (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/NativeErrorConstructor.h        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/NativeErrorConstructor.h        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -51,8 +51,20 @@
</span><span class="cx"> Structure* errorStructure() { return m_errorStructure.get(); }
</span><span class="cx">
</span><span class="cx"> protected:
</span><del>- void finishCreation(VM&, JSGlobalObject*, Structure* prototypeStructure, const String& name);
</del><ins>+ void finishCreation(VM& vm, JSGlobalObject* globalObject, Structure* prototypeStructure, const String& name)
+ {
+ Base::finishCreation(vm, name);
+ ASSERT(inherits(info()));
</ins><span class="cx">
</span><ins>+ NativeErrorPrototype* prototype = NativeErrorPrototype::create(vm, globalObject, prototypeStructure, name, this);
+
+ putDirect(vm, vm.propertyNames->length, jsNumber(1), DontDelete | ReadOnly | DontEnum); // ECMA 15.11.7.5
+ putDirect(vm, vm.propertyNames->prototype, prototype, DontDelete | ReadOnly | DontEnum);
+ m_errorStructure.set(vm, this, ErrorInstance::createStructure(vm, globalObject, prototype));
+ ASSERT(m_errorStructure);
+ ASSERT(m_errorStructure->isObject());
+ }
+
</ins><span class="cx"> private:
</span><span class="cx"> NativeErrorConstructor(VM&, Structure*);
</span><span class="cx"> static const unsigned StructureFlags = OverridesVisitChildren | InternalFunction::StructureFlags;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimePropertySloth"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/PropertySlot.h (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/PropertySlot.h        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/PropertySlot.h        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -42,8 +42,6 @@
</span><span class="cx"> Function = 1 << 4, // property is a function - only used by static hashtables
</span><span class="cx"> Accessor = 1 << 5, // property is a getter/setter
</span><span class="cx"> CustomAccessor = 1 << 6,
</span><del>- Builtin = 1 << 7, // property is a builtin function - only used by static hashtables
- BuiltinOrFunction = Builtin | Function, // helper only used by static hashtables
</del><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> class PropertySlot {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeRegExpConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/RegExpConstructor.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/RegExpConstructor.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/RegExpConstructor.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -23,7 +23,6 @@
</span><span class="cx"> #include "RegExpConstructor.h"
</span><span class="cx">
</span><span class="cx"> #include "Error.h"
</span><del>-#include "JSStringInlines.h"
</del><span class="cx"> #include "Operations.h"
</span><span class="cx"> #include "RegExpMatchesArray.h"
</span><span class="cx"> #include "RegExpPrototype.h"
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeRegExpPrototypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/RegExpPrototype.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/RegExpPrototype.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/RegExpPrototype.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -24,7 +24,7 @@
</span><span class="cx"> #include "ArrayPrototype.h"
</span><span class="cx"> #include "Error.h"
</span><span class="cx"> #include "JSArray.h"
</span><del>-#include "JSCJSValueInlines.h"
</del><ins>+#include "JSCJSValue.h"
</ins><span class="cx"> #include "JSFunction.h"
</span><span class="cx"> #include "JSObject.h"
</span><span class="cx"> #include "JSString.h"
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeSetConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/SetConstructor.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/SetConstructor.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/SetConstructor.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -31,7 +31,6 @@
</span><span class="cx"> #include "JSCellInlines.h"
</span><span class="cx"> #include "JSGlobalObject.h"
</span><span class="cx"> #include "JSSet.h"
</span><del>-#include "JSStringInlines.h"
</del><span class="cx"> #include "MapData.h"
</span><span class="cx"> #include "SetPrototype.h"
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeStringObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/StringObject.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/StringObject.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/StringObject.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -22,9 +22,7 @@
</span><span class="cx"> #include "StringObject.h"
</span><span class="cx">
</span><span class="cx"> #include "Error.h"
</span><del>-#include "JSCJSValueInlines.h"
</del><span class="cx"> #include "JSGlobalObject.h"
</span><del>-#include "JSStringInlines.h"
</del><span class="cx"> #include "Operations.h"
</span><span class="cx"> #include "PropertyNameArray.h"
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeStructurecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/Structure.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/Structure.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/Structure.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -27,18 +27,12 @@
</span><span class="cx"> #include "Structure.h"
</span><span class="cx">
</span><span class="cx"> #include "CodeBlock.h"
</span><del>-#include "CommonIdentifiers.h"
</del><span class="cx"> #include "DumpContext.h"
</span><del>-#include "JSCellInlines.h"
</del><span class="cx"> #include "JSObject.h"
</span><span class="cx"> #include "JSPropertyNameIterator.h"
</span><del>-#include "JSStringInlines.h"
</del><span class="cx"> #include "Lookup.h"
</span><del>-#include "PropertyMapHashTable.h"
</del><span class="cx"> #include "PropertyNameArray.h"
</span><del>-#include "SlotVisitorInlines.h"
</del><span class="cx"> #include "StructureChain.h"
</span><del>-#include "StructureInlines.h"
</del><span class="cx"> #include "StructureRareDataInlines.h"
</span><span class="cx"> #include <wtf/CommaPrinter.h>
</span><span class="cx"> #include <wtf/RefCountedLeakCounter.h>
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeVMcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/VM.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/VM.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/VM.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -32,7 +32,6 @@
</span><span class="cx"> #include "ArgList.h"
</span><span class="cx"> #include "ArityCheckFailReturnThunks.h"
</span><span class="cx"> #include "ArrayBufferNeuteringWatchpoint.h"
</span><del>-#include "BuiltinExecutables.h"
</del><span class="cx"> #include "CallFrameInlines.h"
</span><span class="cx"> #include "CodeBlock.h"
</span><span class="cx"> #include "CodeCache.h"
</span><span class="lines">@@ -56,9 +55,7 @@
</span><span class="cx"> #include "JSAPIValueWrapper.h"
</span><span class="cx"> #include "JSActivation.h"
</span><span class="cx"> #include "JSArray.h"
</span><del>-#include "JSCJSValueInlines.h"
-#include "JSCellInlines.h"
-#include "JSFunctionInlines.h"
</del><ins>+#include "JSFunction.h"
</ins><span class="cx"> #include "JSGlobalObjectFunctions.h"
</span><span class="cx"> #include "JSLock.h"
</span><span class="cx"> #include "JSNameScope.h"
</span><span class="lines">@@ -71,16 +68,13 @@
</span><span class="cx"> #include "Lookup.h"
</span><span class="cx"> #include "MapData.h"
</span><span class="cx"> #include "Nodes.h"
</span><del>-#include "Parser.h"
</del><span class="cx"> #include "ParserArena.h"
</span><del>-#include "PropertyMapHashTable.h"
</del><span class="cx"> #include "RegExpCache.h"
</span><span class="cx"> #include "RegExpObject.h"
</span><span class="cx"> #include "SimpleTypedArrayController.h"
</span><span class="cx"> #include "SourceProviderCache.h"
</span><span class="cx"> #include "StrictEvalActivation.h"
</span><span class="cx"> #include "StrongInlines.h"
</span><del>-#include "StructureInlines.h"
</del><span class="cx"> #include "UnlinkedCodeBlock.h"
</span><span class="cx"> #include "WeakMapData.h"
</span><span class="cx"> #include <wtf/ProcessID.h>
</span><span class="lines">@@ -232,7 +226,6 @@
</span><span class="cx"> , m_inDefineOwnProperty(false)
</span><span class="cx"> , m_codeCache(CodeCache::create())
</span><span class="cx"> , m_enabledProfiler(nullptr)
</span><del>- , m_builtinExecutables(BuiltinExecutables::create(*this))
</del><span class="cx"> {
</span><span class="cx"> interpreter = new Interpreter(*this);
</span><span class="cx"> StackBounds stack = wtfThreadData().stack();
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeVMh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/VM.h (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/VM.h        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/JavaScriptCore/runtime/VM.h        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -44,7 +44,6 @@
</span><span class="cx"> #include "PrivateName.h"
</span><span class="cx"> #include "PrototypeMap.h"
</span><span class="cx"> #include "SmallStrings.h"
</span><del>-#include "SourceCode.h"
</del><span class="cx"> #include "Strong.h"
</span><span class="cx"> #include "ThunkGenerators.h"
</span><span class="cx"> #include "TypedArrayController.h"
</span><span class="lines">@@ -70,7 +69,6 @@
</span><span class="cx"> namespace JSC {
</span><span class="cx">
</span><span class="cx"> class ArityCheckFailReturnThunks;
</span><del>- class BuiltinExecutables;
</del><span class="cx"> class CodeBlock;
</span><span class="cx"> class CodeCache;
</span><span class="cx"> class CommonIdentifiers;
</span><span class="lines">@@ -499,8 +497,6 @@
</span><span class="cx"> void registerWatchpointForImpureProperty(const Identifier&, Watchpoint*);
</span><span class="cx"> // FIXME: Use AtomicString once it got merged with Identifier.
</span><span class="cx"> JS_EXPORT_PRIVATE void addImpureProperty(const String&);
</span><del>-
- BuiltinExecutables* builtinExecutables() { return m_builtinExecutables.get(); }
</del><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> friend class LLIntOffsetsExtractor;
</span><span class="lines">@@ -541,9 +537,10 @@
</span><span class="cx"> JSValue m_exception;
</span><span class="cx"> bool m_inDefineOwnProperty;
</span><span class="cx"> OwnPtr<CodeCache> m_codeCache;
</span><del>- LegacyProfiler* m_enabledProfiler;
- OwnPtr<BuiltinExecutables> m_builtinExecutables;
</del><span class="cx"> RefCountedArray<StackFrame> m_exceptionStack;
</span><ins>+
+ LegacyProfiler* m_enabledProfiler;
+
</ins><span class="cx"> HashMap<String, RefPtr<WatchpointSet>> m_impurePropertyWatchpointSets;
</span><span class="cx"> };
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/CMakeLists.txt (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/CMakeLists.txt        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/WebCore/CMakeLists.txt        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -101,7 +101,6 @@
</span><span class="cx"> "${JAVASCRIPTCORE_DIR}/API"
</span><span class="cx"> "${JAVASCRIPTCORE_DIR}/assembler"
</span><span class="cx"> "${JAVASCRIPTCORE_DIR}/bytecode"
</span><del>- "${JAVASCRIPTCORE_DIR}/builtins"
</del><span class="cx"> "${JAVASCRIPTCORE_DIR}/bytecompiler"
</span><span class="cx"> "${JAVASCRIPTCORE_DIR}/dfg"
</span><span class="cx"> "${JAVASCRIPTCORE_DIR}/disassembler"
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/WebCore/ChangeLog        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -1,3 +1,15 @@
</span><ins>+2014-01-31 Oliver Hunt <oliver@apple.com>
+
+ Rollout r163195 and related patches
+
+ * CMakeLists.txt:
+ * ForwardingHeaders/runtime/JSStringInlines.h: Removed.
+ * Modules/plugins/QuickTimePluginReplacement.cpp:
+ * bindings/js/JSIDBAnyCustom.cpp:
+ * bindings/js/JSIDBDatabaseCustom.cpp:
+ * bindings/js/JSIDBObjectStoreCustom.cpp:
+ * bindings/js/JSNodeFilterCondition.cpp:
+
</ins><span class="cx"> 2014-01-31 Simon Fraser <simon.fraser@apple.com>
</span><span class="cx">
</span><span class="cx"> Even when in fixed layout mode, some platforms need to do layout after a viewport change
</span></span></pre></div>
<a id="trunkSourceWebCoreForwardingHeadersruntimeJSStringInlinesh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/ForwardingHeaders/runtime/JSStringInlines.h (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ForwardingHeaders/runtime/JSStringInlines.h        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/WebCore/ForwardingHeaders/runtime/JSStringInlines.h        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -1,4 +0,0 @@
</span><del>-#ifndef WebCore_FWD_JSStringInlines_h
-#define WebCore_FWD_JSStringInlines_h
-#include <JavaScriptCore/JSStringInlines.h>
-#endif
</del></span></pre></div>
<a id="trunkSourceWebCoreModulespluginsQuickTimePluginReplacementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/plugins/QuickTimePluginReplacement.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/plugins/QuickTimePluginReplacement.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/WebCore/Modules/plugins/QuickTimePluginReplacement.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -46,7 +46,6 @@
</span><span class="cx"> #include <JavaScriptCore/APICast.h>
</span><span class="cx"> #include <JavaScriptCore/JSBase.h>
</span><span class="cx"> #include <JavaScriptCore/JSCJSValueInlines.h>
</span><del>-#include <JavaScriptCore/JSStringInlines.h>
</del><span class="cx">
</span><span class="cx"> using namespace JSC;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSIDBAnyCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSIDBAnyCustom.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSIDBAnyCustom.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/WebCore/bindings/js/JSIDBAnyCustom.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -47,7 +47,6 @@
</span><span class="cx"> #include "JSIDBObjectStore.h"
</span><span class="cx"> #include "JSIDBTransaction.h"
</span><span class="cx"> #include "SerializedScriptValue.h"
</span><del>-#include <runtime/JSStringInlines.h>
</del><span class="cx">
</span><span class="cx"> using namespace JSC;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSIDBDatabaseCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSIDBDatabaseCustom.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSIDBDatabaseCustom.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/WebCore/bindings/js/JSIDBDatabaseCustom.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -37,7 +37,7 @@
</span><span class="cx"> #include "IDBObjectStore.h"
</span><span class="cx"> #include "JSIDBObjectStore.h"
</span><span class="cx"> #include <runtime/Error.h>
</span><del>-#include <runtime/JSStringInlines.h>
</del><ins>+#include <runtime/JSString.h>
</ins><span class="cx">
</span><span class="cx"> using namespace JSC;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSIDBObjectStoreCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSIDBObjectStoreCustom.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSIDBObjectStoreCustom.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/WebCore/bindings/js/JSIDBObjectStoreCustom.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -36,7 +36,7 @@
</span><span class="cx"> #include "IDBObjectStore.h"
</span><span class="cx"> #include "JSIDBIndex.h"
</span><span class="cx"> #include <runtime/Error.h>
</span><del>-#include <runtime/JSStringInlines.h>
</del><ins>+#include <runtime/JSString.h>
</ins><span class="cx">
</span><span class="cx"> using namespace JSC;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSNodeFilterConditioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSNodeFilterCondition.cpp (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSNodeFilterCondition.cpp        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/WebCore/bindings/js/JSNodeFilterCondition.cpp        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -26,7 +26,6 @@
</span><span class="cx"> #include "NodeFilter.h"
</span><span class="cx"> #include <runtime/Error.h>
</span><span class="cx"> #include <runtime/JSLock.h>
</span><del>-#include <runtime/JSStringInlines.h>
</del><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebKitCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/CMakeLists.txt (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/CMakeLists.txt        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/WebKit/CMakeLists.txt        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -66,7 +66,6 @@
</span><span class="cx"> "${JAVASCRIPTCORE_DIR}/API"
</span><span class="cx"> "${JAVASCRIPTCORE_DIR}/assembler"
</span><span class="cx"> "${JAVASCRIPTCORE_DIR}/bytecode"
</span><del>- "${JAVASCRIPTCORE_DIR}/builtins"
</del><span class="cx"> "${JAVASCRIPTCORE_DIR}/bytecompiler"
</span><span class="cx"> "${JAVASCRIPTCORE_DIR}/disassembler"
</span><span class="cx"> "${JAVASCRIPTCORE_DIR}/dfg"
</span><span class="lines">@@ -79,7 +78,6 @@
</span><span class="cx"> "${JAVASCRIPTCORE_DIR}/profiler"
</span><span class="cx"> "${JAVASCRIPTCORE_DIR}/runtime"
</span><span class="cx"> "${WTF_DIR}"
</span><del>- "${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}"
</del><span class="cx"> "${DERIVED_SOURCES_WEBCORE_DIR}"
</span><span class="cx"> "${DERIVED_SOURCES_DIR}/ForwardingHeaders"
</span><span class="cx"> "${CMAKE_BINARY_DIR}"
</span></span></pre></div>
<a id="trunkSourceWebKitChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/ChangeLog (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/ChangeLog        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/WebKit/ChangeLog        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -1,3 +1,9 @@
</span><ins>+2014-01-31 Oliver Hunt <oliver@apple.com>
+
+ Rollout r163195 and related patches
+
+ * CMakeLists.txt:
+
</ins><span class="cx"> 2014-01-29 Oliver Hunt <oliver@apple.com>
</span><span class="cx">
</span><span class="cx"> Make it possible to implement JS builtins in JS
</span></span></pre></div>
<a id="trunkSourceWebKit2CMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/CMakeLists.txt (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/CMakeLists.txt        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/WebKit2/CMakeLists.txt        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -121,7 +121,6 @@
</span><span class="cx"> "${JAVASCRIPTCORE_DIR}/API"
</span><span class="cx"> "${JAVASCRIPTCORE_DIR}/assembler"
</span><span class="cx"> "${JAVASCRIPTCORE_DIR}/bytecode"
</span><del>- "${JAVASCRIPTCORE_DIR}/builtins"
</del><span class="cx"> "${JAVASCRIPTCORE_DIR}/bytecompiler"
</span><span class="cx"> "${JAVASCRIPTCORE_DIR}/collector/handles"
</span><span class="cx"> "${JAVASCRIPTCORE_DIR}/dfg"
</span><span class="lines">@@ -134,7 +133,6 @@
</span><span class="cx"> "${JAVASCRIPTCORE_DIR}/runtime"
</span><span class="cx"> "${WTF_DIR}"
</span><span class="cx"> "${DERIVED_SOURCES_DIR}"
</span><del>- "${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}"
</del><span class="cx"> "${DERIVED_SOURCES_WEBCORE_DIR}"
</span><span class="cx"> "${DERIVED_SOURCES_WEBKIT2_DIR}"
</span><span class="cx"> "${DERIVED_SOURCES_WEBKIT2_DIR}/include"
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/WebKit2/ChangeLog        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -1,3 +1,9 @@
</span><ins>+2014-01-31 Oliver Hunt <oliver@apple.com>
+
+ Rollout r163195 and related patches
+
+ * CMakeLists.txt:
+
</ins><span class="cx"> 2014-01-31 Tim Horton <timothy_horton@apple.com>
</span><span class="cx">
</span><span class="cx"> [wk2] PlatformCALayerRemoteCustom doesn't work on iOS
</span></span></pre></div>
<a id="trunkSourcecmakegtestCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/cmake/gtest/CMakeLists.txt (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/cmake/gtest/CMakeLists.txt        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Source/cmake/gtest/CMakeLists.txt        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -6,7 +6,6 @@
</span><span class="cx"> include_directories(${THIRDPARTY_DIR}/gtest
</span><span class="cx"> ${THIRDPARTY_DIR}/gtest/include
</span><span class="cx"> ${JAVASCRIPTCORE_DIR}
</span><del>- ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}
</del><span class="cx"> ${WTF_DIR}
</span><span class="cx"> )
</span><span class="cx">
</span></span></pre></div>
<a id="trunkToolsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Tools/ChangeLog (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ChangeLog        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Tools/ChangeLog        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -1,3 +1,11 @@
</span><ins>+2014-01-31 Oliver Hunt <oliver@apple.com>
+
+ Rollout r163195 and related patches
+
+ * DumpRenderTree/CMakeLists.txt:
+ * WebKitTestRunner/CMakeLists.txt:
+ * WinCELauncher/CMakeLists.txt:
+
</ins><span class="cx"> 2014-01-31 Daniel Bates <dabates@apple.com>
</span><span class="cx">
</span><span class="cx"> Attempt to fix Production Dashboard after <http://trac.webkit.org/changeset/163213>
</span></span></pre></div>
<a id="trunkToolsDumpRenderTreeCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Tools/DumpRenderTree/CMakeLists.txt (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/DumpRenderTree/CMakeLists.txt        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Tools/DumpRenderTree/CMakeLists.txt        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -58,7 +58,6 @@
</span><span class="cx"> ${JAVASCRIPTCORE_DIR}/profiler
</span><span class="cx"> ${JAVASCRIPTCORE_DIR}/runtime
</span><span class="cx"> ${JAVASCRIPTCORE_DIR}/ForwardingHeaders
</span><del>- ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}
</del><span class="cx"> ${TOOLS_DIR}/DumpRenderTree
</span><span class="cx"> ${WTF_DIR}
</span><span class="cx"> ${CMAKE_SOURCE_DIR}/Source
</span></span></pre></div>
<a id="trunkToolsWebKitTestRunnerCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WebKitTestRunner/CMakeLists.txt (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WebKitTestRunner/CMakeLists.txt        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Tools/WebKitTestRunner/CMakeLists.txt        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -28,7 +28,6 @@
</span><span class="cx"> ${WEBKIT_TESTRUNNER_DIR}/InjectedBundle/atk
</span><span class="cx"> ${JAVASCRIPTCORE_DIR}
</span><span class="cx"> ${JAVASCRIPTCORE_DIR}/ForwardingHeaders
</span><del>- ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}
</del><span class="cx"> ${WEBCORE_DIR}/editing
</span><span class="cx"> ${WEBCORE_DIR}/platform
</span><span class="cx"> ${WEBCORE_DIR}/platform/graphics
</span></span></pre></div>
<a id="trunkToolsWinCELauncherCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WinCELauncher/CMakeLists.txt (163224 => 163225)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WinCELauncher/CMakeLists.txt        2014-02-01 01:28:26 UTC (rev 163224)
+++ trunk/Tools/WinCELauncher/CMakeLists.txt        2014-02-01 01:37:59 UTC (rev 163225)
</span><span class="lines">@@ -6,7 +6,6 @@
</span><span class="cx"> "${WEBCORE_DIR}/platform/network"
</span><span class="cx"> "${WEBCORE_DIR}/platform/text"
</span><span class="cx"> "${JAVASCRIPTCORE_DIR}"
</span><del>- "${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}"
</del><span class="cx"> "${WTF_DIR}"
</span><span class="cx"> "${DERIVED_SOURCES_DIR}"
</span><span class="cx"> "${CMAKE_BINARY_DIR}"
</span></span></pre>
</div>
</div>
</body>
</html>