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


Ignore:
Timestamp:
May 22, 2008, 1:17:38 AM (17 years ago)
Author:
[email protected]
Message:

JavaScriptCore:

2008-05-22 Maciej Stachowiak <[email protected]>

Reviewed by Oliver.


  • fixed <rdar://problem/5954979> crash on celtic kane JS benchmark
  • kjs/nodes.cpp: (KJS::WithNode::emitCode): (KJS::TryNode::emitCode):

LayoutTests:

2008-05-22 Maciej Stachowiak <[email protected]>

Reviewed by Oliver.


  • test case for <rdar://problem/5954979> crash on celtic kane JS benchmark
  • fast/js/try-catch-crash-expected.txt: Added.
  • fast/js/try-catch-crash.html: Added.
File:
1 edited

Legend:

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

    r33979 r34017  
    53965396RegisterID* WithNode::emitCode(CodeGenerator& generator, RegisterID* dst)
    53975397{
    5398     RegisterID* scope = generator.emitNode(m_expr.get());
    5399     generator.emitPushScope(scope);
     5398    RefPtr<RegisterID> scope = generator.emitNode(m_expr.get()); // scope must be protected until popped
     5399    generator.emitPushScope(scope.get());
    54005400    RegisterID* result = generator.emitNode(dst, m_statement.get());
    54015401    generator.emitPopScope();
     
    56855685        generator.emitJump(handlerEndLabel.get());
    56865686        RefPtr<RegisterID> exceptionRegister = generator.emitCatch(generator.newTemporary(), tryStartLabel.get(), tryEndLabel.get());
    5687         RegisterID* newScope = generator.emitNewObject(generator.newTemporary());
    5688         generator.emitPutById(newScope, m_exceptionIdent, exceptionRegister.get());
     5687        RefPtr<RegisterID> newScope = generator.emitNewObject(generator.newTemporary()); // scope must be protected until popped
     5688        generator.emitPutById(newScope.get(), m_exceptionIdent, exceptionRegister.get());
    56895689        exceptionRegister = 0; // Release register used for temporaries
    5690         generator.emitPushScope(newScope);
     5690        generator.emitPushScope(newScope.get());
    56915691        generator.emitNode(dst, m_catchBlock.get());
    56925692        generator.emitPopScope();
Note: See TracChangeset for help on using the changeset viewer.