| OLD | NEW |
| (Empty) |
| 1 diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc | |
| 2 index 5624e3f..81936c1 100644 | |
| 3 --- a/test/cctest/test-api.cc | |
| 4 +++ b/test/cctest/test-api.cc | |
| 5 @@ -17049,6 +17049,43 @@ TEST(CaptureStackTraceForUncaughtExceptionAndSetters) { | |
| 6 } | |
| 7 | |
| 8 | |
| 9 +static void StackTraceFunctionNameListenerForEval(v8::Local<v8::Message> messag
e, | |
| 10 + v8::Local<Value>) { | |
| 11 + v8::Local<v8::StackTrace> stack_trace = message->GetStackTrace(); | |
| 12 + for (int i = 0; i < stack_trace->GetFrameCount(); i++) { | |
| 13 + v8::Local<v8::StackFrame> frame = stack_trace->GetFrame(i); | |
| 14 + v8::String::Utf8Value func_name(frame->GetFunctionName()); | |
| 15 + v8::String::Utf8Value script_name(frame->GetScriptName()); | |
| 16 + printf("%s:%s, %d,%d\n", *script_name, *func_name, frame->GetLineNumber(),
frame->GetColumn()); | |
| 17 + } | |
| 18 + | |
| 19 + | |
| 20 + CHECK_EQ(5, stack_trace->GetFrameCount()); | |
| 21 + checkStackFrame("origin", "foo:0", 4, 7, false, false, | |
| 22 + stack_trace->GetFrame(0)); | |
| 23 + checkStackFrame("origin", "foo:1", 5, 27, false, false, | |
| 24 + stack_trace->GetFrame(1)); | |
| 25 + checkStackFrame("origin", "foo", 5, 27, false, false, | |
| 26 + stack_trace->GetFrame(2)); | |
| 27 + checkStackFrame("origin", "foo", 5, 27, false, false, | |
| 28 + stack_trace->GetFrame(3)); | |
| 29 + checkStackFrame("origin", "", 1, 14, false, false, stack_trace->GetFrame(4)); | |
| 30 +} | |
| 31 + | |
| 32 + | |
| 33 +TEST(CaptureStackTraceForUncaughtExceptionInEval) { | |
| 34 + LocalContext env; | |
| 35 + v8::Isolate* isolate = env->GetIsolate(); | |
| 36 + v8::HandleScope scope(isolate); | |
| 37 + isolate->SetCaptureStackTraceForUncaughtExceptions(true, 1024, | |
| 38 + v8::StackTrace::kDetailed)
; | |
| 39 + isolate->AddMessageListener(StackTraceFunctionNameListenerForEval); | |
| 40 + | |
| 41 + CompileRun("eval('throw new Error()');"); | |
| 42 + isolate->SetCaptureStackTraceForUncaughtExceptions(false); | |
| 43 +} | |
| 44 + | |
| 45 + | |
| 46 static void StackTraceFunctionNameListener(v8::Local<v8::Message> message, | |
| 47 v8::Local<Value>) { | |
| 48 v8::Local<v8::StackTrace> stack_trace = message->GetStackTrace(); | |
| OLD | NEW |