global-exports.tentative.any.js (5091B)
1 // META: global=window,dedicatedworker,jsshell,shadowrealm 2 3 promise_test(async () => { 4 const wasmModule = await import("./resources/globals.wasm"); 5 6 assert_equals(wasmModule.importedI32, 42); 7 assert_equals(wasmModule.importedI64, 9223372036854775807n); 8 assert_equals(Math.round(wasmModule.importedF32 * 100000) / 100000, 3.14159); 9 assert_equals(wasmModule.importedF64, 3.141592653589793); 10 assert_not_equals(wasmModule.importedExternref, null); 11 assert_equals(wasmModule.importedNullExternref, null); 12 }, "WebAssembly module global values should be unwrapped when importing in ESM integration"); 13 14 promise_test(async () => { 15 const wasmModule = await import("./resources/globals.wasm"); 16 17 assert_equals(wasmModule.importedMutI32, 100); 18 assert_equals(wasmModule.importedMutI64, 200n); 19 assert_equals( 20 Math.round(wasmModule.importedMutF32 * 100000) / 100000, 21 2.71828 22 ); 23 assert_equals(wasmModule.importedMutF64, 2.718281828459045); 24 assert_not_equals(wasmModule.importedMutExternref, null); 25 assert_equals(wasmModule.importedMutExternref.mutable, "global"); 26 }, "WebAssembly mutable global values should be unwrapped when importing in ESM integration"); 27 28 promise_test(async () => { 29 const wasmModule = await import("./resources/globals.wasm"); 30 31 assert_equals(wasmModule["🚀localI32"], 42); 32 assert_equals(wasmModule.localMutI32, 100); 33 assert_equals(wasmModule.localI64, 9223372036854775807n); 34 assert_equals(wasmModule.localMutI64, 200n); 35 assert_equals(Math.round(wasmModule.localF32 * 100000) / 100000, 3.14159); 36 assert_equals(Math.round(wasmModule.localMutF32 * 100000) / 100000, 2.71828); 37 assert_equals(wasmModule.localF64, 2.718281828459045); 38 assert_equals(wasmModule.localMutF64, 3.141592653589793); 39 }, "WebAssembly local global values should be unwrapped when exporting in ESM integration"); 40 41 promise_test(async () => { 42 const wasmModule = await import("./resources/globals.wasm"); 43 44 assert_equals(wasmModule.depI32, 1001); 45 assert_equals(wasmModule.depMutI32, 2001); 46 assert_equals(wasmModule.depI64, 10000000001n); 47 assert_equals(wasmModule.depMutI64, 20000000001n); 48 assert_equals(Math.round(wasmModule.depF32 * 100) / 100, 10.01); 49 assert_equals(Math.round(wasmModule.depMutF32 * 100) / 100, 20.01); 50 assert_equals(wasmModule.depF64, 100.0001); 51 assert_equals(wasmModule.depMutF64, 200.0001); 52 }, "WebAssembly module globals from imported WebAssembly modules should be unwrapped"); 53 54 promise_test(async () => { 55 const wasmModule = await import("./resources/globals.wasm"); 56 57 assert_equals(wasmModule.importedI32, 42); 58 assert_equals(wasmModule.importedMutI32, 100); 59 assert_equals(wasmModule.importedI64, 9223372036854775807n); 60 assert_equals(wasmModule.importedMutI64, 200n); 61 assert_equals(Math.round(wasmModule.importedF32 * 100000) / 100000, 3.14159); 62 assert_equals( 63 Math.round(wasmModule.importedMutF32 * 100000) / 100000, 64 2.71828 65 ); 66 assert_equals(wasmModule.importedF64, 3.141592653589793); 67 assert_equals(wasmModule.importedMutF64, 2.718281828459045); 68 assert_equals(wasmModule.importedExternref !== null, true); 69 assert_equals(wasmModule.importedMutExternref !== null, true); 70 assert_equals(wasmModule.importedNullExternref, null); 71 72 assert_equals(wasmModule["🚀localI32"], 42); 73 assert_equals(wasmModule.localMutI32, 100); 74 assert_equals(wasmModule.localI64, 9223372036854775807n); 75 assert_equals(wasmModule.localMutI64, 200n); 76 assert_equals(Math.round(wasmModule.localF32 * 100000) / 100000, 3.14159); 77 assert_equals(Math.round(wasmModule.localMutF32 * 100000) / 100000, 2.71828); 78 assert_equals(wasmModule.localF64, 2.718281828459045); 79 assert_equals(wasmModule.localMutF64, 3.141592653589793); 80 81 assert_equals(wasmModule.getImportedMutI32(), 100); 82 assert_equals(wasmModule.getImportedMutI64(), 200n); 83 assert_equals( 84 Math.round(wasmModule.getImportedMutF32() * 100000) / 100000, 85 2.71828 86 ); 87 assert_equals(wasmModule.getImportedMutF64(), 2.718281828459045); 88 assert_equals(wasmModule.getImportedMutExternref() !== null, true); 89 90 assert_equals(wasmModule.getLocalMutI32(), 100); 91 assert_equals(wasmModule.getLocalMutI64(), 200n); 92 assert_equals( 93 Math.round(wasmModule.getLocalMutF32() * 100000) / 100000, 94 2.71828 95 ); 96 assert_equals(wasmModule.getLocalMutF64(), 3.141592653589793); 97 assert_equals(wasmModule.getLocalMutExternref(), null); 98 99 assert_equals(wasmModule.depI32, 1001); 100 assert_equals(wasmModule.depMutI32, 2001); 101 assert_equals(wasmModule.getDepMutI32(), 2001); 102 assert_equals(wasmModule.depI64, 10000000001n); 103 assert_equals(wasmModule.depMutI64, 20000000001n); 104 assert_equals(wasmModule.getDepMutI64(), 20000000001n); 105 assert_equals(Math.round(wasmModule.depF32 * 100) / 100, 10.01); 106 assert_equals(Math.round(wasmModule.depMutF32 * 100) / 100, 20.01); 107 assert_equals(Math.round(wasmModule.getDepMutF32() * 100) / 100, 20.01); 108 assert_equals(wasmModule.depF64, 100.0001); 109 assert_equals(wasmModule.depMutF64, 200.0001); 110 assert_equals(wasmModule.getDepMutF64(), 200.0001); 111 }, "WebAssembly should properly handle all global types");