Ignore:
Timestamp:
Dec 12, 2008, 2:48:53 PM (16 years ago)
Author:
[email protected]
Message:

2008-12-12 Cameron Zwarich <[email protected]>

Reviewed by Sam Weinig.

Bug 22828: Do not inspect bytecode instruction stream for op_get_by_id exception information
<https://bugs.webkit.org/show_bug.cgi?id=22828>

In order to remove the bytecode instruction stream after generating
native code, all inspection of bytecode instructions at runtime must
be removed. One particular instance of this is the special handling of
exceptions thrown by the op_get_by_id emitted directly before an
op_construct or an op_instanceof. This patch moves that information to
an auxiliary data structure in CodeBlock.

  • bytecode/CodeBlock.cpp: (JSC::CodeBlock::getByIdExceptionInfoForBytecodeOffset):
  • bytecode/CodeBlock.h: (JSC::CodeBlock::addGetByIdExceptionInfo):
  • bytecompiler/BytecodeGenerator.cpp: (JSC::BytecodeGenerator::emitConstruct):
  • bytecompiler/BytecodeGenerator.h: (JSC::BytecodeGenerator::emitGetByIdExceptionInfo):
  • parser/Nodes.cpp: (JSC::InstanceOfNode::emitBytecode):
  • runtime/ExceptionHelpers.cpp: (JSC::createNotAnObjectError):
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/parser/Nodes.cpp

    r39083 r39255  
    11651165
    11661166    generator.emitExpressionInfo(divot(), startOffset(), endOffset());
     1167    generator.emitGetByIdExceptionInfo(op_instanceof);
    11671168    RegisterID* src2Prototype = generator.emitGetById(generator.newTemporary(), src2.get(), generator.globalData()->propertyNames->prototype);
    11681169
Note: See TracChangeset for help on using the changeset viewer.