| // Copyright 2026 The IREE Authors | |
| // | |
| // Licensed under the Apache License v2.0 with LLVM Exceptions. | |
| // See https://llvm.org/LICENSE.txt for license information. | |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | |
| // Entry point for the bundler end-to-end test. | |
| // | |
| // This file is concatenated into the bundled .mjs by the wasm binary bundler. | |
| // At runtime, createWasmImports(context) and __IREE_WASM_BINARY are already | |
| // defined in the same module scope (injected by the bundler). | |
| import {readFile} from 'node:fs/promises'; | |
| import {dirname, join} from 'node:path'; | |
| import {fileURLToPath} from 'node:url'; | |
| const scriptDirectory = dirname(fileURLToPath(import.meta.url)); | |
| const wasmPath = join(scriptDirectory, __IREE_WASM_BINARY); | |
| const wasmBytes = await readFile(wasmPath); | |
| const memory = new WebAssembly.Memory({initial: 2, maximum: 256}); | |
| const imports = { | |
| // wasm-ld places imported memory under the 'env' module by default. | |
| env: {memory}, | |
| // Companion modules provide the application-level imports. | |
| ...createWasmImports({memory}), | |
| }; | |
| const {instance} = await WebAssembly.instantiate(wasmBytes, imports); | |
| const result = instance.exports.run_test(); | |
| process.exit(result); |