Changeset 127574 in webkit for trunk/Source/JavaScriptCore/parser


Ignore:
Timestamp:
Sep 5, 2012, 4:04:33 AM (13 years ago)
Author:
[email protected]
Message:

Fix the uses of String::operator+=() for Mac
https://bugs.webkit.org/show_bug.cgi?id=95818

Patch by Benjamin Poulain <[email protected]> on 2012-09-05
Reviewed by Dan Bernstein.

Source/JavaScriptCore:

  • jsc.cpp:

(functionJSCStack): Use StringBuilder to create the stack dump, it is faster
and avoid String::operator+=().

  • parser/Parser.h:

(JSC::Parser::updateErrorMessageSpecialCase):
(JSC::Parser::updateErrorMessage):
(JSC::Parser::updateErrorWithNameAndMessage):
Use the String operators (and makeString) to concatenate the strings.

Source/WebCore:

  • bindings/js/JSCSSStyleDeclarationCustom.cpp:

(WebCore::JSCSSStyleDeclaration::putDelegate):
This is a legitimate use of String::append(), it is the only
concatenation in this function.

  • loader/appcache/ManifestParser.cpp:

(WebCore::parseManifest): Ditto.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/parser/Parser.h

    r127191 r127574  
    736736    ALWAYS_INLINE void updateErrorMessageSpecialCase(JSTokenType expectedToken)
    737737    {
    738         String errorMessage;
    739738        switch (expectedToken) {
    740739        case RESERVED_IF_STRICT:
    741             errorMessage = "Use of reserved word '";
    742             errorMessage += getToken().impl();
    743             errorMessage += "' in strict mode";
    744             m_errorMessage = errorMessage.impl();
     740            m_errorMessage = "Use of reserved word '" + getToken() + "' in strict mode";
    745741            return;
    746742        case RESERVED:
    747             errorMessage = "Use of reserved word '";
    748             errorMessage += getToken().impl();
    749             errorMessage += "'";
    750             m_errorMessage = errorMessage.impl();
     743            m_errorMessage = "Use of reserved word '" + getToken() + '\'';
    751744            return;
    752745        case NUMBER:
    753             errorMessage = "Unexpected number '";
    754             errorMessage += getToken().impl();
    755             errorMessage += "'";
    756             m_errorMessage = errorMessage.impl();
     746            m_errorMessage = "Unexpected number '" + getToken() + '\'';
    757747            return;
    758748        case IDENT:
    759             errorMessage = "Expected an identifier but found '";
    760             errorMessage += getToken().impl();
    761             errorMessage += "' instead";
    762             m_errorMessage = errorMessage.impl();
     749            m_errorMessage = "Expected an identifier but found '" + getToken() + "' instead";
    763750            return;
    764751        case STRING:
    765             errorMessage = "Unexpected string ";
    766             errorMessage += getToken().impl();
    767             m_errorMessage = errorMessage.impl();
     752            m_errorMessage = "Unexpected string " + getToken();
    768753            return;
    769754        case ERRORTOK:
    770             errorMessage = "Unrecognized token '";
    771             errorMessage += getToken().impl();
    772             errorMessage += "'";
    773             m_errorMessage = errorMessage.impl();
     755            m_errorMessage = "Unrecognized token '" + getToken() + '\'';
    774756            return;
    775757        case EOFTOK: 
    776             m_errorMessage = "Unexpected EOF";
     758            m_errorMessage = ASCIILiteral("Unexpected EOF");
    777759            return;
    778760        case RETURN:
    779             m_errorMessage = "Return statements are only valid inside functions";
     761            m_errorMessage = ASCIILiteral("Return statements are only valid inside functions");
    780762            return;
    781763        default:
    782764            ASSERT_NOT_REACHED();
    783             m_errorMessage = "internal error";
     765            m_errorMessage = ASCIILiteral("internal error");
    784766            return;
    785767        }
     
    807789            else
    808790                updateErrorMessageSpecialCase(expectedToken);
    809         } 
     791        }
    810792    }
    811793   
     
    813795    {
    814796        m_error = true;
    815         String prefix(beforeMsg);
    816         String postfix(afterMsg);
    817         prefix += " '";
    818         prefix += name.impl();
    819         prefix += "' ";
    820         prefix += postfix;
    821         m_errorMessage = prefix.impl();
    822     }
    823    
    824     NEVER_INLINE void updateErrorMessage(const char* msg)
     797        m_errorMessage = makeString(beforeMsg, " '", name, "' ", afterMsg);
     798    }
     799   
     800    NEVER_INLINE void updateErrorMessage(const char* msg)
    825801    {   
    826802        m_error = true;
Note: See TracChangeset for help on using the changeset viewer.