Ignore:
Timestamp:
Feb 28, 2011, 1:05:22 PM (14 years ago)
Author:
[email protected]
Message:

2011-02-28 Oliver Hunt <[email protected]>

Reviewed by Gavin Barraclough.

Make ScopeChainNode GC allocated
https://bugs.webkit.org/show_bug.cgi?id=55283

Simplify lifetime and other issues with the scopechain
by making it gc allocated. This allows us to simplify
function exit and unwinding, as well as making the
current iterative refcounting go away.

  • JavaScriptCore.exp:
  • JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
  • bytecode/CodeBlock.cpp: (JSC::CodeBlock::createActivation):
  • bytecode/StructureStubInfo.cpp:
  • bytecompiler/BytecodeGenerator.cpp: (JSC::BytecodeGenerator::generate): (JSC::BytecodeGenerator::BytecodeGenerator): (JSC::BytecodeGenerator::emitJumpIfNotFunctionCall): (JSC::BytecodeGenerator::emitJumpIfNotFunctionApply):
  • bytecompiler/BytecodeGenerator.h:
  • debugger/Debugger.cpp: (JSC::Recompiler::operator()):
  • debugger/DebuggerCallFrame.h: (JSC::DebuggerCallFrame::scopeChain):
  • interpreter/CachedCall.h: (JSC::CachedCall::CachedCall):
  • interpreter/CallFrame.h:
  • interpreter/Interpreter.cpp: (JSC::depth): (JSC::Interpreter::unwindCallFrame): (JSC::Interpreter::throwException): (JSC::Interpreter::execute): (JSC::Interpreter::executeCall): (JSC::Interpreter::executeConstruct): (JSC::Interpreter::privateExecute):
  • jit/JITCall.cpp: (JSC::JIT::compileOpCallInitializeCallFrame): (JSC::JIT::compileOpCall):
  • jit/JITCall32_64.cpp: (JSC::JIT::compileOpCallInitializeCallFrame): (JSC::JIT::emit_op_ret): (JSC::JIT::emit_op_ret_object_or_this): (JSC::JIT::compileOpCall):
  • jit/JITOpcodes.cpp: (JSC::JIT::emit_op_end): (JSC::JIT::emit_op_ret): (JSC::JIT::emit_op_ret_object_or_this):
  • jit/JITOpcodes32_64.cpp: (JSC::JIT::emit_op_end):
  • jit/JITStubs.cpp: (JSC::DEFINE_STUB_FUNCTION):
  • jit/JITStubs.h:
  • runtime/ArgList.cpp:
  • runtime/Completion.cpp: (JSC::evaluate):
  • runtime/Completion.h:
  • runtime/DateConversion.cpp:
  • runtime/Executable.cpp: (JSC::EvalExecutable::compileInternal): (JSC::ProgramExecutable::compileInternal): (JSC::FunctionExecutable::compileForCallInternal): (JSC::FunctionExecutable::compileForConstructInternal):
  • runtime/FunctionConstructor.cpp: (JSC::constructFunction):
  • runtime/GCActivityCallbackCF.cpp:
  • runtime/Identifier.cpp:
  • runtime/JSCell.h:
  • runtime/JSChunk.cpp: Added.
  • runtime/JSChunk.h: Added.
  • runtime/JSFunction.cpp: (JSC::JSFunction::JSFunction): (JSC::JSFunction::markChildren): (JSC::JSFunction::getCallData): (JSC::JSFunction::getOwnPropertySlot): (JSC::JSFunction::getConstructData):
  • runtime/JSFunction.h: (JSC::JSFunction::scope): (JSC::JSFunction::setScope):
  • runtime/JSGlobalData.cpp: (JSC::JSGlobalData::JSGlobalData):
  • runtime/JSGlobalData.h:
  • runtime/JSGlobalObject.cpp: (JSC::JSGlobalObject::init): (JSC::JSGlobalObject::markChildren):
  • runtime/JSGlobalObject.h: (JSC::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData): (JSC::JSGlobalObject::globalScopeChain):
  • runtime/JSGlobalObjectFunctions.cpp: (JSC::globalFuncEval):
  • runtime/JSLock.cpp:
  • runtime/JSNumberCell.cpp:
  • runtime/JSZombie.cpp:
  • runtime/MarkedBlock.cpp:
  • runtime/MarkedSpace.cpp:
  • runtime/PropertyNameArray.cpp:
  • runtime/ScopeChain.cpp: (JSC::ScopeChainNode::print): (JSC::ScopeChainNode::localDepth): (JSC::ScopeChainNode::markChildren):
  • runtime/ScopeChain.h: (JSC::ScopeChainNode::ScopeChainNode): (JSC::ScopeChainNode::createStructure): (JSC::ScopeChainNode::push): (JSC::ScopeChainNode::pop): (JSC::ScopeChainIterator::ScopeChainIterator): (JSC::ScopeChainIterator::operator*): (JSC::ScopeChainIterator::operator->): (JSC::ScopeChainIterator::operator++): (JSC::ScopeChainNode::begin): (JSC::ScopeChainNode::end): (JSC::ExecState::globalData): (JSC::ExecState::lexicalGlobalObject): (JSC::ExecState::globalThisValue):
  • runtime/ScopeChainMark.h:
  • wtf/DateMath.cpp:

2011-02-28 Oliver Hunt <[email protected]>

Reviewed by Gavin Barraclough.

Make ScopeChainNode GC allocated
https://bugs.webkit.org/show_bug.cgi?id=55283

Update WebCore to deal with the absence of the ScopeChain
class.

  • ForwardingHeaders/runtime/ScopeChain.h: Added.
  • bindings/js/JSHTMLElementCustom.cpp: (WebCore::JSHTMLElement::pushEventHandlerScope):
  • bindings/js/JSJavaScriptCallFrameCustom.cpp: (WebCore::JSJavaScriptCallFrame::scopeChain): (WebCore::JSJavaScriptCallFrame::scopeType):
  • bindings/js/JSLazyEventListener.cpp: (WebCore::JSLazyEventListener::initializeJSFunction):
  • bindings/js/JSMainThreadExecState.h: (WebCore::JSMainThreadExecState::evaluate):
  • bindings/js/JSNodeCustom.cpp: (WebCore::JSNode::pushEventHandlerScope):
  • bindings/js/JavaScriptCallFrame.cpp: (WebCore::JavaScriptCallFrame::scopeChain):
  • bindings/js/JavaScriptCallFrame.h:
  • bindings/scripts/CodeGeneratorJS.pm:
  • bridge/c/c_class.cpp:
  • bridge/c/c_runtime.cpp:
  • bridge/jni/JNIBridge.cpp:
  • bridge/qt/qt_runtime.cpp: (JSC::Bindings::QtConnectionObject::execute):
  • plugins/PluginViewNone.cpp:

2011-02-28 Oliver Hunt <[email protected]>

Reviewed by Gavin Barraclough.

Make ScopeChainNode GC allocated
https://bugs.webkit.org/show_bug.cgi?id=55283

More updates for the absence of the ScopeChain class

  • WebView/WebScriptDebugDelegate.mm: (-[WebScriptCallFrame scopeChain]):
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/debugger/Debugger.cpp

    r79132 r79904  
    7777        return;
    7878
    79     ExecState* exec = function->scope().globalObject()->JSGlobalObject::globalExec();
     79    ExecState* exec = function->scope()->globalObject->JSGlobalObject::globalExec();
    8080    executable->discardCode();
    81     if (m_debugger == function->scope().globalObject()->debugger())
     81    if (m_debugger == function->scope()->globalObject->debugger())
    8282        m_sourceProviders.add(executable->source().provider(), exec);
    8383}
Note: See TracChangeset for help on using the changeset viewer.