Ejemplo n.º 1
0
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());
}
Ejemplo n.º 2
0
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);
}
Ejemplo n.º 3
0
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));
}
Ejemplo n.º 4
0
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));
}