Ignore:
Timestamp:
Aug 3, 2008, 2:58:21 AM (17 years ago)
Author:
[email protected]
Message:

Bug 19359: JavaScriptCore behaves differently from FF2/3 and IE when handling context in catch statement
<https://bugs.webkit.org/show_bug.cgi?id=19359>

Reviewed by Cameron Zwarich

Make our catch behave like Firefox and IE, we do this by using a StaticScopeObject
instead of a generic JSObject for the scope node. We still don't make use of the
fact that we have a static scope inside the catch block, so the internal performance
of the catch block is not improved, even though technically it would be possible to
do so.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/VM/CodeGenerator.cpp

    r35368 r35533  
    11511151}
    11521152
     1153void CodeGenerator::emitPushNewScope(RegisterID* dst, Identifier& property, RegisterID* value)
     1154{
     1155    m_codeBlock->needsFullScopeChain = true;
     1156    ControlFlowContext context;
     1157    context.isFinallyBlock = false;
     1158    m_scopeContextStack.append(context);
     1159    m_dynamicScopeDepth++;
     1160   
     1161    emitOpcode(op_push_new_scope);
     1162    instructions().append(dst->index());
     1163    instructions().append(addConstant(property));
     1164    instructions().append(value->index());
     1165}
     1166
    11531167void CodeGenerator::beginSwitch(RegisterID* scrutineeRegister, SwitchInfo::SwitchType type)
    11541168{
Note: See TracChangeset for help on using the changeset viewer.