(pages, offset)
| 108 | } |
| 109 | |
| 110 | function TestAtomicI32Wait(pages, offset) { |
| 111 | if (!%IsAtomicsWaitAllowed()) return; |
| 112 | |
| 113 | let memory = CreateBigSharedWasmMemory64(pages); |
| 114 | assertEquals(kAtomicWaitNotEqual, WasmI32AtomicWait(memory, offset, 0, 42, -1)); |
| 115 | assertEquals(kAtomicWaitTimedOut, WasmI32AtomicWait(memory, offset, 0, 0, 0)); |
| 116 | assertEquals(kAtomicWaitNotEqual, WasmI32AtomicWait(memory, 0, offset, 42, -1)); |
| 117 | assertEquals(kAtomicWaitTimedOut, WasmI32AtomicWait(memory, 0, offset, 0, 0)); |
| 118 | |
| 119 | let i32a = new Int32Array(memory.buffer); |
| 120 | i32a[offset / 4] = 1; |
| 121 | |
| 122 | assertEquals(kAtomicWaitNotEqual, WasmI32AtomicWait(memory, offset, 0, 0, -1)); |
| 123 | assertEquals(kAtomicWaitTimedOut, WasmI32AtomicWait(memory, offset, 0, 1, 0)); |
| 124 | assertEquals(kAtomicWaitNotEqual, WasmI32AtomicWait(memory, 0, offset, 0, -1)); |
| 125 | assertEquals(kAtomicWaitTimedOut, WasmI32AtomicWait(memory, 0, offset, 1, 0)); |
| 126 | |
| 127 | assertEquals(0, WasmAtomicNotify(memory, offset, /*index*/4, 1)); |
| 128 | } |
| 129 | |
| 130 | function TestAtomicI64Wait(pages, offset) { |
| 131 | if (!%IsAtomicsWaitAllowed()) return; |
no test coverage detected