Ignore:
Timestamp:
Dec 13, 2009, 4:27:07 PM (15 years ago)
Author:
[email protected]
Message:

https://bugs.webkit.org/show_bug.cgi?id=32496
Switch remaining cases of string construction to use StringBuilder.
Builds strings using a vector rather than using string append / addition.

Reviewed by Sam Weinig.

(JSC::FunctionExecutable::paramString):

  • runtime/FunctionConstructor.cpp:

(JSC::constructFunction):

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::encode):
(JSC::decode):
(JSC::globalFuncEscape):
(JSC::globalFuncUnescape):

  • runtime/JSONObject.cpp:

(JSC::Stringifier::stringify):
(JSC::Stringifier::indent):

  • runtime/JSString.h:
  • runtime/LiteralParser.cpp:

(JSC::LiteralParser::Lexer::lexString):

  • runtime/NumberPrototype.cpp:

(JSC::integerPartNoExp):
(JSC::numberProtoFuncToFixed):
(JSC::numberProtoFuncToPrecision):

  • runtime/Operations.h:

(JSC::jsString):

  • runtime/StringPrototype.cpp:

(JSC::substituteBackreferencesSlow):
(JSC::substituteBackreferences):
(JSC::stringProtoFuncConcat):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/runtime/FunctionConstructor.cpp

    r48836 r52075  
    2222#include "FunctionConstructor.h"
    2323
     24#include "Debugger.h"
    2425#include "FunctionPrototype.h"
    2526#include "JSFunction.h"
    2627#include "JSGlobalObject.h"
    2728#include "JSString.h"
    28 #include "Parser.h"
    29 #include "Debugger.h"
    3029#include "Lexer.h"
    3130#include "Nodes.h"
     31#include "Parser.h"
     32#include "StringBuilder.h"
    3233
    3334namespace JSC {
     
    7778        program = "(function() { \n})";
    7879    else if (args.size() == 1)
    79         program = "(function() { " + args.at(0).toString(exec) + "\n})";
     80        program = makeString("(function() { ", args.at(0).toString(exec), "\n})");
    8081    else {
    81         program = "(function(" + args.at(0).toString(exec);
    82         for (size_t i = 1; i < args.size() - 1; i++)
    83             program += "," + args.at(i).toString(exec);
    84         program += ") { " + args.at(args.size() - 1).toString(exec) + "\n})";
     82        StringBuilder builder;
     83        builder.append("(function(");
     84        builder.append(args.at(0).toString(exec));
     85        for (size_t i = 1; i < args.size() - 1; i++) {
     86            builder.append(",");
     87            builder.append(args.at(i).toString(exec));
     88        }
     89        builder.append(") { ");
     90        builder.append(args.at(args.size() - 1).toString(exec));
     91        builder.append("\n})");
     92        program = builder.release();
    8593    }
    8694
Note: See TracChangeset for help on using the changeset viewer.