Ignore:
Timestamp:
Dec 6, 2008, 2:01:05 PM (16 years ago)
Author:
[email protected]
Message:

2008-12-05 Sam Weinig <[email protected]>

Reviewed by Cameron Zwarich.

Fix for https://bugs.webkit.org/show_bug.cgi?id=22715
Encapsulate more CodeBlock members in preparation
of moving some of them to a rare data structure.

  • bytecode/CodeBlock.cpp: (JSC::locationForOffset): (JSC::printConditionalJump): (JSC::printGetByIdOp): (JSC::printPutByIdOp): (JSC::CodeBlock::printStructure): (JSC::CodeBlock::printStructures): (JSC::CodeBlock::dump): (JSC::CodeBlock::~CodeBlock): (JSC::CodeBlock::unlinkCallers): (JSC::CodeBlock::derefStructures): (JSC::CodeBlock::refStructures): (JSC::CodeBlock::mark): (JSC::CodeBlock::getHandlerForVPC): (JSC::CodeBlock::nativeExceptionCodeForHandlerVPC): (JSC::CodeBlock::lineNumberForVPC): (JSC::CodeBlock::expressionRangeForVPC): (JSC::CodeBlock::shrinkToFit):
  • bytecode/CodeBlock.h: (JSC::CodeBlock::CodeBlock): (JSC::CodeBlock::addCaller): (JSC::CodeBlock::removeCaller): (JSC::CodeBlock::isKnownNotImmediate): (JSC::CodeBlock::isConstantRegisterIndex): (JSC::CodeBlock::getConstant): (JSC::CodeBlock::isTemporaryRegisterIndex): (JSC::CodeBlock::getStubInfo): (JSC::CodeBlock::getCallLinkInfo): (JSC::CodeBlock::instructions): (JSC::CodeBlock::setJITCode): (JSC::CodeBlock::jitCode): (JSC::CodeBlock::ownerNode): (JSC::CodeBlock::setGlobalData): (JSC::CodeBlock::setThisRegister): (JSC::CodeBlock::thisRegister): (JSC::CodeBlock::setNeedsFullScopeChain): (JSC::CodeBlock::needsFullScopeChain): (JSC::CodeBlock::setUsesEval): (JSC::CodeBlock::usesEval): (JSC::CodeBlock::setUsesArguments): (JSC::CodeBlock::usesArguments): (JSC::CodeBlock::codeType): (JSC::CodeBlock::source): (JSC::CodeBlock::sourceOffset): (JSC::CodeBlock::addGlobalResolveInstruction): (JSC::CodeBlock::numberOfPropertyAccessInstructions): (JSC::CodeBlock::addPropertyAccessInstruction): (JSC::CodeBlock::propertyAccessInstruction): (JSC::CodeBlock::numberOfCallLinkInfos): (JSC::CodeBlock::addCallLinkInfo): (JSC::CodeBlock::callLinkInfo): (JSC::CodeBlock::numberOfJumpTargets): (JSC::CodeBlock::addJumpTarget): (JSC::CodeBlock::jumpTarget): (JSC::CodeBlock::lastJumpTarget): (JSC::CodeBlock::numberOfExceptionHandlers): (JSC::CodeBlock::addExceptionHandler): (JSC::CodeBlock::exceptionHandler): (JSC::CodeBlock::addExpressionInfo): (JSC::CodeBlock::numberOfLineInfos): (JSC::CodeBlock::addLineInfo): (JSC::CodeBlock::lastLineInfo): (JSC::CodeBlock::jitReturnAddressVPCMap): (JSC::CodeBlock::numberOfIdentifiers): (JSC::CodeBlock::addIdentifier): (JSC::CodeBlock::identifier): (JSC::CodeBlock::numberOfConstantRegisters): (JSC::CodeBlock::addConstantRegister): (JSC::CodeBlock::constantRegister): (JSC::CodeBlock::addFunction): (JSC::CodeBlock::function): (JSC::CodeBlock::addFunctionExpression): (JSC::CodeBlock::functionExpression): (JSC::CodeBlock::addUnexpectedConstant): (JSC::CodeBlock::unexpectedConstant): (JSC::CodeBlock::addRegExp): (JSC::CodeBlock::regexp): (JSC::CodeBlock::symbolTable): (JSC::CodeBlock::evalCodeCache): New inline setters/getters.

(JSC::ProgramCodeBlock::ProgramCodeBlock):
(JSC::ProgramCodeBlock::~ProgramCodeBlock):
(JSC::ProgramCodeBlock::clearGlobalObject):

  • bytecode/SamplingTool.cpp: (JSC::ScopeSampleRecord::sample): (JSC::SamplingTool::dump):
  • bytecompiler/BytecodeGenerator.cpp:
  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/Label.h:
  • interpreter/CallFrame.cpp:
  • interpreter/Interpreter.cpp:
  • jit/JIT.cpp:
  • jit/JITCall.cpp:
  • jit/JITInlineMethods.h:
  • jit/JITPropertyAccess.cpp:
  • parser/Nodes.cpp:
  • runtime/Arguments.h:
  • runtime/ExceptionHelpers.cpp:
  • runtime/JSActivation.cpp:
  • runtime/JSActivation.h:
  • runtime/JSGlobalObject.cpp: Change direct access to use new getter/setters.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/interpreter/Interpreter.cpp

    r39039 r39070  
    9393static ALWAYS_INLINE Instruction* vPCForPC(CodeBlock* codeBlock, void* pc)
    9494{
    95     if (pc >= codeBlock->instructions.begin() && pc < codeBlock->instructions.end())
     95    if (pc >= codeBlock->instructions().begin() && pc < codeBlock->instructions().end())
    9696        return static_cast<Instruction*>(pc);
    9797
    98     ASSERT(codeBlock->ctiReturnAddressVPCMap.contains(pc));
    99     unsigned vPCIndex = codeBlock->ctiReturnAddressVPCMap.get(pc);
    100     return codeBlock->instructions.begin() + vPCIndex;
     98    ASSERT(codeBlock->jitReturnAddressVPCMap().contains(pc));
     99    unsigned vPCIndex = codeBlock->jitReturnAddressVPCMap().get(pc);
     100    return codeBlock->instructions().begin() + vPCIndex;
    101101}
    102102
     
    113113static int depth(CodeBlock* codeBlock, ScopeChain& sc)
    114114{
    115     if (!codeBlock->needsFullScopeChain)
     115    if (!codeBlock->needsFullScopeChain())
    116116        return 0;
    117117    int scopeDepth = 0;
     
    334334
    335335    CodeBlock* codeBlock = callFrame->codeBlock();
    336     Identifier& ident = codeBlock->identifiers[property];
     336    Identifier& ident = codeBlock->identifier(property);
    337337    do {
    338338        JSObject* o = *iter;
     
    357357    int dst = (vPC + 1)->u.operand;
    358358    int property = (vPC + 2)->u.operand;
    359     int skip = (vPC + 3)->u.operand + codeBlock->needsFullScopeChain;
     359    int skip = (vPC + 3)->u.operand + codeBlock->needsFullScopeChain();
    360360
    361361    ScopeChainNode* scopeChain = callFrame->scopeChain();
     
    367367        ASSERT(iter != end);
    368368    }
    369     Identifier& ident = codeBlock->identifiers[property];
     369    Identifier& ident = codeBlock->identifier(property);
    370370    do {
    371371        JSObject* o = *iter;
     
    399399
    400400    CodeBlock* codeBlock = callFrame->codeBlock();
    401     Identifier& ident = codeBlock->identifiers[property];
     401    Identifier& ident = codeBlock->identifier(property);
    402402    PropertySlot slot(globalObject);
    403403    if (globalObject->getPropertySlot(callFrame, ident, slot)) {
     
    451451    int dst = (vPC + 1)->u.operand;
    452452    int property = (vPC + 2)->u.operand;
    453     callFrame[dst] = inlineResolveBase(callFrame, callFrame->codeBlock()->identifiers[property], callFrame->scopeChain());
     453    callFrame[dst] = inlineResolveBase(callFrame, callFrame->codeBlock()->identifier(property), callFrame->scopeChain());
    454454}
    455455
     
    469469
    470470    CodeBlock* codeBlock = callFrame->codeBlock();
    471     Identifier& ident = codeBlock->identifiers[property];
     471    Identifier& ident = codeBlock->identifier(property);
    472472    JSObject* base;
    473473    do {
     
    505505
    506506    CodeBlock* codeBlock = callFrame->codeBlock();
    507     Identifier& ident = codeBlock->identifiers[property];
     507    Identifier& ident = codeBlock->identifier(property);
    508508    JSObject* base;
    509509    do {
     
    538538{
    539539    Register* r = callFrame->registers();
    540     Register* newEnd = r + registerOffset + newCodeBlock->numCalleeRegisters;
    541 
    542     if (LIKELY(argc == newCodeBlock->numParameters)) { // correct number of arguments
     540    Register* newEnd = r + registerOffset + newCodeBlock->m_numCalleeRegisters;
     541
     542    if (LIKELY(argc == newCodeBlock->m_numParameters)) { // correct number of arguments
    543543        if (UNLIKELY(!registerFile->grow(newEnd)))
    544544            return 0;
    545545        r += registerOffset;
    546     } else if (argc < newCodeBlock->numParameters) { // too few arguments -- fill in the blanks
    547         size_t omittedArgCount = newCodeBlock->numParameters - argc;
     546    } else if (argc < newCodeBlock->m_numParameters) { // too few arguments -- fill in the blanks
     547        size_t omittedArgCount = newCodeBlock->m_numParameters - argc;
    548548        registerOffset += omittedArgCount;
    549549        newEnd += omittedArgCount;
     
    556556            argv[i] = jsUndefined();
    557557    } else { // too many arguments -- copy expected arguments, leaving the extra arguments behind
    558         size_t numParameters = newCodeBlock->numParameters;
     558        size_t numParameters = newCodeBlock->m_numParameters;
    559559        registerOffset += numParameters;
    560560        newEnd += numParameters;
     
    594594    ScopeChainNode* scopeChain = callFrame->scopeChain();
    595595    CodeBlock* codeBlock = callFrame->codeBlock();
    596     RefPtr<EvalNode> evalNode = codeBlock->evalCodeCache.get(callFrame, programSource, scopeChain, exceptionValue);
     596    RefPtr<EvalNode> evalNode = codeBlock->evalCodeCache().get(callFrame, programSource, scopeChain, exceptionValue);
    597597
    598598    JSValue* result = jsUndefined();
     
    676676    const Register* end;
    677677
    678     if (codeBlock->codeType == GlobalCode) {
     678    if (codeBlock->codeType() == GlobalCode) {
    679679        it = registerFile->lastGlobal();
    680680        end = it + registerFile->numGlobals();
     
    686686    }
    687687   
    688     it = callFrame->registers() - RegisterFile::CallFrameHeaderSize - codeBlock->numParameters;
     688    it = callFrame->registers() - RegisterFile::CallFrameHeaderSize - codeBlock->m_numParameters;
    689689    printf("[this]                     | %10p | %10p \n", it, (*it).v()); ++it;
    690     end = it + max(codeBlock->numParameters - 1, 0); // - 1 to skip "this"
     690    end = it + max(codeBlock->m_numParameters - 1, 0); // - 1 to skip "this"
    691691    if (it != end) {
    692692        do {
     
    709709    int registerCount = 0;
    710710
    711     end = it + codeBlock->numVars;
     711    end = it + codeBlock->m_numVars;
    712712    if (it != end) {
    713713        do {
     
    719719    printf("----------------------------------------------------\n");
    720720
    721     end = it + codeBlock->numConstants;
     721    end = it + codeBlock->m_numConstants;
    722722    if (it != end) {
    723723        do {
     
    729729    printf("----------------------------------------------------\n");
    730730
    731     end = it + codeBlock->numCalleeRegisters - codeBlock->numConstants - codeBlock->numVars;
     731    end = it + codeBlock->m_numCalleeRegisters - codeBlock->m_numConstants - codeBlock->m_numVars;
    732732    if (it != end) {
    733733        do {
     
    761761        DebuggerCallFrame debuggerCallFrame(callFrame, exceptionValue);
    762762        if (callFrame->callee())
    763             debugger->returnEvent(debuggerCallFrame, codeBlock->ownerNode->sourceID(), codeBlock->ownerNode->lastLine());
     763            debugger->returnEvent(debuggerCallFrame, codeBlock->ownerNode()->sourceID(), codeBlock->ownerNode()->lastLine());
    764764        else
    765             debugger->didExecuteProgram(debuggerCallFrame, codeBlock->ownerNode->sourceID(), codeBlock->ownerNode->lastLine());
     765            debugger->didExecuteProgram(debuggerCallFrame, codeBlock->ownerNode()->sourceID(), codeBlock->ownerNode()->lastLine());
    766766    }
    767767
     
    770770            profiler->didExecute(callFrame, callFrame->callee());
    771771        else
    772             profiler->didExecute(callFrame, codeBlock->ownerNode->sourceURL(), codeBlock->ownerNode->lineNo());
     772            profiler->didExecute(callFrame, codeBlock->ownerNode()->sourceURL(), codeBlock->ownerNode()->lineNo());
    773773    }
    774774
    775775    // If this call frame created an activation or an 'arguments' object, tear it off.
    776     if (oldCodeBlock->codeType == FunctionCode && oldCodeBlock->needsFullScopeChain) {
     776    if (oldCodeBlock->codeType() == FunctionCode && oldCodeBlock->needsFullScopeChain()) {
    777777        while (!scopeChain->object->isObject(&JSActivation::info))
    778778            scopeChain = scopeChain->pop();
     
    783783    }
    784784
    785     if (oldCodeBlock->needsFullScopeChain)
     785    if (oldCodeBlock->needsFullScopeChain())
    786786        scopeChain->deref();
    787787
     
    826826                } else
    827827                    exception->putWithAttributes(callFrame, Identifier(callFrame, "line"), jsNumber(callFrame, codeBlock->lineNumberForVPC(vPC)), ReadOnly | DontDelete);
    828                 exception->putWithAttributes(callFrame, Identifier(callFrame, "sourceId"), jsNumber(callFrame, codeBlock->ownerNode->sourceID()), ReadOnly | DontDelete);
    829                 exception->putWithAttributes(callFrame, Identifier(callFrame, "sourceURL"), jsOwnedString(callFrame, codeBlock->ownerNode->sourceURL()), ReadOnly | DontDelete);
     828                exception->putWithAttributes(callFrame, Identifier(callFrame, "sourceId"), jsNumber(callFrame, codeBlock->ownerNode()->sourceID()), ReadOnly | DontDelete);
     829                exception->putWithAttributes(callFrame, Identifier(callFrame, "sourceURL"), jsOwnedString(callFrame, codeBlock->ownerNode()->sourceURL()), ReadOnly | DontDelete);
    830830            }
    831831           
     
    841841    if (Debugger* debugger = callFrame->dynamicGlobalObject()->debugger()) {
    842842        DebuggerCallFrame debuggerCallFrame(callFrame, exceptionValue);
    843         debugger->exception(debuggerCallFrame, codeBlock->ownerNode->sourceID(), codeBlock->lineNumberForVPC(vPC));
     843        debugger->exception(debuggerCallFrame, codeBlock->ownerNode()->sourceID(), codeBlock->lineNumberForVPC(vPC));
    844844    }
    845845
     
    907907
    908908    Register* oldEnd = m_registerFile.end();
    909     Register* newEnd = oldEnd + codeBlock->numParameters + RegisterFile::CallFrameHeaderSize + codeBlock->numCalleeRegisters;
     909    Register* newEnd = oldEnd + codeBlock->m_numParameters + RegisterFile::CallFrameHeaderSize + codeBlock->m_numCalleeRegisters;
    910910    if (!m_registerFile.grow(newEnd)) {
    911911        *exception = createStackOverflowError(callFrame);
     
    919919    globalObject->copyGlobalsTo(m_registerFile);
    920920
    921     CallFrame* newCallFrame = CallFrame::create(oldEnd + codeBlock->numParameters + RegisterFile::CallFrameHeaderSize);
    922     newCallFrame[codeBlock->thisRegister] = thisObj;
     921    CallFrame* newCallFrame = CallFrame::create(oldEnd + codeBlock->m_numParameters + RegisterFile::CallFrameHeaderSize);
     922    newCallFrame[codeBlock->thisRegister()] = thisObj;
    923923    newCallFrame->init(codeBlock, 0, scopeChain, CallFrame::noCaller(), 0, 0, 0);
    924924
    925     if (codeBlock->needsFullScopeChain)
     925    if (codeBlock->needsFullScopeChain())
    926926        scopeChain->ref();
    927927
     
    936936        m_reentryDepth++;
    937937#if ENABLE(JIT)
    938         if (!codeBlock->ctiCode)
     938        if (!codeBlock->jitCode())
    939939            JIT::compile(scopeChain->globalData, codeBlock);
    940         result = JIT::execute(codeBlock->ctiCode, &m_registerFile, newCallFrame, scopeChain->globalData, exception);
     940        result = JIT::execute(codeBlock->jitCode(), &m_registerFile, newCallFrame, scopeChain->globalData, exception);
    941941#else
    942942        result = privateExecute(Normal, &m_registerFile, newCallFrame, exception);
     
    10021002        m_reentryDepth++;
    10031003#if ENABLE(JIT)
    1004         if (!codeBlock->ctiCode)
     1004        if (!codeBlock->jitCode())
    10051005            JIT::compile(scopeChain->globalData, codeBlock);
    1006         result = JIT::execute(codeBlock->ctiCode, &m_registerFile, newCallFrame, scopeChain->globalData, exception);
     1006        result = JIT::execute(codeBlock->jitCode(), &m_registerFile, newCallFrame, scopeChain->globalData, exception);
    10071007#else
    10081008        result = privateExecute(Normal, &m_registerFile, newCallFrame, exception);
     
    10201020JSValue* Interpreter::execute(EvalNode* evalNode, CallFrame* callFrame, JSObject* thisObj, ScopeChainNode* scopeChain, JSValue** exception)
    10211021{
    1022     return execute(evalNode, callFrame, thisObj, m_registerFile.size() + evalNode->bytecode(scopeChain).numParameters + RegisterFile::CallFrameHeaderSize, scopeChain, exception);
     1022    return execute(evalNode, callFrame, thisObj, m_registerFile.size() + evalNode->bytecode(scopeChain).m_numParameters + RegisterFile::CallFrameHeaderSize, scopeChain, exception);
    10231023}
    10241024
     
    10491049        BatchedTransitionOptimizer optimizer(variableObject);
    10501050
    1051         const DeclarationStacks::VarStack& varStack = codeBlock->ownerNode->varStack();
     1051        const DeclarationStacks::VarStack& varStack = codeBlock->ownerNode()->varStack();
    10521052        DeclarationStacks::VarStack::const_iterator varStackEnd = varStack.end();
    10531053        for (DeclarationStacks::VarStack::const_iterator it = varStack.begin(); it != varStackEnd; ++it) {
     
    10591059        }
    10601060
    1061         const DeclarationStacks::FunctionStack& functionStack = codeBlock->ownerNode->functionStack();
     1061        const DeclarationStacks::FunctionStack& functionStack = codeBlock->ownerNode()->functionStack();
    10621062        DeclarationStacks::FunctionStack::const_iterator functionStackEnd = functionStack.end();
    10631063        for (DeclarationStacks::FunctionStack::const_iterator it = functionStack.begin(); it != functionStackEnd; ++it) {
     
    10691069
    10701070    Register* oldEnd = m_registerFile.end();
    1071     Register* newEnd = m_registerFile.start() + globalRegisterOffset + codeBlock->numCalleeRegisters;
     1071    Register* newEnd = m_registerFile.start() + globalRegisterOffset + codeBlock->m_numCalleeRegisters;
    10721072    if (!m_registerFile.grow(newEnd)) {
    10731073        *exception = createStackOverflowError(callFrame);
     
    10781078
    10791079    // a 0 codeBlock indicates a built-in caller
    1080     newCallFrame[codeBlock->thisRegister] = thisObj;
     1080    newCallFrame[codeBlock->thisRegister()] = thisObj;
    10811081    newCallFrame->init(codeBlock, 0, scopeChain, callFrame->addHostCallFrameFlag(), 0, 0, 0);
    10821082
    1083     if (codeBlock->needsFullScopeChain)
     1083    if (codeBlock->needsFullScopeChain())
    10841084        scopeChain->ref();
    10851085
     
    10941094        m_reentryDepth++;
    10951095#if ENABLE(JIT)
    1096         if (!codeBlock->ctiCode)
     1096        if (!codeBlock->jitCode())
    10971097            JIT::compile(scopeChain->globalData, codeBlock);
    1098         result = JIT::execute(codeBlock->ctiCode, &m_registerFile, newCallFrame, scopeChain->globalData, exception);
     1098        result = JIT::execute(codeBlock->jitCode(), &m_registerFile, newCallFrame, scopeChain->globalData, exception);
    10991099#else
    11001100        result = privateExecute(Normal, &m_registerFile, newCallFrame, exception);
     
    11181118    switch (debugHookID) {
    11191119        case DidEnterCallFrame:
    1120             debugger->callEvent(callFrame, callFrame->codeBlock()->ownerNode->sourceID(), firstLine);
     1120            debugger->callEvent(callFrame, callFrame->codeBlock()->ownerNode()->sourceID(), firstLine);
    11211121            return;
    11221122        case WillLeaveCallFrame:
    1123             debugger->returnEvent(callFrame, callFrame->codeBlock()->ownerNode->sourceID(), lastLine);
     1123            debugger->returnEvent(callFrame, callFrame->codeBlock()->ownerNode()->sourceID(), lastLine);
    11241124            return;
    11251125        case WillExecuteStatement:
    1126             debugger->atStatement(callFrame, callFrame->codeBlock()->ownerNode->sourceID(), firstLine);
     1126            debugger->atStatement(callFrame, callFrame->codeBlock()->ownerNode()->sourceID(), firstLine);
    11271127            return;
    11281128        case WillExecuteProgram:
    1129             debugger->willExecuteProgram(callFrame, callFrame->codeBlock()->ownerNode->sourceID(), firstLine);
     1129            debugger->willExecuteProgram(callFrame, callFrame->codeBlock()->ownerNode()->sourceID(), firstLine);
    11301130            return;
    11311131        case DidExecuteProgram:
    1132             debugger->didExecuteProgram(callFrame, callFrame->codeBlock()->ownerNode->sourceID(), lastLine);
     1132            debugger->didExecuteProgram(callFrame, callFrame->codeBlock()->ownerNode()->sourceID(), lastLine);
    11331133            return;
    11341134        case DidReachBreakpoint:
    1135             debugger->didReachBreakpoint(callFrame, callFrame->codeBlock()->ownerNode->sourceID(), lastLine);
     1135            debugger->didReachBreakpoint(callFrame, callFrame->codeBlock()->ownerNode()->sourceID(), lastLine);
    11361136            return;
    11371137    }
     
    12271227    int dst = (++vPC)->u.operand;
    12281228    CodeBlock* codeBlock = callFrame->codeBlock();
    1229     Identifier& property = codeBlock->identifiers[(++vPC)->u.operand];
     1229    Identifier& property = codeBlock->identifier((++vPC)->u.operand);
    12301230    JSValue* value = callFrame[(++vPC)->u.operand].jsValue(callFrame);
    12311231    JSObject* scope = new (callFrame) JSStaticScopeObject(callFrame, property, value, DontDelete);
     
    14861486    Instruction* handlerVPC = 0;
    14871487
    1488     Instruction* vPC = callFrame->codeBlock()->instructions.begin();
     1488    Instruction* vPC = callFrame->codeBlock()->instructions().begin();
    14891489    Profiler** enabledProfilerReference = Profiler::enabledProfilerReference();
    14901490    unsigned tickCount = m_ticksUntilNextTimeoutCheck + 1;
     
    15751575        int dst = (++vPC)->u.operand;
    15761576        int regExp = (++vPC)->u.operand;
    1577         callFrame[dst] = new (globalData) RegExpObject(callFrame->scopeChain()->globalObject()->regExpStructure(), callFrame->codeBlock()->regexps[regExp]);
     1577        callFrame[dst] = new (globalData) RegExpObject(callFrame->scopeChain()->globalObject()->regExpStructure(), callFrame->codeBlock()->regexp(regExp));
    15781578
    15791579        ++vPC;
     
    24132413        int dst = (++vPC)->u.operand;
    24142414        int index = (++vPC)->u.operand;
    2415         int skip = (++vPC)->u.operand + callFrame->codeBlock()->needsFullScopeChain;
     2415        int skip = (++vPC)->u.operand + callFrame->codeBlock()->needsFullScopeChain();
    24162416
    24172417        ScopeChainNode* scopeChain = callFrame->scopeChain();
     
    24352435         */
    24362436        int index = (++vPC)->u.operand;
    2437         int skip = (++vPC)->u.operand + callFrame->codeBlock()->needsFullScopeChain;
     2437        int skip = (++vPC)->u.operand + callFrame->codeBlock()->needsFullScopeChain();
    24382438        int value = (++vPC)->u.operand;
    24392439
     
    25162516
    25172517        CodeBlock* codeBlock = callFrame->codeBlock();
    2518         Identifier& ident = codeBlock->identifiers[property];
     2518        Identifier& ident = codeBlock->identifier(property);
    25192519        JSValue* baseValue = callFrame[base].jsValue(callFrame);
    25202520        PropertySlot slot(baseValue);
     
    25482548                int offset = vPC[5].u.operand;
    25492549
    2550                 ASSERT(baseObject->get(callFrame, callFrame->codeBlock()->identifiers[vPC[3].u.operand]) == baseObject->getDirectOffset(offset));
     2550                ASSERT(baseObject->get(callFrame, callFrame->codeBlock()->identifier(vPC[3].u.operand)) == baseObject->getDirectOffset(offset));
    25512551                callFrame[dst] = baseObject->getDirectOffset(offset);
    25522552
     
    25822582                    int offset = vPC[6].u.operand;
    25832583
    2584                     ASSERT(protoObject->get(callFrame, callFrame->codeBlock()->identifiers[vPC[3].u.operand]) == protoObject->getDirectOffset(offset));
     2584                    ASSERT(protoObject->get(callFrame, callFrame->codeBlock()->identifier(vPC[3].u.operand)) == protoObject->getDirectOffset(offset));
    25852585                    callFrame[dst] = protoObject->getDirectOffset(offset);
    25862586
     
    26372637                        int offset = vPC[7].u.operand;
    26382638
    2639                         ASSERT(baseObject->get(callFrame, callFrame->codeBlock()->identifiers[vPC[3].u.operand]) == baseObject->getDirectOffset(offset));
     2639                        ASSERT(baseObject->get(callFrame, callFrame->codeBlock()->identifier(vPC[3].u.operand)) == baseObject->getDirectOffset(offset));
    26402640                        callFrame[dst] = baseObject->getDirectOffset(offset);
    26412641
     
    26602660        int property = vPC[3].u.operand;
    26612661
    2662         Identifier& ident = callFrame->codeBlock()->identifiers[property];
     2662        Identifier& ident = callFrame->codeBlock()->identifier(property);
    26632663        JSValue* baseValue = callFrame[base].jsValue(callFrame);
    26642664        PropertySlot slot(baseValue);
     
    27262726        CodeBlock* codeBlock = callFrame->codeBlock();
    27272727        JSValue* baseValue = callFrame[base].jsValue(callFrame);
    2728         Identifier& ident = codeBlock->identifiers[property];
     2728        Identifier& ident = codeBlock->identifier(property);
    27292729        PutPropertySlot slot;
    27302730        baseValue->put(callFrame, ident, callFrame[value].jsValue(callFrame), slot);
     
    27752775                int value = vPC[3].u.operand;
    27762776                unsigned offset = vPC[7].u.operand;
    2777                 ASSERT(baseObject->offsetForLocation(baseObject->getDirectLocation(callFrame->codeBlock()->identifiers[vPC[2].u.operand])) == offset);
     2777                ASSERT(baseObject->offsetForLocation(baseObject->getDirectLocation(callFrame->codeBlock()->identifier(vPC[2].u.operand))) == offset);
    27782778                baseObject->putDirectOffset(offset, callFrame[value].jsValue(callFrame));
    27792779
     
    28102810                unsigned offset = vPC[5].u.operand;
    28112811               
    2812                 ASSERT(baseObject->offsetForLocation(baseObject->getDirectLocation(callFrame->codeBlock()->identifiers[vPC[2].u.operand])) == offset);
     2812                ASSERT(baseObject->offsetForLocation(baseObject->getDirectLocation(callFrame->codeBlock()->identifier(vPC[2].u.operand))) == offset);
    28132813                baseObject->putDirectOffset(offset, callFrame[value].jsValue(callFrame));
    28142814
     
    28352835
    28362836        JSValue* baseValue = callFrame[base].jsValue(callFrame);
    2837         Identifier& ident = callFrame->codeBlock()->identifiers[property];
     2837        Identifier& ident = callFrame->codeBlock()->identifier(property);
    28382838        PutPropertySlot slot;
    28392839        baseValue->put(callFrame, ident, callFrame[value].jsValue(callFrame), slot);
     
    28562856
    28572857        JSObject* baseObj = callFrame[base].jsValue(callFrame)->toObject(callFrame);
    2858         Identifier& ident = callFrame->codeBlock()->identifiers[property];
     2858        Identifier& ident = callFrame->codeBlock()->identifier(property);
    28592859        JSValue* result = jsBoolean(baseObj->deleteProperty(callFrame, ident));
    28602860        CHECK_FOR_EXCEPTION();
     
    32653265        int func = (++vPC)->u.operand;
    32663266
    3267         callFrame[dst] = callFrame->codeBlock()->functions[func]->makeFunction(callFrame, callFrame->scopeChain());
     3267        callFrame[dst] = callFrame->codeBlock()->function(func)->makeFunction(callFrame, callFrame->scopeChain());
    32683268
    32693269        ++vPC;
     
    32813281        int func = (++vPC)->u.operand;
    32823282
    3283         callFrame[dst] = callFrame->codeBlock()->functionExpressions[func]->makeFunction(callFrame, callFrame->scopeChain());
     3283        callFrame[dst] = callFrame->codeBlock()->functionExpression(func)->makeFunction(callFrame, callFrame->scopeChain());
    32843284
    32853285        ++vPC;
     
    33603360
    33613361            callFrame->init(newCodeBlock, vPC + 5, callDataScopeChain, previousCallFrame, dst, argCount, asFunction(v));
    3362             vPC = newCodeBlock->instructions.begin();
     3362            vPC = newCodeBlock->instructions().begin();
    33633363
    33643364#if ENABLE(OPCODE_STATS)
     
    34143414
    34153415        int src = (++vPC)->u.operand;
    3416         ASSERT(callFrame->codeBlock()->needsFullScopeChain);
     3416        ASSERT(callFrame->codeBlock()->needsFullScopeChain());
    34173417
    34183418        asActivation(callFrame[src].getJSValue())->copyRegisters(callFrame->optionalCalleeArguments());
     
    34343434        */
    34353435
    3436         ASSERT(callFrame->codeBlock()->usesArguments && !callFrame->codeBlock()->needsFullScopeChain);
     3436        ASSERT(callFrame->codeBlock()->usesArguments() && !callFrame->codeBlock()->needsFullScopeChain());
    34373437
    34383438        callFrame->optionalCalleeArguments()->copyRegisters();
     
    34533453        int result = (++vPC)->u.operand;
    34543454
    3455         if (callFrame->codeBlock()->needsFullScopeChain)
     3455        if (callFrame->codeBlock()->needsFullScopeChain())
    34563456            callFrame->scopeChain()->deref();
    34573457
     
    34833483        CodeBlock* codeBlock = callFrame->codeBlock();
    34843484       
    3485         for (size_t count = codeBlock->numVars; i < count; ++i)
     3485        for (size_t count = codeBlock->m_numVars; i < count; ++i)
    34863486            callFrame[i] = jsUndefined();
    34873487
    3488         for (size_t count = codeBlock->constantRegisters.size(), j = 0; j < count; ++i, ++j)
    3489             callFrame[i] = codeBlock->constantRegisters[j];
     3488        for (size_t count = codeBlock->numberOfConstantRegisters(), j = 0; j < count; ++i, ++j)
     3489            callFrame[i] = codeBlock->constantRegister(j);
    34903490
    34913491        ++vPC;
     
    35083508        CodeBlock* codeBlock = callFrame->codeBlock();
    35093509
    3510         for (size_t count = codeBlock->numVars; i < count; ++i)
     3510        for (size_t count = codeBlock->m_numVars; i < count; ++i)
    35113511            callFrame[i] = jsUndefined();
    35123512
    3513         for (size_t count = codeBlock->constantRegisters.size(), j = 0; j < count; ++i, ++j)
    3514             callFrame[i] = codeBlock->constantRegisters[j];
     3513        for (size_t count = codeBlock->numberOfConstantRegisters(), j = 0; j < count; ++i, ++j)
     3514            callFrame[i] = codeBlock->constantRegister(j);
    35153515
    35163516        int dst = (++vPC)->u.operand;
    3517         JSActivation* activation = new (globalData) JSActivation(callFrame, static_cast<FunctionBodyNode*>(codeBlock->ownerNode));
     3517        JSActivation* activation = new (globalData) JSActivation(callFrame, static_cast<FunctionBodyNode*>(codeBlock->ownerNode()));
    35183518        callFrame[dst] = activation;
    35193519        callFrame->setScopeChain(callFrame->scopeChain()->copy()->push(activation));
     
    36123612
    36133613            callFrame->init(newCodeBlock, vPC + 7, callDataScopeChain, previousCallFrame, dst, argCount, asFunction(v));
    3614             vPC = newCodeBlock->instructions.begin();
     3614            vPC = newCodeBlock->instructions().begin();
    36153615
    36163616#if ENABLE(OPCODE_STATS)
     
    38133813        int dst = (++vPC)->u.operand;
    38143814        int src = (++vPC)->u.operand;
    3815         callFrame[dst] = callFrame->codeBlock()->unexpectedConstants[src];
     3815        callFrame[dst] = callFrame->codeBlock()->unexpectedConstant(src);
    38163816
    38173817        ++vPC;
     
    38313831
    38323832        CodeBlock* codeBlock = callFrame->codeBlock();
    3833         callFrame[dst] = Error::create(callFrame, (ErrorType)type, codeBlock->unexpectedConstants[message]->toString(callFrame), codeBlock->lineNumberForVPC(vPC), codeBlock->ownerNode->sourceID(), codeBlock->ownerNode->sourceURL());
     3833        callFrame[dst] = Error::create(callFrame, (ErrorType)type, codeBlock->unexpectedConstant(message)->toString(callFrame), codeBlock->lineNumberForVPC(vPC), codeBlock->ownerNode()->sourceID(), codeBlock->ownerNode()->sourceURL());
    38343834
    38353835        ++vPC;
     
    38433843        */
    38443844
    3845         if (callFrame->codeBlock()->needsFullScopeChain) {
     3845        if (callFrame->codeBlock()->needsFullScopeChain()) {
    38463846            ScopeChainNode* scopeChain = callFrame->scopeChain();
    38473847            ASSERT(scopeChain->refCount > 1);
     
    38683868        ASSERT(callFrame[base].jsValue(callFrame)->isObject());
    38693869        JSObject* baseObj = asObject(callFrame[base].jsValue(callFrame));
    3870         Identifier& ident = callFrame->codeBlock()->identifiers[property];
     3870        Identifier& ident = callFrame->codeBlock()->identifier(property);
    38713871        ASSERT(callFrame[function].jsValue(callFrame)->isObject());
    38723872        baseObj->defineGetter(callFrame, ident, asObject(callFrame[function].jsValue(callFrame)));
     
    38923892        ASSERT(callFrame[base].jsValue(callFrame)->isObject());
    38933893        JSObject* baseObj = asObject(callFrame[base].jsValue(callFrame));
    3894         Identifier& ident = callFrame->codeBlock()->identifiers[property];
     3894        Identifier& ident = callFrame->codeBlock()->identifier(property);
    38953895        ASSERT(callFrame[function].jsValue(callFrame)->isObject());
    38963896        baseObj->defineSetter(callFrame, ident, asObject(callFrame[function].jsValue(callFrame)));
     
    39983998
    39993999    CodeBlock* codeBlock = functionCallFrame->codeBlock();
    4000     if (codeBlock->usesArguments) {
    4001         ASSERT(codeBlock->codeType == FunctionCode);
    4002         SymbolTable& symbolTable = codeBlock->symbolTable;
     4000    if (codeBlock->usesArguments()) {
     4001        ASSERT(codeBlock->codeType() == FunctionCode);
     4002        SymbolTable& symbolTable = codeBlock->symbolTable();
    40034003        int argumentsIndex = symbolTable.get(functionCallFrame->propertyNames().arguments.ustring().rep()).getIndex();
    40044004        return functionCallFrame[argumentsIndex].jsValue(callFrame);
     
    40484048    Instruction* vPC = vPCForPC(callerCodeBlock, callFrame->returnPC());
    40494049    lineNumber = callerCodeBlock->lineNumberForVPC(vPC - 1);
    4050     sourceID = callerCodeBlock->ownerNode->sourceID();
    4051     sourceURL = callerCodeBlock->ownerNode->sourceURL();
     4050    sourceID = callerCodeBlock->ownerNode()->sourceID();
     4051    sourceURL = callerCodeBlock->ownerNode()->sourceURL();
    40524052    function = callerFrame->callee();
    40534053}
     
    40884088    // *_second method to achieve a similar (but not quite the same) effect.
    40894089
    4090     unsigned vPCIndex = codeBlock->ctiReturnAddressVPCMap.get(returnAddress);
    4091     Instruction* vPC = codeBlock->instructions.begin() + vPCIndex;
     4090    unsigned vPCIndex = codeBlock->jitReturnAddressVPCMap().get(returnAddress);
     4091    Instruction* vPC = codeBlock->instructions().begin() + vPCIndex;
    40924092
    40934093    // Cache hit: Specialize instruction and ref Structures.
     
    41764176    // *_second method to achieve a similar (but not quite the same) effect.
    41774177
    4178     unsigned vPCIndex = codeBlock->ctiReturnAddressVPCMap.get(returnAddress);
    4179     Instruction* vPC = codeBlock->instructions.begin() + vPCIndex;
     4178    unsigned vPCIndex = codeBlock->jitReturnAddressVPCMap().get(returnAddress);
     4179    Instruction* vPC = codeBlock->instructions().begin() + vPCIndex;
    41804180
    41814181    // Cache hit: Specialize instruction and ref Structures.
     
    44254425    CTI_STACK_HACK();
    44264426
    4427     if (LIKELY(ARG_registerFile->grow(ARG_callFrame + ARG_callFrame->codeBlock()->numCalleeRegisters)))
     4427    if (LIKELY(ARG_registerFile->grow(ARG_callFrame + ARG_callFrame->codeBlock()->m_numCalleeRegisters)))
    44284428        return;
    44294429
     
    45834583
    45844584        CodeBlock* codeBlock = callFrame->codeBlock();
    4585         unsigned vPCIndex = codeBlock->ctiReturnAddressVPCMap.get(CTI_RETURN_ADDRESS);
    4586         Instruction* vPC = codeBlock->instructions.begin() + vPCIndex;
     4585        unsigned vPCIndex = codeBlock->jitReturnAddressVPCMap().get(CTI_RETURN_ADDRESS);
     4586        Instruction* vPC = codeBlock->instructions().begin() + vPCIndex;
    45874587
    45884588        ASSERT(slot.slotBase()->isObject());
     
    46674667    Structure* structure = asCell(baseValue)->structure();
    46684668    CodeBlock* codeBlock = callFrame->codeBlock();
    4669     Instruction* vPC = codeBlock->instructions.begin() + codeBlock->ctiReturnAddressVPCMap.get(CTI_RETURN_ADDRESS);
     4669    Instruction* vPC = codeBlock->instructions().begin() + codeBlock->jitReturnAddressVPCMap().get(CTI_RETURN_ADDRESS);
    46704670
    46714671    ASSERT(slot.slotBase()->isObject());
     
    47764776        CallFrame* callFrame = ARG_callFrame;
    47774777        CodeBlock* codeBlock = callFrame->codeBlock();
    4778         ASSERT(codeBlock->ctiReturnAddressVPCMap.contains(CTI_RETURN_ADDRESS));
    4779         unsigned vPCIndex = codeBlock->ctiReturnAddressVPCMap.get(CTI_RETURN_ADDRESS);
    4780         ARG_globalData->exception = createInvalidParamError(callFrame, "instanceof", baseVal, codeBlock->instructions.begin() + vPCIndex, codeBlock);
     4778        ASSERT(codeBlock->jitReturnAddressVPCMap().contains(CTI_RETURN_ADDRESS));
     4779        unsigned vPCIndex = codeBlock->jitReturnAddressVPCMap().get(CTI_RETURN_ADDRESS);
     4780        ARG_globalData->exception = createInvalidParamError(callFrame, "instanceof", baseVal, codeBlock->instructions().begin() + vPCIndex, codeBlock);
    47814781        VM_THROW_EXCEPTION();
    47824782    }
     
    48494849    CodeBlock* newCodeBlock = &asFunction(ARG_src1)->body()->bytecode(callDataScopeChain);
    48504850
    4851     if (!newCodeBlock->ctiCode)
     4851    if (!newCodeBlock->jitCode())
    48524852        JIT::compile(ARG_globalData, newCodeBlock);
    48534853
     
    48634863    int argCount = ARG_int3;
    48644864
    4865     ASSERT(argCount != newCodeBlock->numParameters);
     4865    ASSERT(argCount != newCodeBlock->m_numParameters);
    48664866
    48674867    CallFrame* oldCallFrame = callFrame->callerFrame();
    48684868
    4869     if (argCount > newCodeBlock->numParameters) {
    4870         size_t numParameters = newCodeBlock->numParameters;
     4869    if (argCount > newCodeBlock->m_numParameters) {
     4870        size_t numParameters = newCodeBlock->m_numParameters;
    48714871        Register* r = callFrame->registers() + numParameters;
    48724872
     
    48784878        callFrame->setCallerFrame(oldCallFrame);
    48794879    } else {
    4880         size_t omittedArgCount = newCodeBlock->numParameters - argCount;
     4880        size_t omittedArgCount = newCodeBlock->m_numParameters - argCount;
    48814881        Register* r = callFrame->registers() + omittedArgCount;
    4882         Register* newEnd = r + newCodeBlock->numCalleeRegisters;
     4882        Register* newEnd = r + newCodeBlock->m_numCalleeRegisters;
    48834883        if (!ARG_registerFile->grow(newEnd)) {
    48844884            // Rewind to the previous call frame because op_call already optimistically
     
    49084908    JSFunction* callee = asFunction(ARG_src1);
    49094909    CodeBlock* codeBlock = &callee->body()->bytecode(callee->m_scopeChain.node());
    4910     if (!codeBlock->ctiCode)
     4910    if (!codeBlock->jitCode())
    49114911        JIT::compile(ARG_globalData, codeBlock);
    49124912
    49134913    ctiRepatchCallByReturnAddress(ARG_returnAddress2, ARG_globalData->interpreter->m_ctiVirtualCallLink);
    49144914
    4915     return codeBlock->ctiCode;
     4915    return codeBlock->jitCode();
    49164916}
    49174917
     
    49224922    JSFunction* callee = asFunction(ARG_src1);
    49234923    CodeBlock* codeBlock = &callee->body()->bytecode(callee->m_scopeChain.node());
    4924     if (!codeBlock->ctiCode)
     4924    if (!codeBlock->jitCode())
    49254925        JIT::compile(ARG_globalData, codeBlock);
    49264926
    49274927    CallLinkInfo* callLinkInfo = &ARG_callFrame->callerFrame()->codeBlock()->getCallLinkInfo(ARG_returnAddress2);
    4928     JIT::linkCall(callee, codeBlock, codeBlock->ctiCode, callLinkInfo, ARG_int3);
    4929 
    4930     return codeBlock->ctiCode;
     4928    JIT::linkCall(callee, codeBlock, codeBlock->jitCode(), callLinkInfo, ARG_int3);
     4929
     4930    return codeBlock->jitCode();
    49314931}
    49324932
     
    49354935    CTI_STACK_HACK();
    49364936
    4937     JSActivation* activation = new (ARG_globalData) JSActivation(ARG_callFrame, static_cast<FunctionBodyNode*>(ARG_callFrame->codeBlock()->ownerNode));
     4937    JSActivation* activation = new (ARG_globalData) JSActivation(ARG_callFrame, static_cast<FunctionBodyNode*>(ARG_callFrame->codeBlock()->ownerNode()));
    49384938    ARG_callFrame->setScopeChain(ARG_callFrame->scopeChain()->copy()->push(activation));
    49394939    return activation;
     
    50085008    CTI_STACK_HACK();
    50095009
    5010     ASSERT(ARG_callFrame->codeBlock()->needsFullScopeChain);
     5010    ASSERT(ARG_callFrame->codeBlock()->needsFullScopeChain());
    50115011    asActivation(ARG_src1)->copyRegisters(ARG_callFrame->optionalCalleeArguments());
    50125012}
     
    50165016    CTI_STACK_HACK();
    50175017
    5018     ASSERT(ARG_callFrame->codeBlock()->usesArguments && !ARG_callFrame->codeBlock()->needsFullScopeChain);
     5018    ASSERT(ARG_callFrame->codeBlock()->usesArguments() && !ARG_callFrame->codeBlock()->needsFullScopeChain());
    50195019    ARG_callFrame->optionalCalleeArguments()->copyRegisters();
    50205020}
     
    50405040    CTI_STACK_HACK();
    50415041
    5042     ASSERT(ARG_callFrame->codeBlock()->needsFullScopeChain);
     5042    ASSERT(ARG_callFrame->codeBlock()->needsFullScopeChain());
    50435043    ARG_callFrame->scopeChain()->deref();
    50445044}
     
    50755075
    50765076    CodeBlock* codeBlock = callFrame->codeBlock();
    5077     ASSERT(codeBlock->ctiReturnAddressVPCMap.contains(CTI_RETURN_ADDRESS));
    5078     unsigned vPCIndex = codeBlock->ctiReturnAddressVPCMap.get(CTI_RETURN_ADDRESS);
    5079     ARG_globalData->exception = createUndefinedVariableError(callFrame, ident, codeBlock->instructions.begin() + vPCIndex, codeBlock);
     5077    ASSERT(codeBlock->jitReturnAddressVPCMap().contains(CTI_RETURN_ADDRESS));
     5078    unsigned vPCIndex = codeBlock->jitReturnAddressVPCMap().get(CTI_RETURN_ADDRESS);
     5079    ARG_globalData->exception = createUndefinedVariableError(callFrame, ident, codeBlock->instructions().begin() + vPCIndex, codeBlock);
    50805080    VM_THROW_EXCEPTION();
    50815081}
     
    52025202
    52035203    CodeBlock* codeBlock = callFrame->codeBlock();
    5204     ASSERT(codeBlock->ctiReturnAddressVPCMap.contains(CTI_RETURN_ADDRESS));
    5205     unsigned vPCIndex = codeBlock->ctiReturnAddressVPCMap.get(CTI_RETURN_ADDRESS);
    5206     ARG_globalData->exception = createUndefinedVariableError(callFrame, ident, codeBlock->instructions.begin() + vPCIndex, codeBlock);
     5204    ASSERT(codeBlock->jitReturnAddressVPCMap().contains(CTI_RETURN_ADDRESS));
     5205    unsigned vPCIndex = codeBlock->jitReturnAddressVPCMap().get(CTI_RETURN_ADDRESS);
     5206    ARG_globalData->exception = createUndefinedVariableError(callFrame, ident, codeBlock->instructions().begin() + vPCIndex, codeBlock);
    52075207    VM_THROW_EXCEPTION_2();
    52085208}
     
    53605360
    53615361    CodeBlock* codeBlock = callFrame->codeBlock();
    5362     ASSERT(codeBlock->ctiReturnAddressVPCMap.contains(CTI_RETURN_ADDRESS));
    5363     unsigned vPCIndex = codeBlock->ctiReturnAddressVPCMap.get(CTI_RETURN_ADDRESS);
    5364     ARG_globalData->exception = createUndefinedVariableError(callFrame, ident, codeBlock->instructions.begin() + vPCIndex, codeBlock);
     5362    ASSERT(codeBlock->jitReturnAddressVPCMap().contains(CTI_RETURN_ADDRESS));
     5363    unsigned vPCIndex = codeBlock->jitReturnAddressVPCMap().get(CTI_RETURN_ADDRESS);
     5364    ARG_globalData->exception = createUndefinedVariableError(callFrame, ident, codeBlock->instructions().begin() + vPCIndex, codeBlock);
    53655365    VM_THROW_EXCEPTION();
    53665366}
     
    55995599
    56005600    CodeBlock* codeBlock = callFrame->codeBlock();
    5601     ASSERT(codeBlock->ctiReturnAddressVPCMap.contains(CTI_RETURN_ADDRESS));
    5602     unsigned vPCIndex = codeBlock->ctiReturnAddressVPCMap.get(CTI_RETURN_ADDRESS);
    5603     ARG_globalData->exception = createUndefinedVariableError(callFrame, ident, codeBlock->instructions.begin() + vPCIndex, codeBlock);
     5601    ASSERT(codeBlock->jitReturnAddressVPCMap().contains(CTI_RETURN_ADDRESS));
     5602    unsigned vPCIndex = codeBlock->jitReturnAddressVPCMap().get(CTI_RETURN_ADDRESS);
     5603    ARG_globalData->exception = createUndefinedVariableError(callFrame, ident, codeBlock->instructions().begin() + vPCIndex, codeBlock);
    56045604    VM_THROW_EXCEPTION_2();
    56055605}
     
    57575757    CodeBlock* codeBlock = callFrame->codeBlock();
    57585758
    5759     ASSERT(codeBlock->ctiReturnAddressVPCMap.contains(CTI_RETURN_ADDRESS));
    5760     unsigned vPCIndex = codeBlock->ctiReturnAddressVPCMap.get(CTI_RETURN_ADDRESS);
     5759    ASSERT(codeBlock->jitReturnAddressVPCMap().contains(CTI_RETURN_ADDRESS));
     5760    unsigned vPCIndex = codeBlock->jitReturnAddressVPCMap().get(CTI_RETURN_ADDRESS);
    57615761
    57625762    JSValue* exceptionValue = ARG_src1;
    57635763    ASSERT(exceptionValue);
    57645764
    5765     Instruction* handlerVPC = ARG_globalData->interpreter->throwException(callFrame, exceptionValue, codeBlock->instructions.begin() + vPCIndex, true);
     5765    Instruction* handlerVPC = ARG_globalData->interpreter->throwException(callFrame, exceptionValue, codeBlock->instructions().begin() + vPCIndex, true);
    57665766
    57675767    if (!handlerVPC) {
     
    59115911        CallFrame* callFrame = ARG_callFrame;
    59125912        CodeBlock* codeBlock = callFrame->codeBlock();
    5913         ASSERT(codeBlock->ctiReturnAddressVPCMap.contains(CTI_RETURN_ADDRESS));
    5914         unsigned vPCIndex = codeBlock->ctiReturnAddressVPCMap.get(CTI_RETURN_ADDRESS);
    5915         ARG_globalData->exception = createInvalidParamError(callFrame, "in", baseVal, codeBlock->instructions.begin() + vPCIndex, codeBlock);
     5913        ASSERT(codeBlock->jitReturnAddressVPCMap().contains(CTI_RETURN_ADDRESS));
     5914        unsigned vPCIndex = codeBlock->jitReturnAddressVPCMap().get(CTI_RETURN_ADDRESS);
     5915        ARG_globalData->exception = createInvalidParamError(callFrame, "in", baseVal, codeBlock->instructions().begin() + vPCIndex, codeBlock);
    59165916        VM_THROW_EXCEPTION();
    59175917    }
     
    60786078    unsigned lineNumber = ARG_int3;
    60796079
    6080     return Error::create(callFrame, static_cast<ErrorType>(type), message->toString(callFrame), lineNumber, codeBlock->ownerNode->sourceID(), codeBlock->ownerNode->sourceURL());
     6080    return Error::create(callFrame, static_cast<ErrorType>(type), message->toString(callFrame), lineNumber, codeBlock->ownerNode()->sourceID(), codeBlock->ownerNode()->sourceURL());
    60816081}
    60826082
     
    61026102    JSGlobalData* globalData = ARG_globalData;
    61036103
    6104     ASSERT(codeBlock->ctiReturnAddressVPCMap.contains(globalData->exceptionLocation));
    6105     unsigned vPCIndex = codeBlock->ctiReturnAddressVPCMap.get(globalData->exceptionLocation);
     6104    ASSERT(codeBlock->jitReturnAddressVPCMap().contains(globalData->exceptionLocation));
     6105    unsigned vPCIndex = codeBlock->jitReturnAddressVPCMap().get(globalData->exceptionLocation);
    61066106
    61076107    JSValue* exceptionValue = globalData->exception;
     
    61096109    globalData->exception = noValue();
    61106110
    6111     Instruction* handlerVPC = globalData->interpreter->throwException(callFrame, exceptionValue, codeBlock->instructions.begin() + vPCIndex, false);
     6111    Instruction* handlerVPC = globalData->interpreter->throwException(callFrame, exceptionValue, codeBlock->instructions().begin() + vPCIndex, false);
    61126112
    61136113    if (!handlerVPC) {
Note: See TracChangeset for help on using the changeset viewer.