diff options
Diffstat (limited to 'test/wasm2js/atomics_32.2asm.js')
-rw-r--r-- | test/wasm2js/atomics_32.2asm.js | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/test/wasm2js/atomics_32.2asm.js b/test/wasm2js/atomics_32.2asm.js index 89425ac94..6eb655e18 100644 --- a/test/wasm2js/atomics_32.2asm.js +++ b/test/wasm2js/atomics_32.2asm.js @@ -30,9 +30,14 @@ memorySegments[1] = base64DecodeToExistingUint8Array(new Uint8Array(6), 0, "d29y var f64ScratchView = new Float64Array(scratchBuffer); function wasm2js_atomic_wait_i32(ptr, expected, timeoutLow, timeoutHigh) { - if (timeoutLow != -1 || timeoutHigh != -1) throw 'unsupported timeout'; + var timeout = Infinity; + if (timeoutHigh >= 0) { + // Convert from nanoseconds to milliseconds + // Taken from convertI32PairToI53 in emscripten's library_int53.js + timeout = ((timeoutLow / 1e6) >>> 0) + timeoutHigh * (4294967296 / 1e6); + } var view = new Int32Array(bufferView.buffer); // TODO cache - var result = Atomics.wait(view, ptr, expected); + var result = Atomics.wait(view, ptr >> 2, expected, timeout); if (result == 'ok') return 0; if (result == 'not-equal') return 1; if (result == 'timed-out') return 2; |