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


Ignore:
Timestamp:
Sep 6, 2008, 10:44:58 PM (17 years ago)
Author:
[email protected]
Message:

Merge squirrelfish-extreme to trunk.

File:
1 edited

Legend:

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

    r36036 r36244  
    263263RegisterID* RegExpNode::emitCode(CodeGenerator& generator, RegisterID* dst)
    264264{
    265     if (!m_regExp->isValid())
    266         return emitThrowError(generator, SyntaxError, ("Invalid regular expression: " + UString(m_regExp->errorMessage())).UTF8String().c_str());
     265    RefPtr<RegExp> regExp = RegExp::create(generator.globalExec(), m_pattern, m_flags);
     266    if (!regExp->isValid())
     267        return emitThrowError(generator, SyntaxError, ("Invalid regular expression: " + UString(regExp->errorMessage())).UTF8String().c_str());
    267268    if (dst == ignoredResult())
    268269        return 0;
    269     return generator.emitNewRegExp(generator.finalDestination(dst), m_regExp.get());
     270    return generator.emitNewRegExp(generator.finalDestination(dst), regExp.get());
    270271}
    271272
     
    16301631        RefPtr<LabelID> finallyEndLabel = generator.newLabel();
    16311632        generator.emitJumpSubroutine(finallyReturnAddr.get(), finallyStart.get());
     1633        // Use a label to record the subtle fact that sret will return to the
     1634        // next instruction. sret is the only way to jump without an explicit label.
     1635        generator.emitLabel(generator.newLabel().get());
    16321636        generator.emitJump(finallyEndLabel.get());
    16331637
     
    16351639        RefPtr<RegisterID> tempExceptionRegister = generator.emitCatch(generator.newTemporary(), tryStartLabel.get(), generator.emitLabel(generator.newLabel().get()).get());
    16361640        generator.emitJumpSubroutine(finallyReturnAddr.get(), finallyStart.get());
     1641        // Use a label to record the subtle fact that sret will return to the
     1642        // next instruction. sret is the only way to jump without an explicit label.
     1643        generator.emitLabel(generator.newLabel().get());
    16371644        generator.emitThrow(tempExceptionRegister.get());
    16381645
Note: See TracChangeset for help on using the changeset viewer.