mirror of
https://github.com/golang/go
synced 2024-11-23 05:30:07 -07:00
syscall/js: move callback helper code to misc/wasm to avoid using eval()
This commit is contained in:
parent
b8669ef1ce
commit
a6a0268f38
@ -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) {
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user