Changeset 36244 in webkit for trunk/JavaScriptCore/kjs/nodes.cpp
- Timestamp:
- Sep 6, 2008, 10:44:58 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/kjs/nodes.cpp
r36036 r36244 263 263 RegisterID* RegExpNode::emitCode(CodeGenerator& generator, RegisterID* dst) 264 264 { 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()); 267 268 if (dst == ignoredResult()) 268 269 return 0; 269 return generator.emitNewRegExp(generator.finalDestination(dst), m_regExp.get());270 return generator.emitNewRegExp(generator.finalDestination(dst), regExp.get()); 270 271 } 271 272 … … 1630 1631 RefPtr<LabelID> finallyEndLabel = generator.newLabel(); 1631 1632 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()); 1632 1636 generator.emitJump(finallyEndLabel.get()); 1633 1637 … … 1635 1639 RefPtr<RegisterID> tempExceptionRegister = generator.emitCatch(generator.newTemporary(), tryStartLabel.get(), generator.emitLabel(generator.newLabel().get()).get()); 1636 1640 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()); 1637 1644 generator.emitThrow(tempExceptionRegister.get()); 1638 1645
Note:
See TracChangeset
for help on using the changeset viewer.