Ignore:
Timestamp:
Oct 8, 2008, 10:50:42 AM (17 years ago)
Author:
[email protected]
Message:

Roll out r37427 because it causes an infinite recursion loading about:blank.

https://bugs.webkit.org/show_bug.cgi?id=21476

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/kjs/JSActivation.cpp

    r37427 r37428  
    4040const ClassInfo JSActivation::info = { "JSActivation", 0, 0, 0 };
    4141
    42 JSActivation::JSActivation(CallFrame* callFrame, PassRefPtr<FunctionBodyNode> functionBody)
    43     : Base(callFrame->globalData().activationStructureID, new JSActivationData(functionBody, callFrame))
     42JSActivation::JSActivation(ExecState* exec, PassRefPtr<FunctionBodyNode> functionBody, Register* registers)
     43    : Base(exec->globalData().activationStructureID, new JSActivationData(functionBody, registers))
    4444{
    4545}
     
    154154JSValue* JSActivation::argumentsGetter(ExecState* exec, const Identifier&, const PropertySlot& slot)
    155155{
    156     JSActivation* activation = static_cast<JSActivation*>(slot.slotBase());
     156    JSActivation* thisObj = static_cast<JSActivation*>(slot.slotBase());
    157157
    158     if (activation->d()->functionBody->usesArguments()) {
     158    if (thisObj->d()->functionBody->usesArguments()) {
    159159        PropertySlot slot;
    160         activation->symbolTableGet(exec->propertyNames().arguments, slot);
     160        thisObj->symbolTableGet(exec->propertyNames().arguments, slot);
    161161        return slot.getValue(exec, exec->propertyNames().arguments);
    162162    }
    163163
    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());
    166165    if (!arguments) {
    167         arguments = new (exec) Arguments(exec);
     166        arguments = new (exec) Arguments(exec, &thisObj->registerAt(0));
    168167        arguments->copyRegisters();
    169         callFrame->setCalleeArguments(arguments);
     168        thisObj->d()->registers[RegisterFile::OptionalCalleeArguments] = arguments;
    170169    }
    171170    ASSERT(arguments->isObject(&Arguments::info));
Note: See TracChangeset for help on using the changeset viewer.