| <!doctype html> |
| <title>Check bindings in JavaScript and WebAssembly cycle (Wasm higher)</title> |
| |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script type=module> |
| setup({ single_test: true }); |
| import * as wasm from "./resources/wasm-js-cycle.wasm"; |
| import * as js from "./resources/wasm-js-cycle.js"; |
| |
| js.mutateBindings(); |
| |
| assert_true(wasm.wasmGlob instanceof WebAssembly.Global); |
| assert_equals(wasm.wasmGlob.valueOf(), 24); |
| |
| assert_true(wasm.wasmFunc instanceof Function); |
| assert_equals(wasm.wasmFunc(), 43); |
| |
| assert_equals(wasm.incrementGlob(), 43); |
| |
| const buf = new Int32Array(wasm.wasmMem.buffer); |
| assert_equals(buf[0], 0); |
| assert_equals(wasm.mutateMem(), 42); |
| assert_equals(buf[0], 42); |
| |
| assert_equals(wasm.wasmTab.get(0), null); |
| const ref = wasm.mutateTab(); |
| assert_true(ref instanceof Function); |
| assert_equals(wasm.wasmTab.get(0), ref); |
| |
| done(); |
| </script> |