Changeset 37428 in webkit for trunk/JavaScriptCore/kjs/JSActivation.cpp
- Timestamp:
- Oct 8, 2008, 10:50:42 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/kjs/JSActivation.cpp
r37427 r37428 40 40 const ClassInfo JSActivation::info = { "JSActivation", 0, 0, 0 }; 41 41 42 JSActivation::JSActivation( CallFrame* callFrame, PassRefPtr<FunctionBodyNode> functionBody)43 : Base( callFrame->globalData().activationStructureID, new JSActivationData(functionBody, callFrame))42 JSActivation::JSActivation(ExecState* exec, PassRefPtr<FunctionBodyNode> functionBody, Register* registers) 43 : Base(exec->globalData().activationStructureID, new JSActivationData(functionBody, registers)) 44 44 { 45 45 } … … 154 154 JSValue* JSActivation::argumentsGetter(ExecState* exec, const Identifier&, const PropertySlot& slot) 155 155 { 156 JSActivation* activation= static_cast<JSActivation*>(slot.slotBase());156 JSActivation* thisObj = static_cast<JSActivation*>(slot.slotBase()); 157 157 158 if ( activation->d()->functionBody->usesArguments()) {158 if (thisObj->d()->functionBody->usesArguments()) { 159 159 PropertySlot slot; 160 activation->symbolTableGet(exec->propertyNames().arguments, slot);160 thisObj->symbolTableGet(exec->propertyNames().arguments, slot); 161 161 return slot.getValue(exec, exec->propertyNames().arguments); 162 162 } 163 163 164 CallFrame* callFrame = CallFrame::create(activation->d()->registers); 165 Arguments* arguments = callFrame->optionalCalleeArguments(); 164 Arguments* arguments = static_cast<Arguments*>(thisObj->d()->registers[RegisterFile::OptionalCalleeArguments].getJSValue()); 166 165 if (!arguments) { 167 arguments = new (exec) Arguments(exec );166 arguments = new (exec) Arguments(exec, &thisObj->registerAt(0)); 168 167 arguments->copyRegisters(); 169 callFrame->setCalleeArguments(arguments);168 thisObj->d()->registers[RegisterFile::OptionalCalleeArguments] = arguments; 170 169 } 171 170 ASSERT(arguments->isObject(&Arguments::info));
Note:
See TracChangeset
for help on using the changeset viewer.