JSValue JSActivation::argumentsGetter(ExecState*, JSValue slotBase, const Identifier&) { JSActivation* activation = asActivation(slotBase); CallFrame* callFrame = CallFrame::create(activation->d()->registers); int argumentsRegister = activation->d()->functionExecutable->generatedBytecode().argumentsRegister(); if (!callFrame->r(argumentsRegister).jsValue()) { JSValue arguments = JSValue(new (callFrame) Arguments(callFrame)); callFrame->r(argumentsRegister) = arguments; callFrame->r(unmodifiedArgumentsRegister(argumentsRegister)) = arguments; } ASSERT(callFrame->r(argumentsRegister).jsValue().inherits(&Arguments::info)); return callFrame->r(argumentsRegister).jsValue(); }