<!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 <pecoraro@apple.com> 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<T>::invalidCharacterMessage):
(JSC::Lexer<T>::parseString):
(JSC::Lexer<T>::parseStringSlowCase):
(JSC::Lexer<T>::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<CharType>::Lexer::lex):
(JSC::LiteralParser<CharType>::Lexer::lexString):
(JSC::LiteralParser<CharType>::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 <pecoraro@apple.com>
+
+ 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<T>::invalidCharacterMessage):
+ (JSC::Lexer<T>::parseString):
+ (JSC::Lexer<T>::parseStringSlowCase):
+ (JSC::Lexer<T>::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<CharType>::Lexer::lex):
+ (JSC::LiteralParser<CharType>::Lexer::lexString):
+ (JSC::LiteralParser<CharType>::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 <ossy@webkit.org>
</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("real arguments");
</span><span class="cx"> }
</span><span class="cx"> if (virtualRegister.isArgument())
</span><del>- return String::format("arguments[%3d]", virtualRegister.toArgument()).impl();
</del><ins>+ return String::format("arguments[%3d]", virtualRegister.toArgument());
</ins><span class="cx">
</span><span class="cx"> return "";
</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>- ? "Postfix ++ operator applied to value that is not a reference."
- : "Postfix -- operator applied to value that is not a reference.");
</del><ins>+ ? ASCIILiteral("Postfix ++ operator applied to value that is not a reference.")
+ : ASCIILiteral("Postfix -- operator applied to value that is not a reference."));
</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>- ? "Prefix ++ operator applied to value that is not a reference."
- : "Prefix -- operator applied to value that is not a reference.");
</del><ins>+ ? ASCIILiteral("Prefix ++ operator applied to value that is not a reference.")
+ : ASCIILiteral("Prefix -- operator applied to value that is not a reference."));
</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& generator, RegisterID*)
</span><span class="cx"> {
</span><del>- return emitThrowReferenceError(generator, "Left side of assignment is not a reference.");
</del><ins>+ return emitThrowReferenceError(generator, ASCIILiteral("Left side of assignment is not a reference."));
</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& generator, RegisterID* dst)
</span><span class="cx"> {
</span><span class="cx"> if (!m_lexpr->isAssignmentLocation()) {
</span><del>- emitThrowReferenceError(generator, "Left side of for-in statement is not a reference.");
</del><ins>+ emitThrowReferenceError(generator, ASCIILiteral("Left side of for-in statement is not a reference."));
</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& generator, RegisterID* dst)
</span><span class="cx"> {
</span><span class="cx"> if (!m_lexpr->isAssignmentLocation()) {
</span><del>- emitThrowReferenceError(generator, "Left side of for-of statement is not a reference.");
</del><ins>+ emitThrowReferenceError(generator, ASCIILiteral("Left side of for-of statement is not a reference."));
</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('"');
</span><span class="cx"> } else
</span><span class="cx"> builder.append(m_targetPatterns[i].propertyName.string());
</span><del>- builder.append(":");
</del><ins>+ builder.append(':');
</ins><span class="cx"> m_targetPatterns[i].pattern->toString(builder);
</span><span class="cx"> if (i < 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& vm = exec->vm();
</span><span class="cx"> NativeCallFrameTracer tracer(&vm, exec);
</span><span class="cx"> if (size < 0) {
</span><del>- vm.throwException(exec, createRangeError(exec, "Requested length is negative"));
</del><ins>+ vm.throwException(exec, createRangeError(exec, ASCIILiteral("Requested length is negative")));
</ins><span class="cx"> return 0;
</span><span class="cx"> }
</span><span class="cx"> return bitwise_cast<char*>(ViewClass::create(exec, structure, size));
</span><span class="lines">@@ -156,7 +156,7 @@
</span><span class="cx"> RefPtr<ArrayBuffer> buffer = jsBuffer->impl();
</span><span class="cx">
</span><span class="cx"> if (buffer->byteLength() % ViewClass::elementSize) {
</span><del>- vm.throwException(exec, createRangeError(exec, "ArrayBuffer length minus the byteOffset is not a multiple of the element size"));
</del><ins>+ vm.throwException(exec, createRangeError(exec, ASCIILiteral("ArrayBuffer length minus the byteOffset is not a multiple of the element size")));
</ins><span class="cx"> return 0;
</span><span class="cx"> }
</span><span class="cx"> return bitwise_cast<char*>(
</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, "Invalid array length argument"));
</del><ins>+ vm.throwException(exec, createTypeError(exec, ASCIILiteral("Invalid array length argument")));
</ins><span class="cx"> return 0;
</span><span class="cx"> } else {
</span><span class="cx"> length = static_cast<int>(value.asNumber());
</span><span class="cx"> if (length != value.asNumber()) {
</span><del>- vm.throwException(exec, createTypeError(exec, "Invalid array length argument (fractional lengths not allowed)"));
</del><ins>+ vm.throwException(exec, createTypeError(exec, ASCIILiteral("Invalid array length argument (fractional lengths not allowed)")));
</ins><span class="cx"> return 0;
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> if (length < 0) {
</span><del>- vm.throwException(exec, createRangeError(exec, "Requested length is negative"));
</del><ins>+ vm.throwException(exec, createRangeError(exec, ASCIILiteral("Requested length is negative")));
</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->addItem(inspectorValue);
</span><span class="cx"> } else {
</span><span class="cx"> for (unsigned i = 0; i < m_arguments->argumentCount(); ++i) {
</span><del>- RefPtr<Inspector::Protocol::Runtime::RemoteObject> inspectorValue = injectedScript.wrapObject(m_arguments->argumentAt(i), "console", generatePreview);
</del><ins>+ RefPtr<Inspector::Protocol::Runtime::RemoteObject> inspectorValue = injectedScript.wrapObject(m_arguments->argumentAt(i), ASCIILiteral("console"), 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<InspectorValue> callIdValue = messageObject->get("id");
</del><ins>+ RefPtr<InspectorValue> callIdValue = messageObject->get(ASCIILiteral("id"));
</ins><span class="cx"> if (!callIdValue) {
</span><span class="cx"> reportProtocolError(nullptr, InvalidRequest, ASCIILiteral("'id' property was not found"));
</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<InspectorValue> methodValue = messageObject->get("method");
</del><ins>+ RefPtr<InspectorValue> methodValue = messageObject->get(ASCIILiteral("method"));
</ins><span class="cx"> if (!methodValue) {
</span><span class="cx"> reportProtocolError(&callId, InvalidRequest, ASCIILiteral("'method' property wasn't found"));
</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->getDirect(exec->vm(), Identifier(exec, "column"));
</span><span class="cx"> *columnNumber = columnValue && columnValue.isNumber() ? int(columnValue.toNumber(exec)) : 0;
</span><span class="cx"> JSValue sourceURLValue = exceptionObject->getDirect(exec->vm(), Identifier(exec, "sourceURL"));
</span><del>- *sourceURL = sourceURLValue && sourceURLValue.isString() ? sourceURLValue.toString(exec)->value(exec) : String("undefined");
</del><ins>+ *sourceURL = sourceURLValue && sourceURLValue.isString() ? sourceURLValue.toString(exec)->value(exec) : ASCIILiteral("undefined");
</ins><span class="cx"> exec->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->reportProtocolError(&callId, InspectorBackendDispatcher::MethodNotFound, String("'") + "${domainName}" + '.' + method + "' was not found");
</del><ins>+ m_backendDispatcher->reportProtocolError(&callId, InspectorBackendDispatcher::MethodNotFound, makeString('\\'', "${domainName}", '.', method, "' was not found"));
</ins><span class="cx"> }""")
</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<String, CallHandler>::iterator it = dispatchMap.find(method);
</span><span class="cx"> if (it == dispatchMap.end()) {
</span><del>- m_backendDispatcher->reportProtocolError(&callId, InspectorBackendDispatcher::MethodNotFound, String("'") + "${domainName}" + '.' + method + "' was not found");
</del><ins>+ m_backendDispatcher->reportProtocolError(&callId, InspectorBackendDispatcher::MethodNotFound, makeString('\\'', "${domainName}", '.', method, "' was not found"));
</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 = "eval code";
</del><ins>+ traceLine = ASCIILiteral("eval code");
</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 = "global code";
</del><ins>+ traceLine = ASCIILiteral("global code");
</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 = "[native code]";
</del><ins>+ traceLine = ASCIILiteral("[native code]");
</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(&vm, exec);
</span><span class="cx"> RegExp* regexp = static_cast<RegExp*>(regexpPtr);
</span><span class="cx"> if (!regexp->isValid()) {
</span><del>- vm.throwException(exec, createSyntaxError(exec, "Invalid flags supplied to RegExp constructor."));
</del><ins>+ vm.throwException(exec, createSyntaxError(exec, ASCIILiteral("Invalid flags supplied to RegExp constructor.")));
</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->methodTable(vm)->deleteProperty(baseObj, exec, *identifier);
</span><span class="cx"> JSValue result = jsBoolean(couldDelete);
</span><span class="cx"> if (!couldDelete && exec->codeBlock()->isStrictMode())
</span><del>- vm.throwException(exec, createTypeError(exec, "Unable to delete property."));
</del><ins>+ vm.throwException(exec, createTypeError(exec, ASCIILiteral("Unable to delete property.")));
</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<JSObject*>(exec->argument(0));
</span><span class="cx"> if (!object)
</span><del>- return JSValue::encode(jsString(exec, "<not object>"));
- return JSValue::encode(jsString(exec, toString("<Public length: ", object->getArrayLength(), "; vector length: ", object->getVectorLength(), ">")));
</del><ins>+ return JSValue::encode(jsNontrivialString(exec, ASCIILiteral("<not object>")));
+ return JSValue::encode(jsNontrivialString(exec, toString("<Public length: ", object->getArrayLength(), "; vector length: ", object->getVectorLength(), ">")));
</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->argument(0).toString(exec)->value(exec);
</span><span class="cx"> Vector<char> script;
</span><span class="cx"> if (!fillBufferWithContentsOfFile(fileName, script))
</span><del>- return JSValue::encode(exec->vm().throwException(exec, createError(exec, "Could not open file.")));
</del><ins>+ return JSValue::encode(exec->vm().throwException(exec, createError(exec, ASCIILiteral("Could not open file."))));
</ins><span class="cx">
</span><span class="cx"> GlobalObject* globalObject = GlobalObject::create(exec->vm(), GlobalObject::createStructure(exec->vm(), jsNull()), Vector<String>());
</span><span class="cx">
</span><span class="lines">@@ -898,7 +898,7 @@
</span><span class="cx"> String fileName = exec->argument(0).toString(exec)->value(exec);
</span><span class="cx"> Vector<char> script;
</span><span class="cx"> if (!fillBufferWithContentsOfFile(fileName, script))
</span><del>- return JSValue::encode(exec->vm().throwException(exec, createError(exec, "Could not open file.")));
</del><ins>+ return JSValue::encode(exec->vm().throwException(exec, createError(exec, ASCIILiteral("Could not open file."))));
</ins><span class="cx">
</span><span class="cx"> JSGlobalObject* globalObject = exec->lexicalGlobalObject();
</span><span class="cx">
</span><span class="lines">@@ -914,7 +914,7 @@
</span><span class="cx"> String fileName = exec->argument(0).toString(exec)->value(exec);
</span><span class="cx"> Vector<char> script;
</span><span class="cx"> if (!fillBufferWithContentsOfFile(fileName, script))
</span><del>- return JSValue::encode(exec->vm().throwException(exec, createError(exec, "Could not open file.")));
</del><ins>+ return JSValue::encode(exec->vm().throwException(exec, createError(exec, ASCIILiteral("Could not open file."))));
</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->argument(0).toString(exec)->value(exec);
</span><span class="cx"> Vector<char> script;
</span><span class="cx"> if (!fillBufferWithContentsOfFile(fileName, script))
</span><del>- return JSValue::encode(exec->vm().throwException(exec, createError(exec, "Could not open file.")));
</del><ins>+ return JSValue::encode(exec->vm().throwException(exec, createError(exec, ASCIILiteral("Could not open file."))));
</ins><span class="cx">
</span><span class="cx"> JSGlobalObject* globalObject = exec->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->argumentCount() < 1)
</span><del>- return JSValue::encode(exec->vm().throwException(exec, createError(exec, "Not enough arguments")));
</del><ins>+ return JSValue::encode(exec->vm().throwException(exec, createError(exec, ASCIILiteral("Not enough arguments"))));
</ins><span class="cx">
</span><span class="cx"> JSArrayBuffer* buffer = jsDynamicCast<JSArrayBuffer*>(exec->argument(0));
</span><span class="cx"> if (!buffer)
</span><del>- return JSValue::encode(exec->vm().throwException(exec, createError(exec, "Expected an array buffer")));
</del><ins>+ return JSValue::encode(exec->vm().throwException(exec, createError(exec, ASCIILiteral("Expected an array buffer"))));
</ins><span class="cx">
</span><span class="cx"> ArrayBufferContents dummyContents;
</span><span class="cx"> buffer->impl()->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 = "[Command Line]";
</del><ins>+ fileName = ASCIILiteral("[Command Line]");
</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("Interpreter");
</del><ins>+ String interpreterName(ASCIILiteral("Interpreter"));
</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 "Invalid character: '\\0'";
</del><ins>+ return ASCIILiteral("Invalid character: '\\0'");
</ins><span class="cx"> case 10:
</span><del>- return "Invalid character: '\\n'";
</del><ins>+ return ASCIILiteral("Invalid character: '\\n'");
</ins><span class="cx"> case 11:
</span><del>- return "Invalid character: '\\v'";
</del><ins>+ return ASCIILiteral("Invalid character: '\\v'");
</ins><span class="cx"> case 13:
</span><del>- return "Invalid character: '\\r'";
</del><ins>+ return ASCIILiteral("Invalid character: '\\r'");
</ins><span class="cx"> case 35:
</span><del>- return "Invalid character: '#'";
</del><ins>+ return ASCIILiteral("Invalid character: '#'");
</ins><span class="cx"> case 64:
</span><del>- return "Invalid character: '@'";
</del><ins>+ return ASCIILiteral("Invalid character: '@'");
</ins><span class="cx"> case 96:
</span><del>- return "Invalid character: '`'";
</del><ins>+ return ASCIILiteral("Invalid character: '`'");
</ins><span class="cx"> default:
</span><del>- return String::format("Invalid character '\\u%04u'", static_cast<unsigned>(m_current)).impl();
</del><ins>+ return String::format("Invalid character '\\u%04u'", static_cast<unsigned>(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 = "\\x can only be followed by a hex character sequence";
</del><ins>+ m_lexErrorMessage = ASCIILiteral("\\x can only be followed by a hex character sequence");
</ins><span class="cx"> return (atEnd() || (isASCIIHexDigit(m_current) && (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 = "\\x can only be followed by a hex character sequence";
</del><ins>+ m_lexErrorMessage = ASCIILiteral("\\x can only be followed by a hex character sequence");
</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 = "\\u can only be followed by a Unicode character sequence";
</del><ins>+ m_lexErrorMessage = ASCIILiteral("\\u can only be followed by a Unicode character sequence");
</ins><span class="cx"> return character.valueType() == UnicodeHexValue::IncompleteHex ? StringUnterminated : StringCannotBeParsed;
</span><span class="cx"> }
</span><span class="cx"> } else if (strictMode && 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 = "The only valid numeric escape in strict mode is '\\0'";
</del><ins>+ m_lexErrorMessage = ASCIILiteral("The only valid numeric escape in strict mode is '\\0'");
</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 = "Unterminated string constant";
</del><ins>+ m_lexErrorMessage = ASCIILiteral("Unterminated string constant");
</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<unsigned>(m_current) - 0xE) & 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 = "Unexpected EOF";
</del><ins>+ m_lexErrorMessage = ASCIILiteral("Unexpected EOF");
</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 = "Multiline comment was not closed properly";
</del><ins>+ m_lexErrorMessage = ASCIILiteral("Multiline comment was not closed properly");
</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 = "No hexadecimal digits after '0x'";
</del><ins>+ m_lexErrorMessage = ASCIILiteral("No hexadecimal digits after '0x'");
</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->doubleValue);
</span><span class="cx"> if (isIdentStart(m_current)) {
</span><del>- m_lexErrorMessage = "No space between hexadecimal literal and identifier";
</del><ins>+ m_lexErrorMessage = ASCIILiteral("No space between hexadecimal literal and identifier");
</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 && isASCIIDigit(m_current)) {
</span><del>- m_lexErrorMessage = "Decimal integer literals with a leading zero are forbidden in strict mode";
</del><ins>+ m_lexErrorMessage = ASCIILiteral("Decimal integer literals with a leading zero are forbidden in strict mode");
</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 = "Non-number found after exponent indicator";
</del><ins>+ m_lexErrorMessage = ASCIILiteral("Non-number found after exponent indicator");
</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. "3in" is bad.
</span><span class="cx"> if (UNLIKELY(isIdentStart(m_current))) {
</span><del>- m_lexErrorMessage = "At least one digit must occur after a decimal point";
</del><ins>+ m_lexErrorMessage = ASCIILiteral("At least one digit must occur after a decimal point");
</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 = "Internal Error";
</del><ins>+ m_lexErrorMessage = ASCIILiteral("Internal Error");
</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("Thread_1", String(), 0, 0), 0, 0);
</del><ins>+ m_head = ProfileNode::create(0, CallIdentifier(ASCIILiteral("Thread_1"), 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->thisValue().toThis(exec, StrictMode).toObject(exec);
</span><span class="cx"> Arguments* arguments = jsDynamicCast<Arguments*>(thisObj);
</span><span class="cx"> if (!arguments)
</span><del>- return JSValue::encode(throwTypeError(exec, "Attempted to use Arguments iterator on non-Arguments object"));
</del><ins>+ return JSValue::encode(throwTypeError(exec, ASCIILiteral("Attempted to use Arguments iterator on non-Arguments object")));
</ins><span class="cx"> return JSValue::encode(JSArgumentsIterator::create(exec->vm(), exec->callee()->globalObject()->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->hadException())
</span><span class="cx"> return false;
</span><span class="cx"> } else if (!thisObj->methodTable(exec->vm())->deletePropertyByIndex(thisObj, exec, i)) {
</span><del>- throwTypeError(exec, "Unable to delete property.");
</del><ins>+ throwTypeError(exec, ASCIILiteral("Unable to delete property."));
</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->hadException())
</span><span class="cx"> return false;
</span><span class="cx"> } else if (!thisObj->methodTable(exec->vm())->deletePropertyByIndex(thisObj, exec, themin)) {
</span><del>- throwTypeError(exec, "Unable to delete property.");
</del><ins>+ throwTypeError(exec, ASCIILiteral("Unable to delete property."));
</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->methodTable(exec->vm())->deletePropertyByIndex(thisObj, exec, index)) {
</span><del>- throwTypeError(exec, "Unable to delete property.");
</del><ins>+ throwTypeError(exec, ASCIILiteral("Unable to delete property."));
</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& message)
</span><span class="cx"> {
</span><del>- String errorMessage = makeString(errorDescriptionForValue(exec, value)->value(exec), " ", message);
</del><ins>+ String errorMessage = makeString(errorDescriptionForValue(exec, value)->value(exec), ' ', message);
</ins><span class="cx"> JSObject* exception = errorFactory(exec, errorMessage);
</span><span class="cx"> ASSERT(exception->isErrorInstance());
</span><span class="cx"> static_cast<ErrorInstance*>(exception)->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("is not a valid argument for '", op, "'"));
</del><ins>+ return createError(exec, createTypeError, value, makeString("is not a valid argument for '", 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, "is not a constructor");
</del><ins>+ return createError(exec, createTypeError, value, ASCIILiteral("is not a constructor"));
</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, "is not a function");
</del><ins>+ return createError(exec, createTypeError, value, ASCIILiteral("is not a function"));
</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, "is not an object");
</del><ins>+ return createError(exec, createTypeError, value, ASCIILiteral("is not an object"));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> JSObject* createErrorForInvalidGlobalAssignment(ExecState* exec, const String& propertyName)
</span><span class="cx"> {
</span><del>- return createReferenceError(exec, makeString("Strict mode forbids implicit creation of global property '", propertyName, "'"));
</del><ins>+ return createReferenceError(exec, makeString("Strict mode forbids implicit creation of global property '", 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& functionBody, bool bodyIncludesBraces)
</span><span class="cx"> {
</span><span class="cx"> if (!bodyIncludesBraces)
</span><del>- functionBody = makeString("{ ", functionBody, "}");
</del><ins>+ functionBody = makeString("{ ", 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<UChar>::isWhiteSpace(ch) && !Lexer<UChar>::isLineTerminator(ch)) {
</span><span class="cx"> if (ch != ';' && ch != '}')
</span><del>- functionBody = makeString(functionBody.substringSharingImpl(0, i + 1), ";", 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->vm().throwException(exec, createRangeError(exec, "Invalid array length"));
</del><ins>+ exec->vm().throwException(exec, createRangeError(exec, ASCIILiteral("Invalid array length")));
</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, "Unable to delete property.");
</del><ins>+ throwTypeError(exec, ASCIILiteral("Unable to delete property."));
</ins><span class="cx"> return jsUndefined();
</span><span class="cx"> }
</span><span class="cx"> // Call the [[Put]] internal method of O with arguments "length", indx, and true.
</span><span class="lines">@@ -567,7 +567,7 @@
</span><span class="cx"> if (length > MAX_ARRAY_INDEX) {
</span><span class="cx"> methodTable(exec->vm())->putByIndex(this, exec, length, value, true);
</span><span class="cx"> if (!exec->hadException())
</span><del>- exec->vm().throwException(exec, createRangeError(exec, "Invalid array length"));
</del><ins>+ exec->vm().throwException(exec, createRangeError(exec, ASCIILiteral("Invalid array length")));
</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 > MAX_ARRAY_INDEX) {
</span><span class="cx"> methodTable(exec->vm())->putByIndex(this, exec, length, value, true);
</span><span class="cx"> if (!exec->hadException())
</span><del>- exec->vm().throwException(exec, createRangeError(exec, "Invalid array length"));
</del><ins>+ exec->vm().throwException(exec, createRangeError(exec, ASCIILiteral("Invalid array length")));
</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 > MAX_ARRAY_INDEX) {
</span><span class="cx"> methodTable(exec->vm())->putByIndex(this, exec, length, value, true);
</span><span class="cx"> if (!exec->hadException())
</span><del>- exec->vm().throwException(exec, createRangeError(exec, "Invalid array length"));
</del><ins>+ exec->vm().throwException(exec, createRangeError(exec, ASCIILiteral("Invalid array length")));
</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->vm())->putByIndex(this, exec, storage->length(), value, true);
</span><span class="cx"> // Per ES5.1 15.4.4.7 step 6 & 15.4.5.1 step 3.d.
</span><span class="cx"> if (!exec->hadException())
</span><del>- exec->vm().throwException(exec, createRangeError(exec, "Invalid array length"));
</del><ins>+ exec->vm().throwException(exec, createRangeError(exec, ASCIILiteral("Invalid array length")));
</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& vm, JSArrayBufferPrototype* prototype)
</span><span class="cx"> {
</span><del>- Base::finishCreation(vm, "ArrayBuffer");
</del><ins>+ Base::finishCreation(vm, ASCIILiteral("ArrayBuffer"));
</ins><span class="cx"> putDirectWithoutTransition(vm, vm.propertyNames->prototype, prototype, DontEnum | DontDelete | ReadOnly);
</span><span class="cx"> putDirectWithoutTransition(vm, vm.propertyNames->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<JSArrayBuffer*>(exec->thisValue());
</span><span class="cx"> if (!thisObject)
</span><del>- return throwVMError(exec, createTypeError(exec, "Receiver of slice must be an array buffer."));
</del><ins>+ return throwVMError(exec, createTypeError(exec, ASCIILiteral("Receiver of slice must be an array buffer.")));
</ins><span class="cx">
</span><span class="cx"> if (!exec->argumentCount())
</span><del>- return throwVMError(exec, createTypeError(exec, "Slice requires at least one argument."));
</del><ins>+ return throwVMError(exec, createTypeError(exec, ASCIILiteral("Slice requires at least one argument.")));
</ins><span class="cx">
</span><span class="cx"> int32_t begin = exec->argument(0).toInt32(exec);
</span><span class="cx"> if (exec->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<ArrayBuffer> buffer = passedBuffer;
</span><span class="cx"> if (!ArrayBufferView::verifySubRangeLength(buffer, byteOffset, byteLength, sizeof(uint8_t))) {
</span><del>- throwVMError(exec, createRangeError(exec, "Length out of range of buffer"));
</del><ins>+ throwVMError(exec, createRangeError(exec, ASCIILiteral("Length out of range of buffer")));
</ins><span class="cx"> return nullptr;
</span><span class="cx"> }
</span><span class="cx"> if (!ArrayBufferView::verifyByteOffsetAlignment(byteOffset, sizeof(uint8_t))) {
</span><del>- exec->vm().throwException(exec, createRangeError(exec, "Byte offset is not aligned"));
</del><ins>+ exec->vm().throwException(exec, createRangeError(exec, ASCIILiteral("Byte offset is not aligned")));
</ins><span class="cx"> return nullptr;
</span><span class="cx"> }
</span><span class="cx"> VM& vm = exec->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<JSDataView*>(exec->thisValue());
</span><span class="cx"> if (!dataView)
</span><del>- return throwVMError(exec, createTypeError(exec, "Receiver of DataView method must be a DataView"));
</del><ins>+ return throwVMError(exec, createTypeError(exec, ASCIILiteral("Receiver of DataView method must be a DataView")));
</ins><span class="cx">
</span><span class="cx"> if (!exec->argumentCount())
</span><del>- return throwVMError(exec, createTypeError(exec, "Need at least one argument (the byteOffset)"));
</del><ins>+ return throwVMError(exec, createTypeError(exec, ASCIILiteral("Need at least one argument (the byteOffset)")));
</ins><span class="cx">
</span><span class="cx"> unsigned byteOffset = exec->uncheckedArgument(0).toUInt32(exec);
</span><span class="cx"> if (exec->hadException())
</span><span class="lines">@@ -138,7 +138,7 @@
</span><span class="cx">
</span><span class="cx"> unsigned byteLength = dataView->length();
</span><span class="cx"> if (elementSize > byteLength || byteOffset > byteLength - elementSize)
</span><del>- return throwVMError(exec, createRangeError(exec, "Out of bounds access"));
</del><ins>+ return throwVMError(exec, createRangeError(exec, ASCIILiteral("Out of bounds access")));
</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<JSDataView*>(exec->thisValue());
</span><span class="cx"> if (!dataView)
</span><del>- return throwVMError(exec, createTypeError(exec, "Receiver of DataView method must be a DataView"));
</del><ins>+ return throwVMError(exec, createTypeError(exec, ASCIILiteral("Receiver of DataView method must be a DataView")));
</ins><span class="cx">
</span><span class="cx"> if (exec->argumentCount() < 2)
</span><del>- return throwVMError(exec, createTypeError(exec, "Need at least two argument (the byteOffset and value)"));
</del><ins>+ return throwVMError(exec, createTypeError(exec, ASCIILiteral("Need at least two argument (the byteOffset and value)")));
</ins><span class="cx">
</span><span class="cx"> unsigned byteOffset = exec->uncheckedArgument(0).toUInt32(exec);
</span><span class="cx"> if (exec->hadException())
</span><span class="lines">@@ -193,7 +193,7 @@
</span><span class="cx">
</span><span class="cx"> unsigned byteLength = dataView->length();
</span><span class="cx"> if (elementSize > byteLength || byteOffset > byteLength - elementSize)
</span><del>- return throwVMError(exec, createRangeError(exec, "Out of bounds access"));
</del><ins>+ return throwVMError(exec, createRangeError(exec, ASCIILiteral("Out of bounds access")));
</ins><span class="cx">
</span><span class="cx"> uint8_t* dataPtr = static_cast<uint8_t*>(dataView->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->Math, MathObject::create(vm, this, MathObject::createStructure(vm, this, m_objectPrototype.get())), DontEnum);
</span><span class="cx">
</span><span class="cx"> std::array<InternalFunction*, NUMBER_OF_TYPED_ARRAY_TYPES> typedArrayConstructors;
</span><del>- typedArrayConstructors[toIndex(TypeInt8)] = JSInt8ArrayConstructor::create(vm, JSInt8ArrayConstructor::createStructure(vm, this, m_functionPrototype.get()), m_typedArrays[toIndex(TypeInt8)].prototype.get(), "Int8Array");
- typedArrayConstructors[toIndex(TypeInt16)] = JSInt16ArrayConstructor::create(vm, JSInt16ArrayConstructor::createStructure(vm, this, m_functionPrototype.get()), m_typedArrays[toIndex(TypeInt16)].prototype.get(), "Int16Array");
- typedArrayConstructors[toIndex(TypeInt32)] = JSInt32ArrayConstructor::create(vm, JSInt32ArrayConstructor::createStructure(vm, this, m_functionPrototype.get()), m_typedArrays[toIndex(TypeInt32)].prototype.get(), "Int32Array");
- typedArrayConstructors[toIndex(TypeUint8)] = JSUint8ArrayConstructor::create(vm, JSUint8ArrayConstructor::createStructure(vm, this, m_functionPrototype.get()), m_typedArrays[toIndex(TypeUint8)].prototype.get(), "Uint8Array");
- typedArrayConstructors[toIndex(TypeUint8Clamped)] = JSUint8ClampedArrayConstructor::create(vm, JSUint8ClampedArrayConstructor::createStructure(vm, this, m_functionPrototype.get()), m_typedArrays[toIndex(TypeUint8Clamped)].prototype.get(), "Uint8ClampedArray");
- typedArrayConstructors[toIndex(TypeUint16)] = JSUint16ArrayConstructor::create(vm, JSUint16ArrayConstructor::createStructure(vm, this, m_functionPrototype.get()), m_typedArrays[toIndex(TypeUint16)].prototype.get(), "Uint16Array");
- typedArrayConstructors[toIndex(TypeUint32)] = JSUint32ArrayConstructor::create(vm, JSUint32ArrayConstructor::createStructure(vm, this, m_functionPrototype.get()), m_typedArrays[toIndex(TypeUint32)].prototype.get(), "Uint32Array");
- typedArrayConstructors[toIndex(TypeFloat32)] = JSFloat32ArrayConstructor::create(vm, JSFloat32ArrayConstructor::createStructure(vm, this, m_functionPrototype.get()), m_typedArrays[toIndex(TypeFloat32)].prototype.get(), "Float32Array");
- typedArrayConstructors[toIndex(TypeFloat64)] = JSFloat64ArrayConstructor::create(vm, JSFloat64ArrayConstructor::createStructure(vm, this, m_functionPrototype.get()), m_typedArrays[toIndex(TypeFloat64)].prototype.get(), "Float64Array");
- typedArrayConstructors[toIndex(TypeDataView)] = JSDataViewConstructor::create(vm, JSDataViewConstructor::createStructure(vm, this, m_functionPrototype.get()), m_typedArrays[toIndex(TypeDataView)].prototype.get(), "DataView");
</del><ins>+ typedArrayConstructors[toIndex(TypeInt8)] = JSInt8ArrayConstructor::create(vm, JSInt8ArrayConstructor::createStructure(vm, this, m_functionPrototype.get()), m_typedArrays[toIndex(TypeInt8)].prototype.get(), ASCIILiteral("Int8Array"));
+ typedArrayConstructors[toIndex(TypeInt16)] = JSInt16ArrayConstructor::create(vm, JSInt16ArrayConstructor::createStructure(vm, this, m_functionPrototype.get()), m_typedArrays[toIndex(TypeInt16)].prototype.get(), ASCIILiteral("Int16Array"));
+ typedArrayConstructors[toIndex(TypeInt32)] = JSInt32ArrayConstructor::create(vm, JSInt32ArrayConstructor::createStructure(vm, this, m_functionPrototype.get()), m_typedArrays[toIndex(TypeInt32)].prototype.get(), ASCIILiteral("Int32Array"));
+ typedArrayConstructors[toIndex(TypeUint8)] = JSUint8ArrayConstructor::create(vm, JSUint8ArrayConstructor::createStructure(vm, this, m_functionPrototype.get()), m_typedArrays[toIndex(TypeUint8)].prototype.get(), ASCIILiteral("Uint8Array"));
+ typedArrayConstructors[toIndex(TypeUint8Clamped)] = JSUint8ClampedArrayConstructor::create(vm, JSUint8ClampedArrayConstructor::createStructure(vm, this, m_functionPrototype.get()), m_typedArrays[toIndex(TypeUint8Clamped)].prototype.get(), ASCIILiteral("Uint8ClampedArray"));
+ typedArrayConstructors[toIndex(TypeUint16)] = JSUint16ArrayConstructor::create(vm, JSUint16ArrayConstructor::createStructure(vm, this, m_functionPrototype.get()), m_typedArrays[toIndex(TypeUint16)].prototype.get(), ASCIILiteral("Uint16Array"));
+ typedArrayConstructors[toIndex(TypeUint32)] = JSUint32ArrayConstructor::create(vm, JSUint32ArrayConstructor::createStructure(vm, this, m_functionPrototype.get()), m_typedArrays[toIndex(TypeUint32)].prototype.get(), ASCIILiteral("Uint32Array"));
+ typedArrayConstructors[toIndex(TypeFloat32)] = JSFloat32ArrayConstructor::create(vm, JSFloat32ArrayConstructor::createStructure(vm, this, m_functionPrototype.get()), m_typedArrays[toIndex(TypeFloat32)].prototype.get(), ASCIILiteral("Float32Array"));
+ typedArrayConstructors[toIndex(TypeFloat64)] = JSFloat64ArrayConstructor::create(vm, JSFloat64ArrayConstructor::createStructure(vm, this, m_functionPrototype.get()), m_typedArrays[toIndex(TypeFloat64)].prototype.get(), ASCIILiteral("Float64Array"));
+ typedArrayConstructors[toIndex(TypeDataView)] = JSDataViewConstructor::create(vm, JSDataViewConstructor::createStructure(vm, this, m_functionPrototype.get()), m_typedArrays[toIndex(TypeDataView)].prototype.get(), ASCIILiteral("DataView"));
</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->putDirectWithoutTransition(vm, vm.propertyNames->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->setPrototypeWithCycleCheck(exec, value))
</span><del>- exec->vm().throwException(exec, createError(exec, "cyclic __proto__ value"));
</del><ins>+ exec->vm().throwException(exec, createError(exec, ASCIILiteral("cyclic __proto__ value")));
</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& vm, JSPromisePrototype* promisePrototype)
</span><span class="cx"> {
</span><del>- Base::finishCreation(vm, "Promise");
</del><ins>+ Base::finishCreation(vm, ASCIILiteral("Promise"));
</ins><span class="cx"> putDirectWithoutTransition(vm, vm.propertyNames->prototype, promisePrototype, DontEnum | DontDelete | ReadOnly);
</span><span class="cx"> putDirectWithoutTransition(vm, vm.propertyNames->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<mode, '\''>(token);
</span><span class="cx"> }
</span><span class="cx"> }
</span><del>- m_lexErrorMessage = String::format("Unrecognized token '%c'", *m_ptr).impl();
</del><ins>+ m_lexErrorMessage = String::format("Unrecognized token '%c'", *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 < 5; i++) {
</span><span class="cx"> if (!isASCIIHexDigit(m_ptr[i])) {
</span><del>- m_lexErrorMessage = String::format("\"\\%s\" is not a valid unicode escape", String(m_ptr, 5).ascii().data()).impl();
</del><ins>+ m_lexErrorMessage = String::format("\"\\%s\" is not a valid unicode escape", 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("Invalid escape character %c", *m_ptr).impl();
</del><ins>+ m_lexErrorMessage = String::format("Invalid escape character %c", *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<CharType>& token = m_lexer.currentToken();
</span><span class="cx"> if (token.stringIs8Bit)
</span><del>- m_parseErrorMessage = String::format("Unexpected identifier \"%s\"", String(m_lexer.currentToken().stringToken8, m_lexer.currentToken().stringLength).ascii().data()).impl();
</del><ins>+ m_parseErrorMessage = String::format("Unexpected identifier \"%s\"", String(m_lexer.currentToken().stringToken8, m_lexer.currentToken().stringLength).ascii().data());
</ins><span class="cx"> else
</span><del>- m_parseErrorMessage = String::format("Unexpected identifier \"%s\"", String(m_lexer.currentToken().stringToken16, m_lexer.currentToken().stringLength).ascii().data()).impl();
</del><ins>+ m_parseErrorMessage = String::format("Unexpected identifier \"%s\"", 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("JSON Parse error: %s", m_lexer.getErrorMessage().ascii().data()).impl();
</del><ins>+ return String::format("JSON Parse error: %s", m_lexer.getErrorMessage().ascii().data());
</ins><span class="cx"> if (!m_parseErrorMessage.isEmpty())
</span><del>- return String::format("JSON Parse error: %s", m_parseErrorMessage.ascii().data()).impl();
</del><ins>+ return String::format("JSON Parse error: %s", m_parseErrorMessage.ascii().data());
</ins><span class="cx"> return ASCIILiteral("JSON Parse error: Unable to parse JSON string");
</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 "(Unreached Statement)";
</del><ins>+ return ASCIILiteral("(Unreached Statement)");
</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 < m_structureHistory.size(); i++) {
</span><span class="cx"> RefPtr<StructureShape> shape = m_structureHistory.at(i);
</span><span class="cx"> seen.append(shape->m_constructorName);
</span><del>- seen.append(" ");
</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("\nStructures:[ ");
</span><span class="cx"> for (size_t i = 0; i < m_structureHistory.size(); i++) {
</span><span class="cx"> seen.append(m_structureHistory.at(i)->stringRepresentation());
</span><del>- seen.append(" ");
</del><ins>+ seen.append(' ');
</ins><span class="cx"> }
</span><span class="cx"> if (m_structureHistory.size())
</span><del>- seen.append("]");
</del><ins>+ seen.append(']');
</ins><span class="cx">
</span><span class="cx"> if (m_structureHistory.size()) {
</span><span class="cx"> seen.append("\nLeast Common Ancestor: ");
</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 "";
</del><ins>+ return emptyString();
</ins><span class="cx">
</span><span class="cx"> if (m_structureHistory.size() && 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 + "?";
</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 "Function";
</del><ins>+ return ASCIILiteral("Function");
</ins><span class="cx"> if (doesTypeConformTo(TypeUndefined))
</span><del>- return "Undefined";
</del><ins>+ return ASCIILiteral("Undefined");
</ins><span class="cx"> if (doesTypeConformTo(TypeNull))
</span><del>- return "Null";
</del><ins>+ return ASCIILiteral("Null");
</ins><span class="cx"> if (doesTypeConformTo(TypeBoolean))
</span><del>- return "Boolean";
</del><ins>+ return ASCIILiteral("Boolean");
</ins><span class="cx"> if (doesTypeConformTo(TypeMachineInt))
</span><del>- return "Integer";
</del><ins>+ return ASCIILiteral("Integer");
</ins><span class="cx"> if (doesTypeConformTo(TypeNumber | TypeMachineInt))
</span><del>- return "Number";
</del><ins>+ return ASCIILiteral("Number");
</ins><span class="cx"> if (doesTypeConformTo(TypeString))
</span><del>- return "String";
</del><ins>+ return ASCIILiteral("String");
</ins><span class="cx">
</span><span class="cx"> if (doesTypeConformTo(TypeNull | TypeUndefined))
</span><del>- return "(?)";
</del><ins>+ return ASCIILiteral("(?)");
</ins><span class="cx">
</span><span class="cx"> if (doesTypeConformTo(TypeFunction | TypeNull | TypeUndefined))
</span><del>- return "Function?";
</del><ins>+ return ASCIILiteral("Function?");
</ins><span class="cx"> if (doesTypeConformTo(TypeBoolean | TypeNull | TypeUndefined))
</span><del>- return "Boolean?";
</del><ins>+ return ASCIILiteral("Boolean?");
</ins><span class="cx"> if (doesTypeConformTo(TypeMachineInt | TypeNull | TypeUndefined))
</span><del>- return "Integer?";
</del><ins>+ return ASCIILiteral("Integer?");
</ins><span class="cx"> if (doesTypeConformTo(TypeNumber | TypeMachineInt | TypeNull | TypeUndefined))
</span><del>- return "Number?";
</del><ins>+ return ASCIILiteral("Number?");
</ins><span class="cx"> if (doesTypeConformTo(TypeString | TypeNull | TypeUndefined))
</span><del>- return "String?";
</del><ins>+ return ASCIILiteral("String?");
</ins><span class="cx">
</span><span class="cx"> if (doesTypeConformTo(TypeObject | TypeFunction | TypeString))
</span><del>- return "Object";
</del><ins>+ return ASCIILiteral("Object");
</ins><span class="cx"> if (doesTypeConformTo(TypeObject | TypeFunction | TypeString | TypeNull | TypeUndefined))
</span><del>- return "Object?";
</del><ins>+ return ASCIILiteral("Object?");
</ins><span class="cx">
</span><del>- return "(many)";
</del><ins>+ return ASCIILiteral("(many)");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> PassRefPtr<Inspector::Protocol::Array<String>> TypeSet::allPrimitiveTypeNames() const
</span><span class="cx"> {
</span><span class="cx"> RefPtr<Inspector::Protocol::Array<String>> seen = Inspector::Protocol::Array<String>::create();
</span><span class="cx"> if (m_seenTypes & TypeUndefined)
</span><del>- seen->addItem("Undefined");
</del><ins>+ seen->addItem(ASCIILiteral("Undefined"));
</ins><span class="cx"> if (m_seenTypes & TypeNull)
</span><del>- seen->addItem("Null");
</del><ins>+ seen->addItem(ASCIILiteral("Null"));
</ins><span class="cx"> if (m_seenTypes & TypeBoolean)
</span><del>- seen->addItem("Boolean");
</del><ins>+ seen->addItem(ASCIILiteral("Boolean"));
</ins><span class="cx"> if (m_seenTypes & TypeMachineInt)
</span><del>- seen->addItem("Integer");
</del><ins>+ seen->addItem(ASCIILiteral("Integer"));
</ins><span class="cx"> if (m_seenTypes & TypeNumber)
</span><del>- seen->addItem("Number");
</del><ins>+ seen->addItem(ASCIILiteral("Number"));
</ins><span class="cx"> if (m_seenTypes & TypeString)
</span><del>- seen->addItem("String");
</del><ins>+ seen->addItem(ASCIILiteral("String"));
</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(":");
</del><ins>+ builder.append(':');
</ins><span class="cx"> builder.append(m_constructorName);
</span><del>- builder.append(":");
</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(":");
</del><ins>+ builder.append(':');
</ins><span class="cx"> builder.append("__proto__");
</span><span class="cx"> builder.append(m_proto->propertyHash());
</span><span class="cx"> }
</span><span class="lines">@@ -339,7 +339,7 @@
</span><span class="cx"> StringBuilder representation;
</span><span class="cx"> RefPtr<StructureShape> curShape = this;
</span><span class="cx">
</span><del>- representation.append("{");
</del><ins>+ representation.append('{');
</ins><span class="cx"> while (curShape) {
</span><span class="cx"> for (auto it = curShape->m_fields.begin(), end = curShape->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->m_proto) {
</span><del>- String prot = String("__proto__") + String(" [") + curShape->m_proto->m_constructorName + String("]");
</del><ins>+ String prot = makeString("__proto__ [", curShape->m_proto->m_constructorName, ']');
</ins><span class="cx"> representation.append(prot);
</span><span class="cx"> representation.append(", ");
</span><span class="cx"> }
</span><span class="lines">@@ -359,7 +359,7 @@
</span><span class="cx"> if (representation.length() >= 3)
</span><span class="cx"> representation.resize(representation.length() - 2);
</span><span class="cx">
</span><del>- representation.append("}");
</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 <pecoraro@apple.com>
+
+ 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 <fpizlo@apple.com>
</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 "A Fast Algorithm for Finding Dominators in a Flowgraph"
</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<char> asciiDebug(StringImpl* impl)
</span><span class="cx"> {
</span><span class="cx"> if (!impl)
</span><del>- return asciiDebug(String("[null]").impl());
</del><ins>+ return asciiDebug(String(ASCIILiteral("[null]")).impl());
</ins><span class="cx">
</span><span class="cx"> Vector<char> buffer;
</span><span class="cx"> for (unsigned i = 0; i < impl->length(); ++i) {
</span></span></pre>
</div>
</div>
</body>
</html>