()
| 70 | let wasm = instance.exports; |
| 71 | |
| 72 | let testFct = () => { |
| 73 | // i64.shr_u |
| 74 | assertEquals(0n, wasm.i64_shr_u_dynamic(0n, 0n)); |
| 75 | assertEquals(1n, wasm.i64_shr_u_dynamic(3n, 1n)); |
| 76 | assertEquals(-1n, wasm.i64_shr_u_dynamic(-1n, 64n)); |
| 77 | assertEquals(-1n, wasm.i64_shr_u_dynamic(-1n, -64n)); |
| 78 | assertEquals(1n, wasm.i64_shr_u_dynamic(-1n, 63n)); |
| 79 | assertEquals(1n, wasm.i64_shr_u_dynamic(-1n, -1n)); |
| 80 | assertEquals(BigInt(2 ** 32 - 1), wasm.i64_shr_u_dynamic(-1n, -32n)); |
| 81 | assertEquals(8n, wasm.i64_shr_u_dynamic(16n, 65n)); |
| 82 | assertEquals(8n, wasm.i64_shr_u_dynamic(16n, -127n)); |
| 83 | |
| 84 | assertEquals(0n, wasm.i64_shr_u_by_negative_48(123n)); |
| 85 | assertEquals(BigInt(2 ** 48 - 1), wasm.i64_shr_u_by_negative_48(-1n)); |
| 86 | assertEquals(4n, wasm.i64_shr_u_by_negative_48(BigInt(2 ** 18))) |
| 87 | |
| 88 | // i64.shr_s |
| 89 | assertEquals(0n, wasm.i64_shr_s_dynamic(0n, 0n)); |
| 90 | assertEquals(1n, wasm.i64_shr_s_dynamic(3n, 1n)); |
| 91 | assertEquals(-1n, wasm.i64_shr_s_dynamic(-1n, 64n)); |
| 92 | assertEquals(-1n, wasm.i64_shr_s_dynamic(-1n, -64n)); |
| 93 | assertEquals(-1n, wasm.i64_shr_s_dynamic(-8n, 63n)); |
| 94 | assertEquals(-4n, wasm.i64_shr_s_dynamic(-8n, -63n)); |
| 95 | assertEquals(-1n, wasm.i64_shr_s_dynamic(-16n, -2n)); |
| 96 | |
| 97 | assertEquals(0n, wasm.i64_shr_s_by_negative_48(123n)); |
| 98 | assertEquals(-BigInt(2 ** 16), |
| 99 | wasm.i64_shr_s_by_negative_48(-BigInt(2 ** 32))); |
| 100 | |
| 101 | // i32.shr_u |
| 102 | assertEquals(0, wasm.i32_shr_u_dynamic(0, 0)); |
| 103 | assertEquals(1, wasm.i32_shr_u_dynamic(3, 1)); |
| 104 | assertEquals(-1, wasm.i32_shr_u_dynamic(-1, 32)); |
| 105 | assertEquals(-1, wasm.i32_shr_u_dynamic(-1, -32)); |
| 106 | assertEquals((1 << 17) - 1, wasm.i32_shr_u_dynamic(-1, 15)); |
| 107 | |
| 108 | assertEquals(123, wasm.i32_shr_u_by_negative_22((123 << 10) + 456)); |
| 109 | assertEquals((1 << 22) - 123, wasm.i32_shr_u_by_negative_22(-123 << 10)); |
| 110 | |
| 111 | // i32.shr_s |
| 112 | assertEquals(0, wasm.i32_shr_s_dynamic(0, 0)); |
| 113 | assertEquals(1, wasm.i32_shr_s_dynamic(3, 1)); |
| 114 | assertEquals(-1, wasm.i32_shr_s_dynamic(-1, 32)); |
| 115 | assertEquals(-1, wasm.i32_shr_s_dynamic(-1, -32)); |
| 116 | assertEquals(-123, wasm.i32_shr_s_dynamic(-123 << 15, 15)); |
| 117 | |
| 118 | assertEquals(123, wasm.i32_shr_s_by_negative_22((123 << 10) + 456)); |
| 119 | assertEquals(-123, wasm.i32_shr_s_by_negative_22((-123 << 10) + 456)); |
| 120 | }; |
| 121 | |
| 122 | for (let i = 0; i < 20; i++) testFct(); |
| 123 | for (let fct of fcts) { |
no test coverage detected