Skip to content

Commit 8cd1300

Browse files
committed
add MessageListener related function and test
1 parent c4d6366 commit 8cd1300

File tree

4 files changed

+17
-1
lines changed

4 files changed

+17
-1
lines changed

v8_all_test.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,8 @@ func Test_MessageListener(t *testing.T) {
8484
script.Run()
8585
}
8686

87-
cs.AddMessageListener(true, func(message string, data interface{}) {
87+
SetCaptureStackTraceForUncaughtExceptions(true, 1)
88+
cs.AddMessageListener(false, func(message string, data interface{}) {
8889
println("golang2", message)
8990
}, nil)
9091
script = engine.Compile([]byte(`var test] = ;`), nil, nil)

v8_util.go

+9
Original file line numberDiff line numberDiff line change
@@ -171,3 +171,12 @@ func go_array_buffer_allocate(callback unsafe.Pointer, length C.size_t, initiali
171171
func go_array_buffer_free(callback unsafe.Pointer, data unsafe.Pointer, length C.size_t) {
172172
(*(*ArrayBufferFreeCallback)(callback))(data, int(length))
173173
}
174+
175+
func SetCaptureStackTraceForUncaughtExceptions(capture bool, frameLimit int) {
176+
icapture := 0
177+
if capture {
178+
icapture = 1
179+
}
180+
181+
C.V8_SetCaptureStackTraceForUncaughtExceptions(C.int(icapture), C.int(frameLimit))
182+
}

v8_wrap.cc

+4
Original file line numberDiff line numberDiff line change
@@ -1588,4 +1588,8 @@ void V8_AddMessageListener(void* callback, void* data, int simple) {
15881588
V8::AddMessageListener(V8_MessageCallback, args);
15891589
}
15901590

1591+
void V8_SetCaptureStackTraceForUncaughtExceptions(int capture, int frame_limit) {
1592+
V8::SetCaptureStackTraceForUncaughtExceptions(capture, frame_limit);
1593+
}
1594+
15911595
} // extern "C"

v8_wrap.h

+2
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@ extern void V8_Dispose_Allocator(void* raw);
6464

6565
extern void V8_AddMessageListener(void* callback, void* data, int simple);
6666

67+
extern void V8_SetCaptureStackTraceForUncaughtExceptions(int capture, int frame_limit);
68+
6769
/*
6870
engine
6971
*/

0 commit comments

Comments
 (0)