tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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");