Ignore:
Timestamp:
May 19, 2010, 9:57:20 PM (15 years ago)
Author:
[email protected]
Message:

Bug 39399 - Move responsibility for verifying constructors return objects from the caller to the callee.

Reviewed by Geoff Garen.

This is a necessary step to move object creation from caller to callee.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dump):

  • bytecode/Opcode.h:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitReturn):
(JSC::BytecodeGenerator::emitConstruct):

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::isConstructor):

  • bytecompiler/NodesCodegen.cpp:

(JSC::FunctionBodyNode::emitBytecode):

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::privateExecute):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):

  • jit/JIT.h:
  • jit/JITCall.cpp:

(JSC::JIT::emit_op_constructor_ret):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_constructor_ret):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/bytecode/CodeBlock.cpp

    r59742 r59817  
    10721072            break;
    10731073        }
     1074        case op_constructor_ret: {
     1075            int r0 = (++it)->u.operand;
     1076            int r1 = (++it)->u.operand;
     1077            printf("[%4d] constructor_ret\t\t %s %s\n", location, registerName(exec, r0).data(), registerName(exec, r1).data());
     1078            break;
     1079        }
    10741080        case op_construct: {
    10751081            int dst = (++it)->u.operand;
     
    10801086            int thisRegister = (++it)->u.operand;
    10811087            printf("[%4d] construct\t %s, %s, %d, %d, %s, %s\n", location, registerName(exec, dst).data(), registerName(exec, func).data(), argCount, registerOffset, registerName(exec, proto).data(), registerName(exec, thisRegister).data());
    1082             break;
    1083         }
    1084         case op_construct_verify: {
    1085             int r0 = (++it)->u.operand;
    1086             int r1 = (++it)->u.operand;
    1087             printf("[%4d] construct_verify\t %s, %s\n", location, registerName(exec, r0).data(), registerName(exec, r1).data());
    10881088            break;
    10891089        }
Note: See TracChangeset for help on using the changeset viewer.