diff options
Diffstat (limited to '')
| -rw-r--r-- | web/callback.js | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/web/callback.js b/web/callback.js index 178b8e9..e277cf5 100644 --- a/web/callback.js +++ b/web/callback.js | |||
| @@ -31,8 +31,15 @@ addCallbackFunction: function(f) { | |||
| 31 | 31 | ||
| 32 | callFunction__deps: [ 'cbfl', 'validateCallbackId' ], | 32 | callFunction__deps: [ 'cbfl', 'validateCallbackId' ], |
| 33 | callFunction: function(id, arg) { | 33 | callFunction: function(id, arg) { |
| 34 | // This is a workaround related to usign WASM64 | ||
| 35 | // JavaScript's UTF8ToString expects a pointer argument, which for JS is | ||
| 36 | // of type "number", but WASM64 is passing a BigInt. See also: | ||
| 37 | // https://github.com/emscripten-core/emscripten/issues/21541 | ||
| 38 | // (but I could not make the suggested solution work in this case). | ||
| 39 | // TODO: check if there is a better workaround. | ||
| 40 | const non64_arg = Number(arg); | ||
| 34 | if (_validateCallbackId(id)) | 41 | if (_validateCallbackId(id)) |
| 35 | _cbfl[id](UTF8ToString(arg)); | 42 | _cbfl[id](UTF8ToString(non64_arg)); |
| 36 | }, | 43 | }, |
| 37 | 44 | ||
| 38 | callFunctionInt__deps: [ 'cbfl', 'validateCallbackId' ], | 45 | callFunctionInt__deps: [ 'cbfl', 'validateCallbackId' ], |
