Changeset 27702 in webkit for trunk/JavaScriptCore/kjs/nodes.cpp


Ignore:
Timestamp:
Nov 11, 2007, 8:27:33 PM (18 years ago)
Author:
[email protected]
Message:

Reviewed by Sam Weinig.


Fixed http://bugs.webkit.org/show_bug.cgi?id=15902
15% of string-validate-input.js is spent compiling the same regular expression


Store a compiled representation of the regular expression in the AST.


Only a .2% SunSpider speedup overall, but a 10.6% speedup on
string-validate-input.js.

  • kjs/nodes.cpp: (KJS::RegExpNode::evaluate):
  • kjs/nodes.h: (KJS::RegExpNode::):
  • kjs/nodes2string.cpp: (KJS::RegExpNode::streamTo):
  • kjs/regexp.cpp: (KJS::RegExp::flags):
  • kjs/regexp.h: (KJS::RegExp::pattern):
  • kjs/regexp_object.cpp: (KJS::RegExpObjectImp::construct): (KJS::RegExpObjectImp::createRegExpImp):
  • kjs/regexp_object.h:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/kjs/nodes.cpp

    r27695 r27702  
    454454JSValue* RegExpNode::evaluate(ExecState* exec)
    455455{
    456   List list;
    457   list.append(jsOwnedString(m_pattern));
    458   list.append(jsOwnedString(m_flags));
    459 
    460   JSObject* reg = exec->lexicalInterpreter()->builtinRegExp();
    461   return reg->construct(exec, list);
     456    return exec->lexicalInterpreter()->builtinRegExp()->createRegExpImp(exec, m_regExp);
    462457}
    463458
Note: See TracChangeset for help on using the changeset viewer.