<!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>[173120] trunk/Source</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/173120">173120</a></dd>
<dt>Author</dt> <dd>commit-queue@webkit.org</dd>
<dt>Date</dt> <dd>2014-08-29 14:33:30 -0700 (Fri, 29 Aug 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>JavaScriptCore: Use ASCIILiteral where possible
https://bugs.webkit.org/show_bug.cgi?id=136179

Patch by Joseph Pecoraro &lt;pecoraro@apple.com&gt; on 2014-08-29
Reviewed by Michael Saboff.

Source/JavaScriptCore:

General string / character related changes. Use ASCIILiteral where
possible, jsNontrivialString where possible, and replace string
literals with character literals in some places.

No new tests, no changes to functionality.

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::nameForRegister):
* bytecompiler/NodesCodegen.cpp:
(JSC::PostfixNode::emitBytecode):
(JSC::PrefixNode::emitBytecode):
(JSC::AssignErrorNode::emitBytecode):
(JSC::ForInNode::emitMultiLoopBytecode):
(JSC::ForOfNode::emitBytecode):
(JSC::ObjectPatternNode::toString):
* dfg/DFGFunctionWhitelist.cpp:
(JSC::DFG::FunctionWhitelist::contains):
* dfg/DFGOperations.cpp:
(JSC::DFG::newTypedArrayWithSize):
(JSC::DFG::newTypedArrayWithOneArgument):
* inspector/ConsoleMessage.cpp:
(Inspector::ConsoleMessage::addToFrontend):
* inspector/InspectorBackendDispatcher.cpp:
(Inspector::InspectorBackendDispatcher::dispatch):
* inspector/ScriptCallStackFactory.cpp:
(Inspector::extractSourceInformationFromException):
* inspector/scripts/codegen/generator_templates.py:
* interpreter/StackVisitor.cpp:
(JSC::StackVisitor::Frame::functionName):
(JSC::StackVisitor::Frame::sourceURL):
* jit/JITOperations.cpp:
* jsc.cpp:
(functionDescribeArray):
(functionRun):
(functionLoad):
(functionReadFile):
(functionCheckSyntax):
(functionTransferArrayBuffer):
(runWithScripts):
(runInteractive):
* parser/Lexer.cpp:
(JSC::Lexer&lt;T&gt;::invalidCharacterMessage):
(JSC::Lexer&lt;T&gt;::parseString):
(JSC::Lexer&lt;T&gt;::parseStringSlowCase):
(JSC::Lexer&lt;T&gt;::lex):
* profiler/Profile.cpp:
(JSC::Profile::Profile):
* runtime/Arguments.cpp:
(JSC::argumentsFuncIterator):
* runtime/ArrayPrototype.cpp:
(JSC::performSlowSort):
(JSC::arrayProtoFuncSort):
* runtime/ExceptionHelpers.cpp:
(JSC::createError):
(JSC::createInvalidParameterError):
(JSC::createNotAConstructorError):
(JSC::createNotAFunctionError):
(JSC::createNotAnObjectError):
(JSC::createErrorForInvalidGlobalAssignment):
* runtime/FunctionPrototype.cpp:
(JSC::insertSemicolonIfNeeded):
* runtime/JSArray.cpp:
(JSC::JSArray::defineOwnProperty):
(JSC::JSArray::pop):
(JSC::JSArray::push):
* runtime/JSArrayBufferConstructor.cpp:
(JSC::JSArrayBufferConstructor::finishCreation):
* runtime/JSArrayBufferPrototype.cpp:
(JSC::arrayBufferProtoFuncSlice):
* runtime/JSDataView.cpp:
(JSC::JSDataView::create):
* runtime/JSDataViewPrototype.cpp:
(JSC::getData):
(JSC::setData):
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::reset):
* runtime/JSGlobalObjectFunctions.cpp:
(JSC::globalFuncProtoSetter):
* runtime/JSPromiseConstructor.cpp:
(JSC::JSPromiseConstructor::finishCreation):
* runtime/LiteralParser.cpp:
(JSC::LiteralParser&lt;CharType&gt;::Lexer::lex):
(JSC::LiteralParser&lt;CharType&gt;::Lexer::lexString):
(JSC::LiteralParser&lt;CharType&gt;::parse):
* runtime/LiteralParser.h:
(JSC::LiteralParser::getErrorMessage):
* runtime/TypeSet.cpp:
(JSC::TypeSet::seenTypes):
(JSC::TypeSet::displayName):
(JSC::TypeSet::allPrimitiveTypeNames):
(JSC::StructureShape::propertyHash):
(JSC::StructureShape::stringRepresentation):

Source/WTF:

* wtf/text/WTFString.cpp:
(asciiDebug):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoreChangeLog">trunk/Source/JavaScriptCore/ChangeLog</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecodeCodeBlockcpp">trunk/Source/JavaScriptCore/bytecode/CodeBlock.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecompilerNodesCodegencpp">trunk/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGFunctionWhitelistcpp">trunk/Source/JavaScriptCore/dfg/DFGFunctionWhitelist.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGOperationscpp">trunk/Source/JavaScriptCore/dfg/DFGOperations.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorConsoleMessagecpp">trunk/Source/JavaScriptCore/inspector/ConsoleMessage.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorInspectorBackendDispatchercpp">trunk/Source/JavaScriptCore/inspector/InspectorBackendDispatcher.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorScriptCallStackFactorycpp">trunk/Source/JavaScriptCore/inspector/ScriptCallStackFactory.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerator_templatespy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generator_templates.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinterpreterStackVisitorcpp">trunk/Source/JavaScriptCore/interpreter/StackVisitor.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorejitJITOperationscpp">trunk/Source/JavaScriptCore/jit/JITOperations.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorejsccpp">trunk/Source/JavaScriptCore/jsc.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreparserLexercpp">trunk/Source/JavaScriptCore/parser/Lexer.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreprofilerProfilecpp">trunk/Source/JavaScriptCore/profiler/Profile.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeArgumentscpp">trunk/Source/JavaScriptCore/runtime/Arguments.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeArrayPrototypecpp">trunk/Source/JavaScriptCore/runtime/ArrayPrototype.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeExceptionHelperscpp">trunk/Source/JavaScriptCore/runtime/ExceptionHelpers.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeFunctionPrototypecpp">trunk/Source/JavaScriptCore/runtime/FunctionPrototype.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSArraycpp">trunk/Source/JavaScriptCore/runtime/JSArray.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSArrayBufferConstructorcpp">trunk/Source/JavaScriptCore/runtime/JSArrayBufferConstructor.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSArrayBufferPrototypecpp">trunk/Source/JavaScriptCore/runtime/JSArrayBufferPrototype.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSDataViewcpp">trunk/Source/JavaScriptCore/runtime/JSDataView.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSDataViewPrototypecpp">trunk/Source/JavaScriptCore/runtime/JSDataViewPrototype.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSGlobalObjectcpp">trunk/Source/JavaScriptCore/runtime/JSGlobalObject.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSGlobalObjectFunctionscpp">trunk/Source/JavaScriptCore/runtime/JSGlobalObjectFunctions.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSPromiseConstructorcpp">trunk/Source/JavaScriptCore/runtime/JSPromiseConstructor.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeLiteralParsercpp">trunk/Source/JavaScriptCore/runtime/LiteralParser.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeLiteralParserh">trunk/Source/JavaScriptCore/runtime/LiteralParser.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeTypeSetcpp">trunk/Source/JavaScriptCore/runtime/TypeSet.cpp</a></li>
<li><a href="#trunkSourceWTFChangeLog">trunk/Source/WTF/ChangeLog</a></li>
<li><a href="#trunkSourceWTFwtftextWTFStringcpp">trunk/Source/WTF/wtf/text/WTFString.cpp</a></li>
</ul>

<h3>Property Changed</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerator_templatespy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generator_templates.py</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ChangeLog (173119 => 173120)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ChangeLog        2014-08-29 21:32:40 UTC (rev 173119)
+++ trunk/Source/JavaScriptCore/ChangeLog        2014-08-29 21:33:30 UTC (rev 173120)
</span><span class="lines">@@ -1,3 +1,103 @@
</span><ins>+2014-08-29  Joseph Pecoraro  &lt;pecoraro@apple.com&gt;
+
+        JavaScriptCore: Use ASCIILiteral where possible
+        https://bugs.webkit.org/show_bug.cgi?id=136179
+
+        Reviewed by Michael Saboff.
+
+        General string / character related changes. Use ASCIILiteral where
+        possible, jsNontrivialString where possible, and replace string
+        literals with character literals in some places.
+
+        No new tests, no changes to functionality.
+
+        * bytecode/CodeBlock.cpp:
+        (JSC::CodeBlock::nameForRegister):
+        * bytecompiler/NodesCodegen.cpp:
+        (JSC::PostfixNode::emitBytecode):
+        (JSC::PrefixNode::emitBytecode):
+        (JSC::AssignErrorNode::emitBytecode):
+        (JSC::ForInNode::emitMultiLoopBytecode):
+        (JSC::ForOfNode::emitBytecode):
+        (JSC::ObjectPatternNode::toString):
+        * dfg/DFGFunctionWhitelist.cpp:
+        (JSC::DFG::FunctionWhitelist::contains):
+        * dfg/DFGOperations.cpp:
+        (JSC::DFG::newTypedArrayWithSize):
+        (JSC::DFG::newTypedArrayWithOneArgument):
+        * inspector/ConsoleMessage.cpp:
+        (Inspector::ConsoleMessage::addToFrontend):
+        * inspector/InspectorBackendDispatcher.cpp:
+        (Inspector::InspectorBackendDispatcher::dispatch):
+        * inspector/ScriptCallStackFactory.cpp:
+        (Inspector::extractSourceInformationFromException):
+        * inspector/scripts/codegen/generator_templates.py:
+        * interpreter/StackVisitor.cpp:
+        (JSC::StackVisitor::Frame::functionName):
+        (JSC::StackVisitor::Frame::sourceURL):
+        * jit/JITOperations.cpp:
+        * jsc.cpp:
+        (functionDescribeArray):
+        (functionRun):
+        (functionLoad):
+        (functionReadFile):
+        (functionCheckSyntax):
+        (functionTransferArrayBuffer):
+        (runWithScripts):
+        (runInteractive):
+        * parser/Lexer.cpp:
+        (JSC::Lexer&lt;T&gt;::invalidCharacterMessage):
+        (JSC::Lexer&lt;T&gt;::parseString):
+        (JSC::Lexer&lt;T&gt;::parseStringSlowCase):
+        (JSC::Lexer&lt;T&gt;::lex):
+        * profiler/Profile.cpp:
+        (JSC::Profile::Profile):
+        * runtime/Arguments.cpp:
+        (JSC::argumentsFuncIterator):
+        * runtime/ArrayPrototype.cpp:
+        (JSC::performSlowSort):
+        (JSC::arrayProtoFuncSort):
+        * runtime/ExceptionHelpers.cpp:
+        (JSC::createError):
+        (JSC::createInvalidParameterError):
+        (JSC::createNotAConstructorError):
+        (JSC::createNotAFunctionError):
+        (JSC::createNotAnObjectError):
+        (JSC::createErrorForInvalidGlobalAssignment):
+        * runtime/FunctionPrototype.cpp:
+        (JSC::insertSemicolonIfNeeded):
+        * runtime/JSArray.cpp:
+        (JSC::JSArray::defineOwnProperty):
+        (JSC::JSArray::pop):
+        (JSC::JSArray::push):
+        * runtime/JSArrayBufferConstructor.cpp:
+        (JSC::JSArrayBufferConstructor::finishCreation):
+        * runtime/JSArrayBufferPrototype.cpp:
+        (JSC::arrayBufferProtoFuncSlice):
+        * runtime/JSDataView.cpp:
+        (JSC::JSDataView::create):
+        * runtime/JSDataViewPrototype.cpp:
+        (JSC::getData):
+        (JSC::setData):
+        * runtime/JSGlobalObject.cpp:
+        (JSC::JSGlobalObject::reset):
+        * runtime/JSGlobalObjectFunctions.cpp:
+        (JSC::globalFuncProtoSetter):
+        * runtime/JSPromiseConstructor.cpp:
+        (JSC::JSPromiseConstructor::finishCreation):
+        * runtime/LiteralParser.cpp:
+        (JSC::LiteralParser&lt;CharType&gt;::Lexer::lex):
+        (JSC::LiteralParser&lt;CharType&gt;::Lexer::lexString):
+        (JSC::LiteralParser&lt;CharType&gt;::parse):
+        * runtime/LiteralParser.h:
+        (JSC::LiteralParser::getErrorMessage):
+        * runtime/TypeSet.cpp:
+        (JSC::TypeSet::seenTypes):
+        (JSC::TypeSet::displayName):
+        (JSC::TypeSet::allPrimitiveTypeNames):
+        (JSC::StructureShape::propertyHash):
+        (JSC::StructureShape::stringRepresentation):
+
</ins><span class="cx"> 2014-08-29  Csaba Osztrogonác  &lt;ossy@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Unreviwed, remove empty directories.
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodeCodeBlockcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/CodeBlock.cpp (173119 => 173120)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/CodeBlock.cpp        2014-08-29 21:32:40 UTC (rev 173119)
+++ trunk/Source/JavaScriptCore/bytecode/CodeBlock.cpp        2014-08-29 21:33:30 UTC (rev 173120)
</span><span class="lines">@@ -3845,7 +3845,7 @@
</span><span class="cx">             return ASCIILiteral(&quot;real arguments&quot;);
</span><span class="cx">     }
</span><span class="cx">     if (virtualRegister.isArgument())
</span><del>-        return String::format(&quot;arguments[%3d]&quot;, virtualRegister.toArgument()).impl();
</del><ins>+        return String::format(&quot;arguments[%3d]&quot;, virtualRegister.toArgument());
</ins><span class="cx"> 
</span><span class="cx">     return &quot;&quot;;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecompilerNodesCodegencpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp (173119 => 173120)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp        2014-08-29 21:32:40 UTC (rev 173119)
+++ trunk/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp        2014-08-29 21:33:30 UTC (rev 173120)
</span><span class="lines">@@ -891,8 +891,8 @@
</span><span class="cx">         return emitDot(generator, dst);
</span><span class="cx"> 
</span><span class="cx">     return emitThrowReferenceError(generator, m_operator == OpPlusPlus
</span><del>-        ? &quot;Postfix ++ operator applied to value that is not a reference.&quot;
-        : &quot;Postfix -- operator applied to value that is not a reference.&quot;);
</del><ins>+        ? ASCIILiteral(&quot;Postfix ++ operator applied to value that is not a reference.&quot;)
+        : ASCIILiteral(&quot;Postfix -- operator applied to value that is not a reference.&quot;));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // ------------------------------ DeleteResolveNode -----------------------------------
</span><span class="lines">@@ -1074,8 +1074,8 @@
</span><span class="cx">         return emitDot(generator, dst);
</span><span class="cx"> 
</span><span class="cx">     return emitThrowReferenceError(generator, m_operator == OpPlusPlus
</span><del>-        ? &quot;Prefix ++ operator applied to value that is not a reference.&quot;
-        : &quot;Prefix -- operator applied to value that is not a reference.&quot;);
</del><ins>+        ? ASCIILiteral(&quot;Prefix ++ operator applied to value that is not a reference.&quot;)
+        : ASCIILiteral(&quot;Prefix -- operator applied to value that is not a reference.&quot;));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // ------------------------------ Unary Operation Nodes -----------------------------------
</span><span class="lines">@@ -1613,7 +1613,7 @@
</span><span class="cx"> 
</span><span class="cx"> RegisterID* AssignErrorNode::emitBytecode(BytecodeGenerator&amp; generator, RegisterID*)
</span><span class="cx"> {
</span><del>-    return emitThrowReferenceError(generator, &quot;Left side of assignment is not a reference.&quot;);
</del><ins>+    return emitThrowReferenceError(generator, ASCIILiteral(&quot;Left side of assignment is not a reference.&quot;));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // ------------------------------ AssignBracketNode -----------------------------------
</span><span class="lines">@@ -2035,7 +2035,7 @@
</span><span class="cx"> void ForInNode::emitMultiLoopBytecode(BytecodeGenerator&amp; generator, RegisterID* dst)
</span><span class="cx"> {
</span><span class="cx">     if (!m_lexpr-&gt;isAssignmentLocation()) {
</span><del>-        emitThrowReferenceError(generator, &quot;Left side of for-in statement is not a reference.&quot;);
</del><ins>+        emitThrowReferenceError(generator, ASCIILiteral(&quot;Left side of for-in statement is not a reference.&quot;));
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -2167,7 +2167,7 @@
</span><span class="cx"> void ForOfNode::emitBytecode(BytecodeGenerator&amp; generator, RegisterID* dst)
</span><span class="cx"> {
</span><span class="cx">     if (!m_lexpr-&gt;isAssignmentLocation()) {
</span><del>-        emitThrowReferenceError(generator, &quot;Left side of for-of statement is not a reference.&quot;);
</del><ins>+        emitThrowReferenceError(generator, ASCIILiteral(&quot;Left side of for-of statement is not a reference.&quot;));
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx">     
</span><span class="lines">@@ -2784,7 +2784,7 @@
</span><span class="cx">             builder.append('&quot;');
</span><span class="cx">         } else
</span><span class="cx">             builder.append(m_targetPatterns[i].propertyName.string());
</span><del>-        builder.append(&quot;:&quot;);
</del><ins>+        builder.append(':');
</ins><span class="cx">         m_targetPatterns[i].pattern-&gt;toString(builder);
</span><span class="cx">         if (i &lt; m_targetPatterns.size() - 1)
</span><span class="cx">             builder.append(',');
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGFunctionWhitelistcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGFunctionWhitelist.cpp (173119 => 173120)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGFunctionWhitelist.cpp        2014-08-29 21:32:40 UTC (rev 173119)
+++ trunk/Source/JavaScriptCore/dfg/DFGFunctionWhitelist.cpp        2014-08-29 21:33:30 UTC (rev 173120)
</span><span class="lines">@@ -106,10 +106,7 @@
</span><span class="cx">     if (m_entries.contains(hash))
</span><span class="cx">         return true;
</span><span class="cx"> 
</span><del>-    String nameAndHash = name;
-    nameAndHash.append('#');
-    nameAndHash.append(hash);
-    return m_entries.contains(nameAndHash);
</del><ins>+    return m_entries.contains(name + '#' + hash);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } } // namespace JSC::DFG
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGOperationscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGOperations.cpp (173119 => 173120)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGOperations.cpp        2014-08-29 21:32:40 UTC (rev 173119)
+++ trunk/Source/JavaScriptCore/dfg/DFGOperations.cpp        2014-08-29 21:33:30 UTC (rev 173120)
</span><span class="lines">@@ -137,7 +137,7 @@
</span><span class="cx">     VM&amp; vm = exec-&gt;vm();
</span><span class="cx">     NativeCallFrameTracer tracer(&amp;vm, exec);
</span><span class="cx">     if (size &lt; 0) {
</span><del>-        vm.throwException(exec, createRangeError(exec, &quot;Requested length is negative&quot;));
</del><ins>+        vm.throwException(exec, createRangeError(exec, ASCIILiteral(&quot;Requested length is negative&quot;)));
</ins><span class="cx">         return 0;
</span><span class="cx">     }
</span><span class="cx">     return bitwise_cast&lt;char*&gt;(ViewClass::create(exec, structure, size));
</span><span class="lines">@@ -156,7 +156,7 @@
</span><span class="cx">         RefPtr&lt;ArrayBuffer&gt; buffer = jsBuffer-&gt;impl();
</span><span class="cx">         
</span><span class="cx">         if (buffer-&gt;byteLength() % ViewClass::elementSize) {
</span><del>-            vm.throwException(exec, createRangeError(exec, &quot;ArrayBuffer length minus the byteOffset is not a multiple of the element size&quot;));
</del><ins>+            vm.throwException(exec, createRangeError(exec, ASCIILiteral(&quot;ArrayBuffer length minus the byteOffset is not a multiple of the element size&quot;)));
</ins><span class="cx">             return 0;
</span><span class="cx">         }
</span><span class="cx">         return bitwise_cast&lt;char*&gt;(
</span><span class="lines">@@ -183,18 +183,18 @@
</span><span class="cx">     if (value.isInt32())
</span><span class="cx">         length = value.asInt32();
</span><span class="cx">     else if (!value.isNumber()) {
</span><del>-        vm.throwException(exec, createTypeError(exec, &quot;Invalid array length argument&quot;));
</del><ins>+        vm.throwException(exec, createTypeError(exec, ASCIILiteral(&quot;Invalid array length argument&quot;)));
</ins><span class="cx">         return 0;
</span><span class="cx">     } else {
</span><span class="cx">         length = static_cast&lt;int&gt;(value.asNumber());
</span><span class="cx">         if (length != value.asNumber()) {
</span><del>-            vm.throwException(exec, createTypeError(exec, &quot;Invalid array length argument (fractional lengths not allowed)&quot;));
</del><ins>+            vm.throwException(exec, createTypeError(exec, ASCIILiteral(&quot;Invalid array length argument (fractional lengths not allowed)&quot;)));
</ins><span class="cx">             return 0;
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     if (length &lt; 0) {
</span><del>-        vm.throwException(exec, createRangeError(exec, &quot;Requested length is negative&quot;));
</del><ins>+        vm.throwException(exec, createRangeError(exec, ASCIILiteral(&quot;Requested length is negative&quot;)));
</ins><span class="cx">         return 0;
</span><span class="cx">     }
</span><span class="cx">     
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorConsoleMessagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/ConsoleMessage.cpp (173119 => 173120)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/ConsoleMessage.cpp        2014-08-29 21:32:40 UTC (rev 173119)
+++ trunk/Source/JavaScriptCore/inspector/ConsoleMessage.cpp        2014-08-29 21:33:30 UTC (rev 173120)
</span><span class="lines">@@ -211,7 +211,7 @@
</span><span class="cx">                 jsonArgs-&gt;addItem(inspectorValue);
</span><span class="cx">             } else {
</span><span class="cx">                 for (unsigned i = 0; i &lt; m_arguments-&gt;argumentCount(); ++i) {
</span><del>-                    RefPtr&lt;Inspector::Protocol::Runtime::RemoteObject&gt; inspectorValue = injectedScript.wrapObject(m_arguments-&gt;argumentAt(i), &quot;console&quot;, generatePreview);
</del><ins>+                    RefPtr&lt;Inspector::Protocol::Runtime::RemoteObject&gt; inspectorValue = injectedScript.wrapObject(m_arguments-&gt;argumentAt(i), ASCIILiteral(&quot;console&quot;), generatePreview);
</ins><span class="cx">                     if (!inspectorValue) {
</span><span class="cx">                         ASSERT_NOT_REACHED();
</span><span class="cx">                         return;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorInspectorBackendDispatchercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/InspectorBackendDispatcher.cpp (173119 => 173120)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/InspectorBackendDispatcher.cpp        2014-08-29 21:32:40 UTC (rev 173119)
+++ trunk/Source/JavaScriptCore/inspector/InspectorBackendDispatcher.cpp        2014-08-29 21:33:30 UTC (rev 173120)
</span><span class="lines">@@ -90,7 +90,7 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    RefPtr&lt;InspectorValue&gt; callIdValue = messageObject-&gt;get(&quot;id&quot;);
</del><ins>+    RefPtr&lt;InspectorValue&gt; callIdValue = messageObject-&gt;get(ASCIILiteral(&quot;id&quot;));
</ins><span class="cx">     if (!callIdValue) {
</span><span class="cx">         reportProtocolError(nullptr, InvalidRequest, ASCIILiteral(&quot;'id' property was not found&quot;));
</span><span class="cx">         return;
</span><span class="lines">@@ -102,7 +102,7 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    RefPtr&lt;InspectorValue&gt; methodValue = messageObject-&gt;get(&quot;method&quot;);
</del><ins>+    RefPtr&lt;InspectorValue&gt; methodValue = messageObject-&gt;get(ASCIILiteral(&quot;method&quot;));
</ins><span class="cx">     if (!methodValue) {
</span><span class="cx">         reportProtocolError(&amp;callId, InvalidRequest, ASCIILiteral(&quot;'method' property wasn't found&quot;));
</span><span class="cx">         return;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorScriptCallStackFactorycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/ScriptCallStackFactory.cpp (173119 => 173120)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/ScriptCallStackFactory.cpp        2014-08-29 21:32:40 UTC (rev 173119)
+++ trunk/Source/JavaScriptCore/inspector/ScriptCallStackFactory.cpp        2014-08-29 21:33:30 UTC (rev 173120)
</span><span class="lines">@@ -124,7 +124,7 @@
</span><span class="cx">     JSValue columnValue = exceptionObject-&gt;getDirect(exec-&gt;vm(), Identifier(exec, &quot;column&quot;));
</span><span class="cx">     *columnNumber = columnValue &amp;&amp; columnValue.isNumber() ? int(columnValue.toNumber(exec)) : 0;
</span><span class="cx">     JSValue sourceURLValue = exceptionObject-&gt;getDirect(exec-&gt;vm(), Identifier(exec, &quot;sourceURL&quot;));
</span><del>-    *sourceURL = sourceURLValue &amp;&amp; sourceURLValue.isString() ? sourceURLValue.toString(exec)-&gt;value(exec) : String(&quot;undefined&quot;);
</del><ins>+    *sourceURL = sourceURLValue &amp;&amp; sourceURLValue.isString() ? sourceURLValue.toString(exec)-&gt;value(exec) : ASCIILiteral(&quot;undefined&quot;);
</ins><span class="cx">     exec-&gt;clearException();
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerator_templatespy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generator_templates.py (173119 => 173120)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generator_templates.py        2014-08-29 21:32:40 UTC (rev 173119)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generator_templates.py        2014-08-29 21:33:30 UTC (rev 173120)
</span><span class="lines">@@ -129,7 +129,7 @@
</span><span class="cx"> 
</span><span class="cx"> ${dispatchCases}
</span><span class="cx">     else
</span><del>-        m_backendDispatcher-&gt;reportProtocolError(&amp;callId, InspectorBackendDispatcher::MethodNotFound, String(&quot;'&quot;) + &quot;${domainName}&quot; + '.' + method + &quot;' was not found&quot;);
</del><ins>+        m_backendDispatcher-&gt;reportProtocolError(&amp;callId, InspectorBackendDispatcher::MethodNotFound, makeString('\\'', &quot;${domainName}&quot;, '.', method, &quot;' was not found&quot;));
</ins><span class="cx"> }&quot;&quot;&quot;)
</span><span class="cx"> 
</span><span class="cx">     BackendDispatcherImplementationLargeSwitch = (
</span><span class="lines">@@ -154,7 +154,7 @@
</span><span class="cx"> 
</span><span class="cx">     HashMap&lt;String, CallHandler&gt;::iterator it = dispatchMap.find(method);
</span><span class="cx">     if (it == dispatchMap.end()) {
</span><del>-        m_backendDispatcher-&gt;reportProtocolError(&amp;callId, InspectorBackendDispatcher::MethodNotFound, String(&quot;'&quot;) + &quot;${domainName}&quot; + '.' + method + &quot;' was not found&quot;);
</del><ins>+        m_backendDispatcher-&gt;reportProtocolError(&amp;callId, InspectorBackendDispatcher::MethodNotFound, makeString('\\'', &quot;${domainName}&quot;, '.', method, &quot;' was not found&quot;));
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">Property changes on: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generator_templates.py
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svnexecutable"></a>
<div class="addfile"><h4>Added: svn:executable</h4></div>
<a id="trunkSourceJavaScriptCoreinterpreterStackVisitorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/interpreter/StackVisitor.cpp (173119 => 173120)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/interpreter/StackVisitor.cpp        2014-08-29 21:32:40 UTC (rev 173119)
+++ trunk/Source/JavaScriptCore/interpreter/StackVisitor.cpp        2014-08-29 21:33:30 UTC (rev 173120)
</span><span class="lines">@@ -196,7 +196,7 @@
</span><span class="cx"> 
</span><span class="cx">     switch (codeType()) {
</span><span class="cx">     case CodeType::Eval:
</span><del>-        traceLine = &quot;eval code&quot;;
</del><ins>+        traceLine = ASCIILiteral(&quot;eval code&quot;);
</ins><span class="cx">         break;
</span><span class="cx">     case CodeType::Native:
</span><span class="cx">         if (callee)
</span><span class="lines">@@ -206,7 +206,7 @@
</span><span class="cx">         traceLine = getCalculatedDisplayName(callFrame(), callee).impl();
</span><span class="cx">         break;
</span><span class="cx">     case CodeType::Global:
</span><del>-        traceLine = &quot;global code&quot;;
</del><ins>+        traceLine = ASCIILiteral(&quot;global code&quot;);
</ins><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx">     return traceLine.isNull() ? emptyString() : traceLine;
</span><span class="lines">@@ -226,7 +226,7 @@
</span><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx">     case CodeType::Native:
</span><del>-        traceLine = &quot;[native code]&quot;;
</del><ins>+        traceLine = ASCIILiteral(&quot;[native code]&quot;);
</ins><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx">     return traceLine.isNull() ? emptyString() : traceLine;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejitJITOperationscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jit/JITOperations.cpp (173119 => 173120)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jit/JITOperations.cpp        2014-08-29 21:32:40 UTC (rev 173119)
+++ trunk/Source/JavaScriptCore/jit/JITOperations.cpp        2014-08-29 21:33:30 UTC (rev 173120)
</span><span class="lines">@@ -969,7 +969,7 @@
</span><span class="cx">     NativeCallFrameTracer tracer(&amp;vm, exec);
</span><span class="cx">     RegExp* regexp = static_cast&lt;RegExp*&gt;(regexpPtr);
</span><span class="cx">     if (!regexp-&gt;isValid()) {
</span><del>-        vm.throwException(exec, createSyntaxError(exec, &quot;Invalid flags supplied to RegExp constructor.&quot;));
</del><ins>+        vm.throwException(exec, createSyntaxError(exec, ASCIILiteral(&quot;Invalid flags supplied to RegExp constructor.&quot;)));
</ins><span class="cx">         return JSValue::encode(jsUndefined());
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -1615,7 +1615,7 @@
</span><span class="cx">     bool couldDelete = baseObj-&gt;methodTable(vm)-&gt;deleteProperty(baseObj, exec, *identifier);
</span><span class="cx">     JSValue result = jsBoolean(couldDelete);
</span><span class="cx">     if (!couldDelete &amp;&amp; exec-&gt;codeBlock()-&gt;isStrictMode())
</span><del>-        vm.throwException(exec, createTypeError(exec, &quot;Unable to delete property.&quot;));
</del><ins>+        vm.throwException(exec, createTypeError(exec, ASCIILiteral(&quot;Unable to delete property.&quot;)));
</ins><span class="cx">     return JSValue::encode(result);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejsccpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jsc.cpp (173119 => 173120)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jsc.cpp        2014-08-29 21:32:40 UTC (rev 173119)
+++ trunk/Source/JavaScriptCore/jsc.cpp        2014-08-29 21:33:30 UTC (rev 173120)
</span><span class="lines">@@ -714,8 +714,8 @@
</span><span class="cx">         return JSValue::encode(jsUndefined());
</span><span class="cx">     JSObject* object = jsDynamicCast&lt;JSObject*&gt;(exec-&gt;argument(0));
</span><span class="cx">     if (!object)
</span><del>-        return JSValue::encode(jsString(exec, &quot;&lt;not object&gt;&quot;));
-    return JSValue::encode(jsString(exec, toString(&quot;&lt;Public length: &quot;, object-&gt;getArrayLength(), &quot;; vector length: &quot;, object-&gt;getVectorLength(), &quot;&gt;&quot;)));
</del><ins>+        return JSValue::encode(jsNontrivialString(exec, ASCIILiteral(&quot;&lt;not object&gt;&quot;)));
+    return JSValue::encode(jsNontrivialString(exec, toString(&quot;&lt;Public length: &quot;, object-&gt;getArrayLength(), &quot;; vector length: &quot;, object-&gt;getVectorLength(), &quot;&gt;&quot;)));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> class FunctionJSCStackFunctor {
</span><span class="lines">@@ -869,7 +869,7 @@
</span><span class="cx">     String fileName = exec-&gt;argument(0).toString(exec)-&gt;value(exec);
</span><span class="cx">     Vector&lt;char&gt; script;
</span><span class="cx">     if (!fillBufferWithContentsOfFile(fileName, script))
</span><del>-        return JSValue::encode(exec-&gt;vm().throwException(exec, createError(exec, &quot;Could not open file.&quot;)));
</del><ins>+        return JSValue::encode(exec-&gt;vm().throwException(exec, createError(exec, ASCIILiteral(&quot;Could not open file.&quot;))));
</ins><span class="cx"> 
</span><span class="cx">     GlobalObject* globalObject = GlobalObject::create(exec-&gt;vm(), GlobalObject::createStructure(exec-&gt;vm(), jsNull()), Vector&lt;String&gt;());
</span><span class="cx"> 
</span><span class="lines">@@ -898,7 +898,7 @@
</span><span class="cx">     String fileName = exec-&gt;argument(0).toString(exec)-&gt;value(exec);
</span><span class="cx">     Vector&lt;char&gt; script;
</span><span class="cx">     if (!fillBufferWithContentsOfFile(fileName, script))
</span><del>-        return JSValue::encode(exec-&gt;vm().throwException(exec, createError(exec, &quot;Could not open file.&quot;)));
</del><ins>+        return JSValue::encode(exec-&gt;vm().throwException(exec, createError(exec, ASCIILiteral(&quot;Could not open file.&quot;))));
</ins><span class="cx"> 
</span><span class="cx">     JSGlobalObject* globalObject = exec-&gt;lexicalGlobalObject();
</span><span class="cx">     
</span><span class="lines">@@ -914,7 +914,7 @@
</span><span class="cx">     String fileName = exec-&gt;argument(0).toString(exec)-&gt;value(exec);
</span><span class="cx">     Vector&lt;char&gt; script;
</span><span class="cx">     if (!fillBufferWithContentsOfFile(fileName, script))
</span><del>-        return JSValue::encode(exec-&gt;vm().throwException(exec, createError(exec, &quot;Could not open file.&quot;)));
</del><ins>+        return JSValue::encode(exec-&gt;vm().throwException(exec, createError(exec, ASCIILiteral(&quot;Could not open file.&quot;))));
</ins><span class="cx"> 
</span><span class="cx">     return JSValue::encode(jsString(exec, stringFromUTF(script.data())));
</span><span class="cx"> }
</span><span class="lines">@@ -924,7 +924,7 @@
</span><span class="cx">     String fileName = exec-&gt;argument(0).toString(exec)-&gt;value(exec);
</span><span class="cx">     Vector&lt;char&gt; script;
</span><span class="cx">     if (!fillBufferWithContentsOfFile(fileName, script))
</span><del>-        return JSValue::encode(exec-&gt;vm().throwException(exec, createError(exec, &quot;Could not open file.&quot;)));
</del><ins>+        return JSValue::encode(exec-&gt;vm().throwException(exec, createError(exec, ASCIILiteral(&quot;Could not open file.&quot;))));
</ins><span class="cx"> 
</span><span class="cx">     JSGlobalObject* globalObject = exec-&gt;lexicalGlobalObject();
</span><span class="cx"> 
</span><span class="lines">@@ -1011,11 +1011,11 @@
</span><span class="cx"> EncodedJSValue JSC_HOST_CALL functionTransferArrayBuffer(ExecState* exec)
</span><span class="cx"> {
</span><span class="cx">     if (exec-&gt;argumentCount() &lt; 1)
</span><del>-        return JSValue::encode(exec-&gt;vm().throwException(exec, createError(exec, &quot;Not enough arguments&quot;)));
</del><ins>+        return JSValue::encode(exec-&gt;vm().throwException(exec, createError(exec, ASCIILiteral(&quot;Not enough arguments&quot;))));
</ins><span class="cx">     
</span><span class="cx">     JSArrayBuffer* buffer = jsDynamicCast&lt;JSArrayBuffer*&gt;(exec-&gt;argument(0));
</span><span class="cx">     if (!buffer)
</span><del>-        return JSValue::encode(exec-&gt;vm().throwException(exec, createError(exec, &quot;Expected an array buffer&quot;)));
</del><ins>+        return JSValue::encode(exec-&gt;vm().throwException(exec, createError(exec, ASCIILiteral(&quot;Expected an array buffer&quot;))));
</ins><span class="cx">     
</span><span class="cx">     ArrayBufferContents dummyContents;
</span><span class="cx">     buffer-&gt;impl()-&gt;transfer(dummyContents);
</span><span class="lines">@@ -1186,7 +1186,7 @@
</span><span class="cx">             script = scriptBuffer.data();
</span><span class="cx">         } else {
</span><span class="cx">             script = scripts[i].argument;
</span><del>-            fileName = &quot;[Command Line]&quot;;
</del><ins>+            fileName = ASCIILiteral(&quot;[Command Line]&quot;);
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         vm.startSampling();
</span><span class="lines">@@ -1228,7 +1228,7 @@
</span><span class="cx"> 
</span><span class="cx"> static void runInteractive(GlobalObject* globalObject)
</span><span class="cx"> {
</span><del>-    String interpreterName(&quot;Interpreter&quot;);
</del><ins>+    String interpreterName(ASCIILiteral(&quot;Interpreter&quot;));
</ins><span class="cx">     
</span><span class="cx">     bool shouldQuit = false;
</span><span class="cx">     while (!shouldQuit) {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreparserLexercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/parser/Lexer.cpp (173119 => 173120)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/parser/Lexer.cpp        2014-08-29 21:32:40 UTC (rev 173119)
+++ trunk/Source/JavaScriptCore/parser/Lexer.cpp        2014-08-29 21:33:30 UTC (rev 173120)
</span><span class="lines">@@ -506,21 +506,21 @@
</span><span class="cx"> {
</span><span class="cx">     switch (m_current) {
</span><span class="cx">     case 0:
</span><del>-        return &quot;Invalid character: '\\0'&quot;;
</del><ins>+        return ASCIILiteral(&quot;Invalid character: '\\0'&quot;);
</ins><span class="cx">     case 10:
</span><del>-        return &quot;Invalid character: '\\n'&quot;;
</del><ins>+        return ASCIILiteral(&quot;Invalid character: '\\n'&quot;);
</ins><span class="cx">     case 11:
</span><del>-        return &quot;Invalid character: '\\v'&quot;;
</del><ins>+        return ASCIILiteral(&quot;Invalid character: '\\v'&quot;);
</ins><span class="cx">     case 13:
</span><del>-        return &quot;Invalid character: '\\r'&quot;;
</del><ins>+        return ASCIILiteral(&quot;Invalid character: '\\r'&quot;);
</ins><span class="cx">     case 35:
</span><del>-        return &quot;Invalid character: '#'&quot;;
</del><ins>+        return ASCIILiteral(&quot;Invalid character: '#'&quot;);
</ins><span class="cx">     case 64:
</span><del>-        return &quot;Invalid character: '@'&quot;;
</del><ins>+        return ASCIILiteral(&quot;Invalid character: '@'&quot;);
</ins><span class="cx">     case 96:
</span><del>-        return &quot;Invalid character: '`'&quot;;
</del><ins>+        return ASCIILiteral(&quot;Invalid character: '`'&quot;);
</ins><span class="cx">     default:
</span><del>-        return String::format(&quot;Invalid character '\\u%04u'&quot;, static_cast&lt;unsigned&gt;(m_current)).impl();
</del><ins>+        return String::format(&quot;Invalid character '\\u%04u'&quot;, static_cast&lt;unsigned&gt;(m_current));
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1026,7 +1026,7 @@
</span><span class="cx">             else if (m_current == 'x') {
</span><span class="cx">                 shift();
</span><span class="cx">                 if (!isASCIIHexDigit(m_current) || !isASCIIHexDigit(peek(1))) {
</span><del>-                    m_lexErrorMessage = &quot;\\x can only be followed by a hex character sequence&quot;;
</del><ins>+                    m_lexErrorMessage = ASCIILiteral(&quot;\\x can only be followed by a hex character sequence&quot;);
</ins><span class="cx">                     return (atEnd() || (isASCIIHexDigit(m_current) &amp;&amp; (m_code + 1 == m_codeEnd))) ? StringUnterminated : StringCannotBeParsed;
</span><span class="cx">                 }
</span><span class="cx">                 T prev = m_current;
</span><span class="lines">@@ -1091,7 +1091,7 @@
</span><span class="cx">             else if (m_current == 'x') {
</span><span class="cx">                 shift();
</span><span class="cx">                 if (!isASCIIHexDigit(m_current) || !isASCIIHexDigit(peek(1))) {
</span><del>-                    m_lexErrorMessage = &quot;\\x can only be followed by a hex character sequence&quot;;
</del><ins>+                    m_lexErrorMessage = ASCIILiteral(&quot;\\x can only be followed by a hex character sequence&quot;);
</ins><span class="cx">                     return StringCannotBeParsed;
</span><span class="cx">                 }
</span><span class="cx">                 T prev = m_current;
</span><span class="lines">@@ -1109,7 +1109,7 @@
</span><span class="cx">                     if (shouldBuildStrings)
</span><span class="cx">                         record16('u');
</span><span class="cx">                 } else {
</span><del>-                    m_lexErrorMessage = &quot;\\u can only be followed by a Unicode character sequence&quot;;
</del><ins>+                    m_lexErrorMessage = ASCIILiteral(&quot;\\u can only be followed by a Unicode character sequence&quot;);
</ins><span class="cx">                     return character.valueType() == UnicodeHexValue::IncompleteHex ? StringUnterminated : StringCannotBeParsed;
</span><span class="cx">                 }
</span><span class="cx">             } else if (strictMode &amp;&amp; isASCIIDigit(m_current)) {
</span><span class="lines">@@ -1117,7 +1117,7 @@
</span><span class="cx">                 int character1 = m_current;
</span><span class="cx">                 shift();
</span><span class="cx">                 if (character1 != '0' || isASCIIDigit(m_current)) {
</span><del>-                    m_lexErrorMessage = &quot;The only valid numeric escape in strict mode is '\\0'&quot;;
</del><ins>+                    m_lexErrorMessage = ASCIILiteral(&quot;The only valid numeric escape in strict mode is '\\0'&quot;);
</ins><span class="cx">                     return StringCannotBeParsed;
</span><span class="cx">                 }
</span><span class="cx">                 if (shouldBuildStrings)
</span><span class="lines">@@ -1147,7 +1147,7 @@
</span><span class="cx">                     record16(m_current);
</span><span class="cx">                 shift();
</span><span class="cx">             } else {
</span><del>-                m_lexErrorMessage = &quot;Unterminated string constant&quot;;
</del><ins>+                m_lexErrorMessage = ASCIILiteral(&quot;Unterminated string constant&quot;);
</ins><span class="cx">                 return StringUnterminated;
</span><span class="cx">             }
</span><span class="cx"> 
</span><span class="lines">@@ -1160,7 +1160,7 @@
</span><span class="cx">         if (UNLIKELY(((static_cast&lt;unsigned&gt;(m_current) - 0xE) &amp; 0x2000))) {
</span><span class="cx">             // New-line or end of input is not allowed
</span><span class="cx">             if (atEnd() || isLineTerminator(m_current)) {
</span><del>-                m_lexErrorMessage = &quot;Unexpected EOF&quot;;
</del><ins>+                m_lexErrorMessage = ASCIILiteral(&quot;Unexpected EOF&quot;);
</ins><span class="cx">                 return atEnd() ? StringUnterminated : StringCannotBeParsed;
</span><span class="cx">             }
</span><span class="cx">             // Anything else is just a normal character
</span><span class="lines">@@ -1522,7 +1522,7 @@
</span><span class="cx">             shift();
</span><span class="cx">             if (parseMultilineComment())
</span><span class="cx">                 goto start;
</span><del>-            m_lexErrorMessage = &quot;Multiline comment was not closed properly&quot;;
</del><ins>+            m_lexErrorMessage = ASCIILiteral(&quot;Multiline comment was not closed properly&quot;);
</ins><span class="cx">             token = UNTERMINATED_MULTILINE_COMMENT_ERRORTOK;
</span><span class="cx">             goto returnError;
</span><span class="cx">         }
</span><span class="lines">@@ -1648,13 +1648,13 @@
</span><span class="cx">         shift();
</span><span class="cx">         if ((m_current | 0x20) == 'x') {
</span><span class="cx">             if (!isASCIIHexDigit(peek(1))) {
</span><del>-                m_lexErrorMessage = &quot;No hexadecimal digits after '0x'&quot;;
</del><ins>+                m_lexErrorMessage = ASCIILiteral(&quot;No hexadecimal digits after '0x'&quot;);
</ins><span class="cx">                 token = INVALID_HEX_NUMBER_ERRORTOK;
</span><span class="cx">                 goto returnError;
</span><span class="cx">             }
</span><span class="cx">             parseHex(tokenData-&gt;doubleValue);
</span><span class="cx">             if (isIdentStart(m_current)) {
</span><del>-                m_lexErrorMessage = &quot;No space between hexadecimal literal and identifier&quot;;
</del><ins>+                m_lexErrorMessage = ASCIILiteral(&quot;No space between hexadecimal literal and identifier&quot;);
</ins><span class="cx">                 token = INVALID_HEX_NUMBER_ERRORTOK;
</span><span class="cx">                 goto returnError;
</span><span class="cx">             }
</span><span class="lines">@@ -1665,7 +1665,7 @@
</span><span class="cx"> 
</span><span class="cx">         record8('0');
</span><span class="cx">         if (strictMode &amp;&amp; isASCIIDigit(m_current)) {
</span><del>-            m_lexErrorMessage = &quot;Decimal integer literals with a leading zero are forbidden in strict mode&quot;;
</del><ins>+            m_lexErrorMessage = ASCIILiteral(&quot;Decimal integer literals with a leading zero are forbidden in strict mode&quot;);
</ins><span class="cx">             token = INVALID_OCTAL_NUMBER_ERRORTOK;
</span><span class="cx">             goto returnError;
</span><span class="cx">         }
</span><span class="lines">@@ -1685,7 +1685,7 @@
</span><span class="cx">                 }
</span><span class="cx">                 if ((m_current | 0x20) == 'e') {
</span><span class="cx">                     if (!parseNumberAfterExponentIndicator()) {
</span><del>-                        m_lexErrorMessage = &quot;Non-number found after exponent indicator&quot;;
</del><ins>+                        m_lexErrorMessage = ASCIILiteral(&quot;Non-number found after exponent indicator&quot;);
</ins><span class="cx">                         token = atEnd() ? UNTERMINATED_NUMERIC_LITERAL_ERRORTOK : INVALID_NUMERIC_LITERAL_ERRORTOK;
</span><span class="cx">                         goto returnError;
</span><span class="cx">                     }
</span><span class="lines">@@ -1698,7 +1698,7 @@
</span><span class="cx"> 
</span><span class="cx">         // No identifiers allowed directly after numeric literal, e.g. &quot;3in&quot; is bad.
</span><span class="cx">         if (UNLIKELY(isIdentStart(m_current))) {
</span><del>-            m_lexErrorMessage = &quot;At least one digit must occur after a decimal point&quot;;
</del><ins>+            m_lexErrorMessage = ASCIILiteral(&quot;At least one digit must occur after a decimal point&quot;);
</ins><span class="cx">             token = atEnd() ? UNTERMINATED_NUMERIC_LITERAL_ERRORTOK : INVALID_NUMERIC_LITERAL_ERRORTOK;
</span><span class="cx">             goto returnError;
</span><span class="cx">         }
</span><span class="lines">@@ -1749,7 +1749,7 @@
</span><span class="cx">         goto returnError;
</span><span class="cx">     default:
</span><span class="cx">         RELEASE_ASSERT_NOT_REACHED();
</span><del>-        m_lexErrorMessage = &quot;Internal Error&quot;;
</del><ins>+        m_lexErrorMessage = ASCIILiteral(&quot;Internal Error&quot;);
</ins><span class="cx">         token = ERRORTOK;
</span><span class="cx">         goto returnError;
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreprofilerProfilecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/profiler/Profile.cpp (173119 => 173120)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/profiler/Profile.cpp        2014-08-29 21:32:40 UTC (rev 173119)
+++ trunk/Source/JavaScriptCore/profiler/Profile.cpp        2014-08-29 21:33:30 UTC (rev 173120)
</span><span class="lines">@@ -43,7 +43,7 @@
</span><span class="cx"> {
</span><span class="cx">     // FIXME: When multi-threading is supported this will be a vector and calls
</span><span class="cx">     // into the profiler will need to know which thread it is executing on.
</span><del>-    m_head = ProfileNode::create(0, CallIdentifier(&quot;Thread_1&quot;, String(), 0, 0), 0, 0);
</del><ins>+    m_head = ProfileNode::create(0, CallIdentifier(ASCIILiteral(&quot;Thread_1&quot;), String(), 0, 0), 0, 0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> Profile::~Profile()
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeArgumentscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/Arguments.cpp (173119 => 173120)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/Arguments.cpp        2014-08-29 21:32:40 UTC (rev 173119)
+++ trunk/Source/JavaScriptCore/runtime/Arguments.cpp        2014-08-29 21:33:30 UTC (rev 173120)
</span><span class="lines">@@ -435,7 +435,7 @@
</span><span class="cx">     JSObject* thisObj = exec-&gt;thisValue().toThis(exec, StrictMode).toObject(exec);
</span><span class="cx">     Arguments* arguments = jsDynamicCast&lt;Arguments*&gt;(thisObj);
</span><span class="cx">     if (!arguments)
</span><del>-        return JSValue::encode(throwTypeError(exec, &quot;Attempted to use Arguments iterator on non-Arguments object&quot;));
</del><ins>+        return JSValue::encode(throwTypeError(exec, ASCIILiteral(&quot;Attempted to use Arguments iterator on non-Arguments object&quot;)));
</ins><span class="cx">     return JSValue::encode(JSArgumentsIterator::create(exec-&gt;vm(), exec-&gt;callee()-&gt;globalObject()-&gt;argumentsIteratorStructure(), arguments));
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeArrayPrototypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/ArrayPrototype.cpp (173119 => 173120)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/ArrayPrototype.cpp        2014-08-29 21:32:40 UTC (rev 173119)
+++ trunk/Source/JavaScriptCore/runtime/ArrayPrototype.cpp        2014-08-29 21:33:30 UTC (rev 173120)
</span><span class="lines">@@ -694,7 +694,7 @@
</span><span class="cx">                 if (exec-&gt;hadException())
</span><span class="cx">                     return false;
</span><span class="cx">             } else if (!thisObj-&gt;methodTable(exec-&gt;vm())-&gt;deletePropertyByIndex(thisObj, exec, i)) {
</span><del>-                throwTypeError(exec, &quot;Unable to delete property.&quot;);
</del><ins>+                throwTypeError(exec, ASCIILiteral(&quot;Unable to delete property.&quot;));
</ins><span class="cx">                 return false;
</span><span class="cx">             }
</span><span class="cx">             if (iObj) {
</span><span class="lines">@@ -702,7 +702,7 @@
</span><span class="cx">                 if (exec-&gt;hadException())
</span><span class="cx">                     return false;
</span><span class="cx">             } else if (!thisObj-&gt;methodTable(exec-&gt;vm())-&gt;deletePropertyByIndex(thisObj, exec, themin)) {
</span><del>-                throwTypeError(exec, &quot;Unable to delete property.&quot;);
</del><ins>+                throwTypeError(exec, ASCIILiteral(&quot;Unable to delete property.&quot;));
</ins><span class="cx">                 return false;
</span><span class="cx">             }
</span><span class="cx">         }
</span><span class="lines">@@ -767,7 +767,7 @@
</span><span class="cx">             continue;
</span><span class="cx">         
</span><span class="cx">         if (!thisObj-&gt;methodTable(exec-&gt;vm())-&gt;deletePropertyByIndex(thisObj, exec, index)) {
</span><del>-            throwTypeError(exec, &quot;Unable to delete property.&quot;);
</del><ins>+            throwTypeError(exec, ASCIILiteral(&quot;Unable to delete property.&quot;));
</ins><span class="cx">             return JSValue::encode(jsUndefined());
</span><span class="cx">         }
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeExceptionHelperscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/ExceptionHelpers.cpp (173119 => 173120)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/ExceptionHelpers.cpp        2014-08-29 21:32:40 UTC (rev 173119)
+++ trunk/Source/JavaScriptCore/runtime/ExceptionHelpers.cpp        2014-08-29 21:33:30 UTC (rev 173120)
</span><span class="lines">@@ -122,7 +122,7 @@
</span><span class="cx">     
</span><span class="cx"> JSObject* createError(ExecState* exec, ErrorFactory errorFactory, JSValue value, const String&amp; message)
</span><span class="cx"> {
</span><del>-    String errorMessage = makeString(errorDescriptionForValue(exec, value)-&gt;value(exec), &quot; &quot;, message);
</del><ins>+    String errorMessage = makeString(errorDescriptionForValue(exec, value)-&gt;value(exec), ' ', message);
</ins><span class="cx">     JSObject* exception = errorFactory(exec, errorMessage);
</span><span class="cx">     ASSERT(exception-&gt;isErrorInstance());
</span><span class="cx">     static_cast&lt;ErrorInstance*&gt;(exception)-&gt;setAppendSourceToMessage();
</span><span class="lines">@@ -131,27 +131,27 @@
</span><span class="cx"> 
</span><span class="cx"> JSObject* createInvalidParameterError(ExecState* exec, const char* op, JSValue value)
</span><span class="cx"> {
</span><del>-    return createError(exec, createTypeError, value, makeString(&quot;is not a valid argument for '&quot;, op, &quot;'&quot;));
</del><ins>+    return createError(exec, createTypeError, value, makeString(&quot;is not a valid argument for '&quot;, op, '\''));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSObject* createNotAConstructorError(ExecState* exec, JSValue value)
</span><span class="cx"> {
</span><del>-    return createError(exec, createTypeError, value, &quot;is not a constructor&quot;);
</del><ins>+    return createError(exec, createTypeError, value, ASCIILiteral(&quot;is not a constructor&quot;));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSObject* createNotAFunctionError(ExecState* exec, JSValue value)
</span><span class="cx"> {
</span><del>-    return createError(exec, createTypeError, value, &quot;is not a function&quot;);
</del><ins>+    return createError(exec, createTypeError, value, ASCIILiteral(&quot;is not a function&quot;));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSObject* createNotAnObjectError(ExecState* exec, JSValue value)
</span><span class="cx"> {
</span><del>-    return createError(exec, createTypeError, value, &quot;is not an object&quot;);
</del><ins>+    return createError(exec, createTypeError, value, ASCIILiteral(&quot;is not an object&quot;));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSObject* createErrorForInvalidGlobalAssignment(ExecState* exec, const String&amp; propertyName)
</span><span class="cx"> {
</span><del>-    return createReferenceError(exec, makeString(&quot;Strict mode forbids implicit creation of global property '&quot;, propertyName, &quot;'&quot;));
</del><ins>+    return createReferenceError(exec, makeString(&quot;Strict mode forbids implicit creation of global property '&quot;, propertyName, '\''));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSObject* createOutOfMemoryError(JSGlobalObject* globalObject)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeFunctionPrototypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/FunctionPrototype.cpp (173119 => 173120)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/FunctionPrototype.cpp        2014-08-29 21:32:40 UTC (rev 173119)
+++ trunk/Source/JavaScriptCore/runtime/FunctionPrototype.cpp        2014-08-29 21:33:30 UTC (rev 173120)
</span><span class="lines">@@ -85,7 +85,7 @@
</span><span class="cx"> static inline void insertSemicolonIfNeeded(String&amp; functionBody, bool bodyIncludesBraces)
</span><span class="cx"> {
</span><span class="cx">     if (!bodyIncludesBraces)
</span><del>-        functionBody = makeString(&quot;{ &quot;, functionBody, &quot;}&quot;);
</del><ins>+        functionBody = makeString(&quot;{ &quot;, functionBody, '}');
</ins><span class="cx"> 
</span><span class="cx">     ASSERT(functionBody[0] == '{');
</span><span class="cx">     ASSERT(functionBody[functionBody.length() - 1] == '}');
</span><span class="lines">@@ -94,7 +94,7 @@
</span><span class="cx">         UChar ch = functionBody[i];
</span><span class="cx">         if (!Lexer&lt;UChar&gt;::isWhiteSpace(ch) &amp;&amp; !Lexer&lt;UChar&gt;::isLineTerminator(ch)) {
</span><span class="cx">             if (ch != ';' &amp;&amp; ch != '}')
</span><del>-                functionBody = makeString(functionBody.substringSharingImpl(0, i + 1), &quot;;&quot;, functionBody.substringSharingImpl(i + 1, functionBody.length() - (i + 1)));
</del><ins>+                functionBody = makeString(functionBody.substringSharingImpl(0, i + 1), ';', functionBody.substringSharingImpl(i + 1, functionBody.length() - (i + 1)));
</ins><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSArraycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSArray.cpp (173119 => 173120)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSArray.cpp        2014-08-29 21:32:40 UTC (rev 173119)
+++ trunk/Source/JavaScriptCore/runtime/JSArray.cpp        2014-08-29 21:33:30 UTC (rev 173120)
</span><span class="lines">@@ -108,7 +108,7 @@
</span><span class="cx">         unsigned newLen = descriptor.value().toUInt32(exec);
</span><span class="cx">         // d. If newLen is not equal to ToNumber( Desc.[[Value]]), throw a RangeError exception.
</span><span class="cx">         if (newLen != descriptor.value().toNumber(exec)) {
</span><del>-            exec-&gt;vm().throwException(exec, createRangeError(exec, &quot;Invalid array length&quot;));
</del><ins>+            exec-&gt;vm().throwException(exec, createRangeError(exec, ASCIILiteral(&quot;Invalid array length&quot;)));
</ins><span class="cx">             return false;
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -523,7 +523,7 @@
</span><span class="cx">         return jsUndefined();
</span><span class="cx">     // Call the [[Delete]] internal method of O with arguments indx and true.
</span><span class="cx">     if (!deletePropertyByIndex(this, exec, index)) {
</span><del>-        throwTypeError(exec, &quot;Unable to delete property.&quot;);
</del><ins>+        throwTypeError(exec, ASCIILiteral(&quot;Unable to delete property.&quot;));
</ins><span class="cx">         return jsUndefined();
</span><span class="cx">     }
</span><span class="cx">     // Call the [[Put]] internal method of O with arguments &quot;length&quot;, indx, and true.
</span><span class="lines">@@ -567,7 +567,7 @@
</span><span class="cx">         if (length &gt; MAX_ARRAY_INDEX) {
</span><span class="cx">             methodTable(exec-&gt;vm())-&gt;putByIndex(this, exec, length, value, true);
</span><span class="cx">             if (!exec-&gt;hadException())
</span><del>-                exec-&gt;vm().throwException(exec, createRangeError(exec, &quot;Invalid array length&quot;));
</del><ins>+                exec-&gt;vm().throwException(exec, createRangeError(exec, ASCIILiteral(&quot;Invalid array length&quot;)));
</ins><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">         
</span><span class="lines">@@ -587,7 +587,7 @@
</span><span class="cx">         if (length &gt; MAX_ARRAY_INDEX) {
</span><span class="cx">             methodTable(exec-&gt;vm())-&gt;putByIndex(this, exec, length, value, true);
</span><span class="cx">             if (!exec-&gt;hadException())
</span><del>-                exec-&gt;vm().throwException(exec, createRangeError(exec, &quot;Invalid array length&quot;));
</del><ins>+                exec-&gt;vm().throwException(exec, createRangeError(exec, ASCIILiteral(&quot;Invalid array length&quot;)));
</ins><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">         
</span><span class="lines">@@ -619,7 +619,7 @@
</span><span class="cx">         if (length &gt; MAX_ARRAY_INDEX) {
</span><span class="cx">             methodTable(exec-&gt;vm())-&gt;putByIndex(this, exec, length, value, true);
</span><span class="cx">             if (!exec-&gt;hadException())
</span><del>-                exec-&gt;vm().throwException(exec, createRangeError(exec, &quot;Invalid array length&quot;));
</del><ins>+                exec-&gt;vm().throwException(exec, createRangeError(exec, ASCIILiteral(&quot;Invalid array length&quot;)));
</ins><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">         
</span><span class="lines">@@ -654,7 +654,7 @@
</span><span class="cx">             methodTable(exec-&gt;vm())-&gt;putByIndex(this, exec, storage-&gt;length(), value, true);
</span><span class="cx">             // Per ES5.1 15.4.4.7 step 6 &amp; 15.4.5.1 step 3.d.
</span><span class="cx">             if (!exec-&gt;hadException())
</span><del>-                exec-&gt;vm().throwException(exec, createRangeError(exec, &quot;Invalid array length&quot;));
</del><ins>+                exec-&gt;vm().throwException(exec, createRangeError(exec, ASCIILiteral(&quot;Invalid array length&quot;)));
</ins><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSArrayBufferConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSArrayBufferConstructor.cpp (173119 => 173120)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSArrayBufferConstructor.cpp        2014-08-29 21:32:40 UTC (rev 173119)
+++ trunk/Source/JavaScriptCore/runtime/JSArrayBufferConstructor.cpp        2014-08-29 21:33:30 UTC (rev 173120)
</span><span class="lines">@@ -49,7 +49,7 @@
</span><span class="cx"> 
</span><span class="cx"> void JSArrayBufferConstructor::finishCreation(VM&amp; vm, JSArrayBufferPrototype* prototype)
</span><span class="cx"> {
</span><del>-    Base::finishCreation(vm, &quot;ArrayBuffer&quot;);
</del><ins>+    Base::finishCreation(vm, ASCIILiteral(&quot;ArrayBuffer&quot;));
</ins><span class="cx">     putDirectWithoutTransition(vm, vm.propertyNames-&gt;prototype, prototype, DontEnum | DontDelete | ReadOnly);
</span><span class="cx">     putDirectWithoutTransition(vm, vm.propertyNames-&gt;length, jsNumber(1), DontEnum | DontDelete | ReadOnly);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSArrayBufferPrototypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSArrayBufferPrototype.cpp (173119 => 173120)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSArrayBufferPrototype.cpp        2014-08-29 21:32:40 UTC (rev 173119)
+++ trunk/Source/JavaScriptCore/runtime/JSArrayBufferPrototype.cpp        2014-08-29 21:33:30 UTC (rev 173120)
</span><span class="lines">@@ -41,10 +41,10 @@
</span><span class="cx">     
</span><span class="cx">     JSArrayBuffer* thisObject = jsDynamicCast&lt;JSArrayBuffer*&gt;(exec-&gt;thisValue());
</span><span class="cx">     if (!thisObject)
</span><del>-        return throwVMError(exec, createTypeError(exec, &quot;Receiver of slice must be an array buffer.&quot;));
</del><ins>+        return throwVMError(exec, createTypeError(exec, ASCIILiteral(&quot;Receiver of slice must be an array buffer.&quot;)));
</ins><span class="cx">     
</span><span class="cx">     if (!exec-&gt;argumentCount())
</span><del>-        return throwVMError(exec, createTypeError(exec, &quot;Slice requires at least one argument.&quot;));
</del><ins>+        return throwVMError(exec, createTypeError(exec, ASCIILiteral(&quot;Slice requires at least one argument.&quot;)));
</ins><span class="cx">     
</span><span class="cx">     int32_t begin = exec-&gt;argument(0).toInt32(exec);
</span><span class="cx">     if (exec-&gt;hadException())
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSDataViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSDataView.cpp (173119 => 173120)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSDataView.cpp        2014-08-29 21:32:40 UTC (rev 173119)
+++ trunk/Source/JavaScriptCore/runtime/JSDataView.cpp        2014-08-29 21:33:30 UTC (rev 173120)
</span><span class="lines">@@ -48,11 +48,11 @@
</span><span class="cx"> {
</span><span class="cx">     RefPtr&lt;ArrayBuffer&gt; buffer = passedBuffer;
</span><span class="cx">     if (!ArrayBufferView::verifySubRangeLength(buffer, byteOffset, byteLength, sizeof(uint8_t))) {
</span><del>-        throwVMError(exec, createRangeError(exec, &quot;Length out of range of buffer&quot;));
</del><ins>+        throwVMError(exec, createRangeError(exec, ASCIILiteral(&quot;Length out of range of buffer&quot;)));
</ins><span class="cx">         return nullptr;
</span><span class="cx">     }
</span><span class="cx">     if (!ArrayBufferView::verifyByteOffsetAlignment(byteOffset, sizeof(uint8_t))) {
</span><del>-        exec-&gt;vm().throwException(exec, createRangeError(exec, &quot;Byte offset is not aligned&quot;));
</del><ins>+        exec-&gt;vm().throwException(exec, createRangeError(exec, ASCIILiteral(&quot;Byte offset is not aligned&quot;)));
</ins><span class="cx">         return nullptr;
</span><span class="cx">     }
</span><span class="cx">     VM&amp; vm = exec-&gt;vm();
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSDataViewPrototypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSDataViewPrototype.cpp (173119 => 173120)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSDataViewPrototype.cpp        2014-08-29 21:32:40 UTC (rev 173119)
+++ trunk/Source/JavaScriptCore/runtime/JSDataViewPrototype.cpp        2014-08-29 21:33:30 UTC (rev 173120)
</span><span class="lines">@@ -119,10 +119,10 @@
</span><span class="cx"> {
</span><span class="cx">     JSDataView* dataView = jsDynamicCast&lt;JSDataView*&gt;(exec-&gt;thisValue());
</span><span class="cx">     if (!dataView)
</span><del>-        return throwVMError(exec, createTypeError(exec, &quot;Receiver of DataView method must be a DataView&quot;));
</del><ins>+        return throwVMError(exec, createTypeError(exec, ASCIILiteral(&quot;Receiver of DataView method must be a DataView&quot;)));
</ins><span class="cx">     
</span><span class="cx">     if (!exec-&gt;argumentCount())
</span><del>-        return throwVMError(exec, createTypeError(exec, &quot;Need at least one argument (the byteOffset)&quot;));
</del><ins>+        return throwVMError(exec, createTypeError(exec, ASCIILiteral(&quot;Need at least one argument (the byteOffset)&quot;)));
</ins><span class="cx">     
</span><span class="cx">     unsigned byteOffset = exec-&gt;uncheckedArgument(0).toUInt32(exec);
</span><span class="cx">     if (exec-&gt;hadException())
</span><span class="lines">@@ -138,7 +138,7 @@
</span><span class="cx">     
</span><span class="cx">     unsigned byteLength = dataView-&gt;length();
</span><span class="cx">     if (elementSize &gt; byteLength || byteOffset &gt; byteLength - elementSize)
</span><del>-        return throwVMError(exec, createRangeError(exec, &quot;Out of bounds access&quot;));
</del><ins>+        return throwVMError(exec, createRangeError(exec, ASCIILiteral(&quot;Out of bounds access&quot;)));
</ins><span class="cx"> 
</span><span class="cx">     const unsigned dataSize = sizeof(typename Adaptor::Type);
</span><span class="cx">     union {
</span><span class="lines">@@ -164,10 +164,10 @@
</span><span class="cx"> {
</span><span class="cx">     JSDataView* dataView = jsDynamicCast&lt;JSDataView*&gt;(exec-&gt;thisValue());
</span><span class="cx">     if (!dataView)
</span><del>-        return throwVMError(exec, createTypeError(exec, &quot;Receiver of DataView method must be a DataView&quot;));
</del><ins>+        return throwVMError(exec, createTypeError(exec, ASCIILiteral(&quot;Receiver of DataView method must be a DataView&quot;)));
</ins><span class="cx">     
</span><span class="cx">     if (exec-&gt;argumentCount() &lt; 2)
</span><del>-        return throwVMError(exec, createTypeError(exec, &quot;Need at least two argument (the byteOffset and value)&quot;));
</del><ins>+        return throwVMError(exec, createTypeError(exec, ASCIILiteral(&quot;Need at least two argument (the byteOffset and value)&quot;)));
</ins><span class="cx">     
</span><span class="cx">     unsigned byteOffset = exec-&gt;uncheckedArgument(0).toUInt32(exec);
</span><span class="cx">     if (exec-&gt;hadException())
</span><span class="lines">@@ -193,7 +193,7 @@
</span><span class="cx">     
</span><span class="cx">     unsigned byteLength = dataView-&gt;length();
</span><span class="cx">     if (elementSize &gt; byteLength || byteOffset &gt; byteLength - elementSize)
</span><del>-        return throwVMError(exec, createRangeError(exec, &quot;Out of bounds access&quot;));
</del><ins>+        return throwVMError(exec, createRangeError(exec, ASCIILiteral(&quot;Out of bounds access&quot;)));
</ins><span class="cx"> 
</span><span class="cx">     uint8_t* dataPtr = static_cast&lt;uint8_t*&gt;(dataView-&gt;vector()) + byteOffset;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSGlobalObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSGlobalObject.cpp (173119 => 173120)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSGlobalObject.cpp        2014-08-29 21:32:40 UTC (rev 173119)
+++ trunk/Source/JavaScriptCore/runtime/JSGlobalObject.cpp        2014-08-29 21:33:30 UTC (rev 173120)
</span><span class="lines">@@ -440,16 +440,16 @@
</span><span class="cx">     putDirectWithoutTransition(vm, vm.propertyNames-&gt;Math, MathObject::create(vm, this, MathObject::createStructure(vm, this, m_objectPrototype.get())), DontEnum);
</span><span class="cx">     
</span><span class="cx">     std::array&lt;InternalFunction*, NUMBER_OF_TYPED_ARRAY_TYPES&gt; typedArrayConstructors;
</span><del>-    typedArrayConstructors[toIndex(TypeInt8)] = JSInt8ArrayConstructor::create(vm, JSInt8ArrayConstructor::createStructure(vm, this, m_functionPrototype.get()), m_typedArrays[toIndex(TypeInt8)].prototype.get(), &quot;Int8Array&quot;);
-    typedArrayConstructors[toIndex(TypeInt16)] = JSInt16ArrayConstructor::create(vm, JSInt16ArrayConstructor::createStructure(vm, this, m_functionPrototype.get()), m_typedArrays[toIndex(TypeInt16)].prototype.get(), &quot;Int16Array&quot;);
-    typedArrayConstructors[toIndex(TypeInt32)] = JSInt32ArrayConstructor::create(vm, JSInt32ArrayConstructor::createStructure(vm, this, m_functionPrototype.get()), m_typedArrays[toIndex(TypeInt32)].prototype.get(), &quot;Int32Array&quot;);
-    typedArrayConstructors[toIndex(TypeUint8)] = JSUint8ArrayConstructor::create(vm, JSUint8ArrayConstructor::createStructure(vm, this, m_functionPrototype.get()), m_typedArrays[toIndex(TypeUint8)].prototype.get(), &quot;Uint8Array&quot;);
-    typedArrayConstructors[toIndex(TypeUint8Clamped)] = JSUint8ClampedArrayConstructor::create(vm, JSUint8ClampedArrayConstructor::createStructure(vm, this, m_functionPrototype.get()), m_typedArrays[toIndex(TypeUint8Clamped)].prototype.get(), &quot;Uint8ClampedArray&quot;);
-    typedArrayConstructors[toIndex(TypeUint16)] = JSUint16ArrayConstructor::create(vm, JSUint16ArrayConstructor::createStructure(vm, this, m_functionPrototype.get()), m_typedArrays[toIndex(TypeUint16)].prototype.get(), &quot;Uint16Array&quot;);
-    typedArrayConstructors[toIndex(TypeUint32)] = JSUint32ArrayConstructor::create(vm, JSUint32ArrayConstructor::createStructure(vm, this, m_functionPrototype.get()), m_typedArrays[toIndex(TypeUint32)].prototype.get(), &quot;Uint32Array&quot;);
-    typedArrayConstructors[toIndex(TypeFloat32)] = JSFloat32ArrayConstructor::create(vm, JSFloat32ArrayConstructor::createStructure(vm, this, m_functionPrototype.get()), m_typedArrays[toIndex(TypeFloat32)].prototype.get(), &quot;Float32Array&quot;);
-    typedArrayConstructors[toIndex(TypeFloat64)] = JSFloat64ArrayConstructor::create(vm, JSFloat64ArrayConstructor::createStructure(vm, this, m_functionPrototype.get()), m_typedArrays[toIndex(TypeFloat64)].prototype.get(), &quot;Float64Array&quot;);
-    typedArrayConstructors[toIndex(TypeDataView)] = JSDataViewConstructor::create(vm, JSDataViewConstructor::createStructure(vm, this, m_functionPrototype.get()), m_typedArrays[toIndex(TypeDataView)].prototype.get(), &quot;DataView&quot;);
</del><ins>+    typedArrayConstructors[toIndex(TypeInt8)] = JSInt8ArrayConstructor::create(vm, JSInt8ArrayConstructor::createStructure(vm, this, m_functionPrototype.get()), m_typedArrays[toIndex(TypeInt8)].prototype.get(), ASCIILiteral(&quot;Int8Array&quot;));
+    typedArrayConstructors[toIndex(TypeInt16)] = JSInt16ArrayConstructor::create(vm, JSInt16ArrayConstructor::createStructure(vm, this, m_functionPrototype.get()), m_typedArrays[toIndex(TypeInt16)].prototype.get(), ASCIILiteral(&quot;Int16Array&quot;));
+    typedArrayConstructors[toIndex(TypeInt32)] = JSInt32ArrayConstructor::create(vm, JSInt32ArrayConstructor::createStructure(vm, this, m_functionPrototype.get()), m_typedArrays[toIndex(TypeInt32)].prototype.get(), ASCIILiteral(&quot;Int32Array&quot;));
+    typedArrayConstructors[toIndex(TypeUint8)] = JSUint8ArrayConstructor::create(vm, JSUint8ArrayConstructor::createStructure(vm, this, m_functionPrototype.get()), m_typedArrays[toIndex(TypeUint8)].prototype.get(), ASCIILiteral(&quot;Uint8Array&quot;));
+    typedArrayConstructors[toIndex(TypeUint8Clamped)] = JSUint8ClampedArrayConstructor::create(vm, JSUint8ClampedArrayConstructor::createStructure(vm, this, m_functionPrototype.get()), m_typedArrays[toIndex(TypeUint8Clamped)].prototype.get(), ASCIILiteral(&quot;Uint8ClampedArray&quot;));
+    typedArrayConstructors[toIndex(TypeUint16)] = JSUint16ArrayConstructor::create(vm, JSUint16ArrayConstructor::createStructure(vm, this, m_functionPrototype.get()), m_typedArrays[toIndex(TypeUint16)].prototype.get(), ASCIILiteral(&quot;Uint16Array&quot;));
+    typedArrayConstructors[toIndex(TypeUint32)] = JSUint32ArrayConstructor::create(vm, JSUint32ArrayConstructor::createStructure(vm, this, m_functionPrototype.get()), m_typedArrays[toIndex(TypeUint32)].prototype.get(), ASCIILiteral(&quot;Uint32Array&quot;));
+    typedArrayConstructors[toIndex(TypeFloat32)] = JSFloat32ArrayConstructor::create(vm, JSFloat32ArrayConstructor::createStructure(vm, this, m_functionPrototype.get()), m_typedArrays[toIndex(TypeFloat32)].prototype.get(), ASCIILiteral(&quot;Float32Array&quot;));
+    typedArrayConstructors[toIndex(TypeFloat64)] = JSFloat64ArrayConstructor::create(vm, JSFloat64ArrayConstructor::createStructure(vm, this, m_functionPrototype.get()), m_typedArrays[toIndex(TypeFloat64)].prototype.get(), ASCIILiteral(&quot;Float64Array&quot;));
+    typedArrayConstructors[toIndex(TypeDataView)] = JSDataViewConstructor::create(vm, JSDataViewConstructor::createStructure(vm, this, m_functionPrototype.get()), m_typedArrays[toIndex(TypeDataView)].prototype.get(), ASCIILiteral(&quot;DataView&quot;));
</ins><span class="cx"> 
</span><span class="cx">     for (unsigned typedArrayIndex = NUMBER_OF_TYPED_ARRAY_TYPES; typedArrayIndex--;) {
</span><span class="cx">         m_typedArrays[typedArrayIndex].prototype-&gt;putDirectWithoutTransition(vm, vm.propertyNames-&gt;constructor, typedArrayConstructors[typedArrayIndex], DontEnum);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSGlobalObjectFunctionscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSGlobalObjectFunctions.cpp (173119 => 173120)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSGlobalObjectFunctions.cpp        2014-08-29 21:32:40 UTC (rev 173119)
+++ trunk/Source/JavaScriptCore/runtime/JSGlobalObjectFunctions.cpp        2014-08-29 21:33:30 UTC (rev 173120)
</span><span class="lines">@@ -802,7 +802,7 @@
</span><span class="cx">         return throwVMError(exec, createTypeError(exec, StrictModeReadonlyPropertyWriteError));
</span><span class="cx"> 
</span><span class="cx">     if (!thisObject-&gt;setPrototypeWithCycleCheck(exec, value))
</span><del>-        exec-&gt;vm().throwException(exec, createError(exec, &quot;cyclic __proto__ value&quot;));
</del><ins>+        exec-&gt;vm().throwException(exec, createError(exec, ASCIILiteral(&quot;cyclic __proto__ value&quot;)));
</ins><span class="cx">     return JSValue::encode(jsUndefined());
</span><span class="cx"> }
</span><span class="cx">     
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSPromiseConstructorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSPromiseConstructor.cpp (173119 => 173120)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSPromiseConstructor.cpp        2014-08-29 21:32:40 UTC (rev 173119)
+++ trunk/Source/JavaScriptCore/runtime/JSPromiseConstructor.cpp        2014-08-29 21:33:30 UTC (rev 173120)
</span><span class="lines">@@ -85,7 +85,7 @@
</span><span class="cx"> 
</span><span class="cx"> void JSPromiseConstructor::finishCreation(VM&amp; vm, JSPromisePrototype* promisePrototype)
</span><span class="cx"> {
</span><del>-    Base::finishCreation(vm, &quot;Promise&quot;);
</del><ins>+    Base::finishCreation(vm, ASCIILiteral(&quot;Promise&quot;));
</ins><span class="cx">     putDirectWithoutTransition(vm, vm.propertyNames-&gt;prototype, promisePrototype, DontEnum | DontDelete | ReadOnly);
</span><span class="cx">     putDirectWithoutTransition(vm, vm.propertyNames-&gt;length, jsNumber(1), ReadOnly | DontEnum | DontDelete);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeLiteralParsercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/LiteralParser.cpp (173119 => 173120)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/LiteralParser.cpp        2014-08-29 21:32:40 UTC (rev 173119)
+++ trunk/Source/JavaScriptCore/runtime/LiteralParser.cpp        2014-08-29 21:33:30 UTC (rev 173120)
</span><span class="lines">@@ -281,7 +281,7 @@
</span><span class="cx">             return lexString&lt;mode, '\''&gt;(token);
</span><span class="cx">         }
</span><span class="cx">     }
</span><del>-    m_lexErrorMessage = String::format(&quot;Unrecognized token '%c'&quot;, *m_ptr).impl();
</del><ins>+    m_lexErrorMessage = String::format(&quot;Unrecognized token '%c'&quot;, *m_ptr);
</ins><span class="cx">     return TokError;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -406,7 +406,7 @@
</span><span class="cx">                     } // uNNNN == 5 characters
</span><span class="cx">                     for (int i = 1; i &lt; 5; i++) {
</span><span class="cx">                         if (!isASCIIHexDigit(m_ptr[i])) {
</span><del>-                            m_lexErrorMessage = String::format(&quot;\&quot;\\%s\&quot; is not a valid unicode escape&quot;, String(m_ptr, 5).ascii().data()).impl();
</del><ins>+                            m_lexErrorMessage = String::format(&quot;\&quot;\\%s\&quot; is not a valid unicode escape&quot;, String(m_ptr, 5).ascii().data());
</ins><span class="cx">                             return TokError;
</span><span class="cx">                         }
</span><span class="cx">                     }
</span><span class="lines">@@ -420,7 +420,7 @@
</span><span class="cx">                         m_ptr++;
</span><span class="cx">                         break;
</span><span class="cx">                     }
</span><del>-                    m_lexErrorMessage = String::format(&quot;Invalid escape character %c&quot;, *m_ptr).impl();
</del><ins>+                    m_lexErrorMessage = String::format(&quot;Invalid escape character %c&quot;, *m_ptr);
</ins><span class="cx">                     return TokError;
</span><span class="cx">             }
</span><span class="cx">         }
</span><span class="lines">@@ -711,9 +711,9 @@
</span><span class="cx">                     case TokIdentifier: {
</span><span class="cx">                         const LiteralParserToken&lt;CharType&gt;&amp; token = m_lexer.currentToken();
</span><span class="cx">                         if (token.stringIs8Bit)
</span><del>-                            m_parseErrorMessage = String::format(&quot;Unexpected identifier \&quot;%s\&quot;&quot;, String(m_lexer.currentToken().stringToken8, m_lexer.currentToken().stringLength).ascii().data()).impl();
</del><ins>+                            m_parseErrorMessage = String::format(&quot;Unexpected identifier \&quot;%s\&quot;&quot;, String(m_lexer.currentToken().stringToken8, m_lexer.currentToken().stringLength).ascii().data());
</ins><span class="cx">                         else
</span><del>-                            m_parseErrorMessage = String::format(&quot;Unexpected identifier \&quot;%s\&quot;&quot;, String(m_lexer.currentToken().stringToken16, m_lexer.currentToken().stringLength).ascii().data()).impl();
</del><ins>+                            m_parseErrorMessage = String::format(&quot;Unexpected identifier \&quot;%s\&quot;&quot;, String(m_lexer.currentToken().stringToken16, m_lexer.currentToken().stringLength).ascii().data());
</ins><span class="cx">                         return JSValue();
</span><span class="cx">                     }
</span><span class="cx">                     case TokColon:
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeLiteralParserh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/LiteralParser.h (173119 => 173120)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/LiteralParser.h        2014-08-29 21:32:40 UTC (rev 173119)
+++ trunk/Source/JavaScriptCore/runtime/LiteralParser.h        2014-08-29 21:33:30 UTC (rev 173120)
</span><span class="lines">@@ -98,9 +98,9 @@
</span><span class="cx">     String getErrorMessage()
</span><span class="cx">     { 
</span><span class="cx">         if (!m_lexer.getErrorMessage().isEmpty())
</span><del>-            return String::format(&quot;JSON Parse error: %s&quot;, m_lexer.getErrorMessage().ascii().data()).impl();
</del><ins>+            return String::format(&quot;JSON Parse error: %s&quot;, m_lexer.getErrorMessage().ascii().data());
</ins><span class="cx">         if (!m_parseErrorMessage.isEmpty())
</span><del>-            return String::format(&quot;JSON Parse error: %s&quot;, m_parseErrorMessage.ascii().data()).impl();
</del><ins>+            return String::format(&quot;JSON Parse error: %s&quot;, m_parseErrorMessage.ascii().data());
</ins><span class="cx">         return ASCIILiteral(&quot;JSON Parse error: Unable to parse JSON string&quot;);
</span><span class="cx">     }
</span><span class="cx">     
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeTypeSetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/TypeSet.cpp (173119 => 173120)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/TypeSet.cpp        2014-08-29 21:32:40 UTC (rev 173119)
+++ trunk/Source/JavaScriptCore/runtime/TypeSet.cpp        2014-08-29 21:33:30 UTC (rev 173120)
</span><span class="lines">@@ -99,7 +99,7 @@
</span><span class="cx"> String TypeSet::seenTypes() const
</span><span class="cx"> {
</span><span class="cx">     if (m_seenTypes == TypeNothing)
</span><del>-        return &quot;(Unreached Statement)&quot;;
</del><ins>+        return ASCIILiteral(&quot;(Unreached Statement)&quot;);
</ins><span class="cx"> 
</span><span class="cx">     StringBuilder seen;
</span><span class="cx"> 
</span><span class="lines">@@ -123,17 +123,17 @@
</span><span class="cx">     for (size_t i = 0; i &lt; m_structureHistory.size(); i++) {
</span><span class="cx">         RefPtr&lt;StructureShape&gt; shape = m_structureHistory.at(i);
</span><span class="cx">         seen.append(shape-&gt;m_constructorName);
</span><del>-        seen.append(&quot; &quot;);
</del><ins>+        seen.append(' ');
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (m_structureHistory.size()) 
</span><span class="cx">         seen.append(&quot;\nStructures:[ &quot;);
</span><span class="cx">     for (size_t i = 0; i &lt; m_structureHistory.size(); i++) {
</span><span class="cx">         seen.append(m_structureHistory.at(i)-&gt;stringRepresentation());
</span><del>-        seen.append(&quot; &quot;);
</del><ins>+        seen.append(' ');
</ins><span class="cx">     }
</span><span class="cx">     if (m_structureHistory.size())
</span><del>-        seen.append(&quot;]&quot;);
</del><ins>+        seen.append(']');
</ins><span class="cx"> 
</span><span class="cx">     if (m_structureHistory.size()) {
</span><span class="cx">         seen.append(&quot;\nLeast Common Ancestor: &quot;);
</span><span class="lines">@@ -166,72 +166,72 @@
</span><span class="cx"> String TypeSet::displayName() const
</span><span class="cx"> {
</span><span class="cx">     if (m_seenTypes == TypeNothing)
</span><del>-        return &quot;&quot;;
</del><ins>+        return emptyString();
</ins><span class="cx"> 
</span><span class="cx">     if (m_structureHistory.size() &amp;&amp; doesTypeConformTo(TypeObject | TypeNull | TypeUndefined)) {
</span><span class="cx">         String ctorName = leastCommonAncestor(); 
</span><span class="cx"> 
</span><span class="cx">         if (doesTypeConformTo(TypeObject))
</span><span class="cx">             return ctorName;
</span><del>-        else if (doesTypeConformTo(TypeObject | TypeNull | TypeUndefined))
-            return ctorName + &quot;?&quot;;
</del><ins>+        if (doesTypeConformTo(TypeObject | TypeNull | TypeUndefined))
+            return ctorName + '?';
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // The order of these checks are important. For example, if a value is only a function, it conforms to TypeFunction, but it also conforms to TypeFunction | TypeNull.
</span><span class="cx">     // Therefore, more specific types must be checked first.
</span><span class="cx"> 
</span><span class="cx">     if (doesTypeConformTo(TypeFunction))
</span><del>-        return &quot;Function&quot;;
</del><ins>+        return ASCIILiteral(&quot;Function&quot;);
</ins><span class="cx">     if (doesTypeConformTo(TypeUndefined))
</span><del>-        return &quot;Undefined&quot;;
</del><ins>+        return ASCIILiteral(&quot;Undefined&quot;);
</ins><span class="cx">     if (doesTypeConformTo(TypeNull))
</span><del>-        return &quot;Null&quot;;
</del><ins>+        return ASCIILiteral(&quot;Null&quot;);
</ins><span class="cx">     if (doesTypeConformTo(TypeBoolean))
</span><del>-        return &quot;Boolean&quot;;
</del><ins>+        return ASCIILiteral(&quot;Boolean&quot;);
</ins><span class="cx">     if (doesTypeConformTo(TypeMachineInt))
</span><del>-        return &quot;Integer&quot;;
</del><ins>+        return ASCIILiteral(&quot;Integer&quot;);
</ins><span class="cx">     if (doesTypeConformTo(TypeNumber | TypeMachineInt))
</span><del>-        return &quot;Number&quot;;
</del><ins>+        return ASCIILiteral(&quot;Number&quot;);
</ins><span class="cx">     if (doesTypeConformTo(TypeString))
</span><del>-        return &quot;String&quot;;
</del><ins>+        return ASCIILiteral(&quot;String&quot;);
</ins><span class="cx"> 
</span><span class="cx">     if (doesTypeConformTo(TypeNull | TypeUndefined))
</span><del>-        return &quot;(?)&quot;;
</del><ins>+        return ASCIILiteral(&quot;(?)&quot;);
</ins><span class="cx"> 
</span><span class="cx">     if (doesTypeConformTo(TypeFunction | TypeNull | TypeUndefined))
</span><del>-        return &quot;Function?&quot;;
</del><ins>+        return ASCIILiteral(&quot;Function?&quot;);
</ins><span class="cx">     if (doesTypeConformTo(TypeBoolean | TypeNull | TypeUndefined))
</span><del>-        return &quot;Boolean?&quot;;
</del><ins>+        return ASCIILiteral(&quot;Boolean?&quot;);
</ins><span class="cx">     if (doesTypeConformTo(TypeMachineInt | TypeNull | TypeUndefined))
</span><del>-        return &quot;Integer?&quot;;
</del><ins>+        return ASCIILiteral(&quot;Integer?&quot;);
</ins><span class="cx">     if (doesTypeConformTo(TypeNumber | TypeMachineInt | TypeNull | TypeUndefined))
</span><del>-        return &quot;Number?&quot;;
</del><ins>+        return ASCIILiteral(&quot;Number?&quot;);
</ins><span class="cx">     if (doesTypeConformTo(TypeString | TypeNull | TypeUndefined))
</span><del>-        return &quot;String?&quot;;
</del><ins>+        return ASCIILiteral(&quot;String?&quot;);
</ins><span class="cx">    
</span><span class="cx">     if (doesTypeConformTo(TypeObject | TypeFunction | TypeString))
</span><del>-        return &quot;Object&quot;;
</del><ins>+        return ASCIILiteral(&quot;Object&quot;);
</ins><span class="cx">     if (doesTypeConformTo(TypeObject | TypeFunction | TypeString | TypeNull | TypeUndefined))
</span><del>-        return &quot;Object?&quot;;
</del><ins>+        return ASCIILiteral(&quot;Object?&quot;);
</ins><span class="cx"> 
</span><del>-    return &quot;(many)&quot;;
</del><ins>+    return ASCIILiteral(&quot;(many)&quot;);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> PassRefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; TypeSet::allPrimitiveTypeNames() const
</span><span class="cx"> {
</span><span class="cx">     RefPtr&lt;Inspector::Protocol::Array&lt;String&gt;&gt; seen = Inspector::Protocol::Array&lt;String&gt;::create();
</span><span class="cx">     if (m_seenTypes &amp; TypeUndefined)
</span><del>-         seen-&gt;addItem(&quot;Undefined&quot;);
</del><ins>+        seen-&gt;addItem(ASCIILiteral(&quot;Undefined&quot;));
</ins><span class="cx">     if (m_seenTypes &amp; TypeNull)
</span><del>-         seen-&gt;addItem(&quot;Null&quot;);
</del><ins>+        seen-&gt;addItem(ASCIILiteral(&quot;Null&quot;));
</ins><span class="cx">     if (m_seenTypes &amp; TypeBoolean)
</span><del>-         seen-&gt;addItem(&quot;Boolean&quot;);
</del><ins>+        seen-&gt;addItem(ASCIILiteral(&quot;Boolean&quot;));
</ins><span class="cx">     if (m_seenTypes &amp; TypeMachineInt)
</span><del>-         seen-&gt;addItem(&quot;Integer&quot;);
</del><ins>+        seen-&gt;addItem(ASCIILiteral(&quot;Integer&quot;));
</ins><span class="cx">     if (m_seenTypes &amp; TypeNumber)
</span><del>-         seen-&gt;addItem(&quot;Number&quot;);
</del><ins>+        seen-&gt;addItem(ASCIILiteral(&quot;Number&quot;));
</ins><span class="cx">     if (m_seenTypes &amp; TypeString)
</span><del>-         seen-&gt;addItem(&quot;String&quot;);
</del><ins>+        seen-&gt;addItem(ASCIILiteral(&quot;String&quot;));
</ins><span class="cx"> 
</span><span class="cx">     return seen.release();
</span><span class="cx"> }
</span><span class="lines">@@ -282,9 +282,9 @@
</span><span class="cx">         return *m_propertyHash;
</span><span class="cx"> 
</span><span class="cx">     StringBuilder builder;
</span><del>-    builder.append(&quot;:&quot;);
</del><ins>+    builder.append(':');
</ins><span class="cx">     builder.append(m_constructorName);
</span><del>-    builder.append(&quot;:&quot;);
</del><ins>+    builder.append(':');
</ins><span class="cx">     
</span><span class="cx">     for (auto iter = m_fields.begin(), end = m_fields.end(); iter != end; ++iter) {
</span><span class="cx">         String property = String((*iter));
</span><span class="lines">@@ -293,7 +293,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (m_proto) {
</span><del>-        builder.append(&quot;:&quot;);
</del><ins>+        builder.append(':');
</ins><span class="cx">         builder.append(&quot;__proto__&quot;);
</span><span class="cx">         builder.append(m_proto-&gt;propertyHash());
</span><span class="cx">     }
</span><span class="lines">@@ -339,7 +339,7 @@
</span><span class="cx">     StringBuilder representation;
</span><span class="cx">     RefPtr&lt;StructureShape&gt; curShape = this;
</span><span class="cx"> 
</span><del>-    representation.append(&quot;{&quot;);
</del><ins>+    representation.append('{');
</ins><span class="cx">     while (curShape) {
</span><span class="cx">         for (auto it = curShape-&gt;m_fields.begin(), end = curShape-&gt;m_fields.end(); it != end; ++it) {
</span><span class="cx">             String prop((*it).get());
</span><span class="lines">@@ -348,7 +348,7 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         if (curShape-&gt;m_proto) {
</span><del>-            String prot = String(&quot;__proto__&quot;) + String(&quot; [&quot;) + curShape-&gt;m_proto-&gt;m_constructorName + String(&quot;]&quot;);
</del><ins>+            String prot = makeString(&quot;__proto__ [&quot;, curShape-&gt;m_proto-&gt;m_constructorName, ']');
</ins><span class="cx">             representation.append(prot);
</span><span class="cx">             representation.append(&quot;, &quot;);
</span><span class="cx">         }
</span><span class="lines">@@ -359,7 +359,7 @@
</span><span class="cx">     if (representation.length() &gt;= 3)
</span><span class="cx">         representation.resize(representation.length() - 2);
</span><span class="cx"> 
</span><del>-    representation.append(&quot;}&quot;);
</del><ins>+    representation.append('}');
</ins><span class="cx"> 
</span><span class="cx">     return representation.toString();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWTFChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/ChangeLog (173119 => 173120)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/ChangeLog        2014-08-29 21:32:40 UTC (rev 173119)
+++ trunk/Source/WTF/ChangeLog        2014-08-29 21:33:30 UTC (rev 173120)
</span><span class="lines">@@ -1,3 +1,13 @@
</span><ins>+2014-08-29  Joseph Pecoraro  &lt;pecoraro@apple.com&gt;
+
+        JavaScriptCore: Use ASCIILiteral where possible
+        https://bugs.webkit.org/show_bug.cgi?id=136179
+
+        Reviewed by Michael Saboff.
+
+        * wtf/text/WTFString.cpp:
+        (asciiDebug):
+
</ins><span class="cx"> 2014-08-27  Filip Pizlo  &lt;fpizlo@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         DFG should compute immediate dominators using the O(n log n) form of Lengauer and Tarjan's &quot;A Fast Algorithm for Finding Dominators in a Flowgraph&quot;
</span></span></pre></div>
<a id="trunkSourceWTFwtftextWTFStringcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/wtf/text/WTFString.cpp (173119 => 173120)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/text/WTFString.cpp        2014-08-29 21:32:40 UTC (rev 173119)
+++ trunk/Source/WTF/wtf/text/WTFString.cpp        2014-08-29 21:33:30 UTC (rev 173120)
</span><span class="lines">@@ -1206,7 +1206,7 @@
</span><span class="cx"> Vector&lt;char&gt; asciiDebug(StringImpl* impl)
</span><span class="cx"> {
</span><span class="cx">     if (!impl)
</span><del>-        return asciiDebug(String(&quot;[null]&quot;).impl());
</del><ins>+        return asciiDebug(String(ASCIILiteral(&quot;[null]&quot;)).impl());
</ins><span class="cx"> 
</span><span class="cx">     Vector&lt;char&gt; buffer;
</span><span class="cx">     for (unsigned i = 0; i &lt; impl-&gt;length(); ++i) {
</span></span></pre>
</div>
</div>

</body>
</html>