source-phase-string-builtins.tentative.any.js (1599B)
1 // META: global=window,dedicatedworker,jsshell,shadowrealm 2 3 promise_test(async () => { 4 const wasmModuleSource = await import.source("./resources/js-string-builtins.wasm"); 5 6 assert_true(wasmModuleSource instanceof WebAssembly.Module); 7 8 const instance = new WebAssembly.Instance(wasmModuleSource, {}); 9 10 assert_equals(instance.exports.getLength("hello"), 5); 11 assert_equals( 12 instance.exports.concatStrings("hello", " world"), 13 "hello world" 14 ); 15 assert_equals(instance.exports.compareStrings("test", "test"), 1); 16 assert_equals(instance.exports.compareStrings("test", "different"), 0); 17 assert_equals(instance.exports.testString("hello"), 1); 18 assert_equals(instance.exports.testString(42), 0); 19 }, "String builtins should be supported in source phase imports"); 20 21 promise_test(async () => { 22 const wasmModuleSource = await import.source("./resources/js-string-builtins.wasm"); 23 24 const exports = WebAssembly.Module.exports(wasmModuleSource); 25 const exportNames = exports.map((exp) => exp.name); 26 27 assert_true(exportNames.includes("getLength")); 28 assert_true(exportNames.includes("concatStrings")); 29 assert_true(exportNames.includes("compareStrings")); 30 assert_true(exportNames.includes("testString")); 31 }, "Source phase import should properly expose string builtin exports"); 32 33 promise_test(async () => { 34 const wasmModuleSource = await import.source("./resources/js-string-builtins.wasm"); 35 36 const imports = WebAssembly.Module.imports(wasmModuleSource); 37 38 assert_equals(imports.length, 0); 39 }, "Source phase import should handle string builtin import reflection correctly");