Ignore:
Timestamp:
Sep 17, 2013, 2:57:25 PM (12 years ago)
Author:
[email protected]
Message:

DFG doesn't properly keep scope alive for op_put_to_scope
https://bugs.webkit.org/show_bug.cgi?id=121519

Reviewed by Michael Saboff.

This was a latent bug that can't actually occur in ToT. It was uncovered by causing slow
path calls in the baseline JIT for op_put_to_scope in places where we couldn't before (but
which were necessary for gen GC).

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp

    r155729 r156003  
    31133113                Node* base = cellConstantWithStructureCheck(globalObject, status.oldStructure());
    31143114                handlePutByOffset(base, identifierNumber, static_cast<PropertyOffset>(operand), get(value));
     3115                // Keep scope alive until after put.
     3116                addToGraph(Phantom, get(scope));
    31153117                break;
    31163118            }
     
    31203122                ASSERT(!entry.couldBeWatched() || !m_graph.watchpoints().isStillValid(entry.watchpointSet()));
    31213123                addToGraph(PutGlobalVar, OpInfo(operand), get(value));
     3124                // Keep scope alive until after put.
     3125                addToGraph(Phantom, get(scope));
    31223126                break;
    31233127            }
Note: See TracChangeset for help on using the changeset viewer.