static void doThrow(ExecState* exec, Instruction* pc) { VM* vm = &exec->vm(); NativeCallFrameTracer tracer(vm, exec); fixupPCforExceptionIfNeeded(exec); genericThrow(vm, exec, vm->exception, pc - exec->codeBlock()->instructions().begin()); }
void* callToThrow(ExecState* exec, Instruction* pc) { JSGlobalData* globalData = &exec->globalData(); NativeCallFrameTracer tracer(globalData, exec); #if LLINT_SLOW_PATH_TRACING dataLogF("Throwing exception %s (callToThrow).\n", globalData->exception.description()); #endif fixupPCforExceptionIfNeeded(exec); genericThrow(globalData, exec, globalData->exception, pc - exec->codeBlock()->instructions().begin()); return LLInt::getCodePtr(llint_throw_during_call_trampoline); }
void interpreterThrowInCaller(ExecState* exec, ReturnAddressPtr pc) { JSGlobalData* globalData = &exec->globalData(); NativeCallFrameTracer tracer(globalData, exec); #if LLINT_SLOW_PATH_TRACING dataLogF("Throwing exception %s.\n", globalData->exception.description()); #endif fixupPCforExceptionIfNeeded(exec); genericThrow( globalData, exec, globalData->exception, exec->codeBlock()->bytecodeOffset(exec, pc)); }
void interpreterThrowInCaller(ExecState* exec, ReturnAddressPtr pc) { VM* vm = &exec->vm(); NativeCallFrameTracer tracer(vm, exec); #if LLINT_SLOW_PATH_TRACING dataLog("Throwing exception ", vm->exception, ".\n"); #endif fixupPCforExceptionIfNeeded(exec); genericThrow( vm, exec, vm->exception, exec->codeBlock()->bytecodeOffset(exec, pc)); }