Ignore:
Timestamp:
Aug 17, 2017, 5:19:39 PM (8 years ago)
Author:
[email protected]
Message:

Teach DFGFixupPhase.cpp that the current scope is always a cell
https://bugs.webkit.org/show_bug.cgi?id=175610

Patch by Robin Morisset <[email protected]> on 2017-08-17
Reviewed by Keith Miller.

Also teach it that the argument to with can usually be speculated to be an object,
since toObject() is called on it.

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compilePushWithScope):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compilePushWithScope):

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/jit/JITOperations.cpp

    r220778 r220890  
    20112011}
    20122012
     2013JSCell* JIT_OPERATION operationPushWithScopeObject(ExecState* exec, JSCell* currentScopeCell, JSObject* object)
     2014{
     2015    VM& vm = exec->vm();
     2016    NativeCallFrameTracer tracer(&vm, exec);
     2017    JSScope* currentScope = jsCast<JSScope*>(currentScopeCell);
     2018    return JSWithScope::create(vm, exec->lexicalGlobalObject(), currentScope, object);
     2019}
     2020
    20132021EncodedJSValue JIT_OPERATION operationInstanceOf(ExecState* exec, EncodedJSValue encodedValue, EncodedJSValue encodedProto)
    20142022{
Note: See TracChangeset for help on using the changeset viewer.