blob: 14484ffc22d47d62b6424489335f9e2570ec303a [file]
// 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);