aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--misc/wasm/wasm_exec.js22
-rw-r--r--src/syscall/js/callback.go32
2 files changed, 27 insertions, 27 deletions
diff --git a/misc/wasm/wasm_exec.js b/misc/wasm/wasm_exec.js
index f3772652da..94b9552c59 100644
--- a/misc/wasm/wasm_exec.js
+++ b/misc/wasm/wasm_exec.js
@@ -387,6 +387,28 @@
await callbackPromise;
}
}
+
+ static _makeCallbackHelper(id, pendingCallbacks, go) {
+ return function() {
+ pendingCallbacks.push({ id: id, args: arguments });
+ go._resolveCallbackPromise();
+ };
+ }
+
+ static _makeEventCallbackHelper(preventDefault, stopPropagation, stopImmediatePropagation, fn) {
+ return function(event) {
+ if (preventDefault) {
+ event.preventDefault();
+ }
+ if (stopPropagation) {
+ event.stopPropagation();
+ }
+ if (stopImmediatePropagation) {
+ event.stopImmediatePropagation();
+ }
+ fn(event);
+ };
+ }
}
if (isNodeJS) {
diff --git a/src/syscall/js/callback.go b/src/syscall/js/callback.go
index 346669ad34..9d573074cb 100644
--- a/src/syscall/js/callback.go
+++ b/src/syscall/js/callback.go
@@ -8,33 +8,11 @@ package js
import "sync"
-var pendingCallbacks = Global().Get("Array").New()
-
-var makeCallbackHelper = Global().Call("eval", `
- (function(id, pendingCallbacks, go) {
- return function() {
- pendingCallbacks.push({ id: id, args: arguments });
- go._resolveCallbackPromise();
- };
- })
-`)
-
-var makeEventCallbackHelper = Global().Call("eval", `
- (function(preventDefault, stopPropagation, stopImmediatePropagation, fn) {
- return function(event) {
- if (preventDefault) {
- event.preventDefault();
- }
- if (stopPropagation) {
- event.stopPropagation();
- }
- if (stopImmediatePropagation) {
- event.stopImmediatePropagation();
- }
- fn(event);
- };
- })
-`)
+var (
+ pendingCallbacks = Global().Get("Array").New()
+ makeCallbackHelper = Global().Get("Go").Get("_makeCallbackHelper")
+ makeEventCallbackHelper = Global().Get("Go").Get("_makeEventCallbackHelper")
+)
var (
callbacksMu sync.Mutex