Changeset 69045 in webkit for trunk/JavaScriptCore/jit/JITStubs.cpp
- Timestamp:
- Oct 4, 2010, 3:43:18 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/jit/JITStubs.cpp
r67943 r69045 1907 1907 { 1908 1908 STUB_INIT_STACK_FRAME(stackFrame); 1909 1909 1910 ASSERT(stackFrame.callFrame->codeBlock()->codeType() != FunctionCode || !stackFrame.callFrame->codeBlock()->needsFullScopeChain() || stackFrame.callFrame->r(stackFrame.callFrame->codeBlock()->activationRegister()).jsValue()); 1910 1911 return stackFrame.args[0].function()->make(stackFrame.callFrame, stackFrame.callFrame->scopeChain()); 1911 1912 } … … 2214 2215 2215 2216 ASSERT(stackFrame.callFrame->codeBlock()->needsFullScopeChain()); 2217 JSValue activationValue = stackFrame.args[0].jsValue(); 2218 if (!activationValue) { 2219 if (JSValue v = stackFrame.args[1].jsValue()) 2220 asArguments(v)->copyRegisters(); 2221 return; 2222 } 2216 2223 JSActivation* activation = asActivation(stackFrame.args[0].jsValue()); 2217 2224 activation->copyRegisters(); … … 2686 2693 ScopeChainIterator end = scopeChain->end(); 2687 2694 ASSERT(iter != end); 2695 CodeBlock* codeBlock = callFrame->codeBlock(); 2696 bool checkTopLevel = codeBlock->codeType() == FunctionCode && codeBlock->needsFullScopeChain(); 2697 ASSERT(skip || !checkTopLevel); 2698 if (checkTopLevel && skip--) { 2699 if (callFrame->r(codeBlock->activationRegister()).jsValue()) 2700 ++iter; 2701 } 2688 2702 while (skip--) { 2689 2703 ++iter; … … 2701 2715 } while (++iter != end); 2702 2716 2703 CodeBlock* codeBlock = callFrame->codeBlock();2704 2717 unsigned vPCIndex = codeBlock->bytecodeOffset(callFrame, STUB_RETURN_ADDRESS); 2705 2718 stackFrame.globalData->exception = createUndefinedVariableError(callFrame, ident, vPCIndex, codeBlock); … … 3050 3063 FunctionExecutable* function = stackFrame.args[0].function(); 3051 3064 JSFunction* func = function->make(callFrame, callFrame->scopeChain()); 3065 ASSERT(callFrame->codeBlock()->codeType() != FunctionCode || !callFrame->codeBlock()->needsFullScopeChain() || callFrame->r(callFrame->codeBlock()->activationRegister()).jsValue()); 3052 3066 3053 3067 /* … … 3156 3170 { 3157 3171 STUB_INIT_STACK_FRAME(stackFrame); 3172 ASSERT(stackFrame.callFrame->codeBlock()->codeType() != FunctionCode || !stackFrame.callFrame->codeBlock()->needsFullScopeChain() || stackFrame.callFrame->r(stackFrame.callFrame->codeBlock()->activationRegister()).jsValue()); 3158 3173 3159 3174 CallFrame* callFrame = stackFrame.callFrame;
Note:
See TracChangeset
for help on using the changeset viewer.