tor-browser

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

constructor-shared.tentative.any.js (1249B)


      1 // META: global=window,dedicatedworker,jsshell,shadowrealm
      2 // META: script=/wasm/jsapi/assertions.js
      3 // META: script=/wasm/jsapi/memory/assertions.js
      4 
      5 test(() => {
      6  assert_throws_js(TypeError, () => new WebAssembly.Memory({ "initial": 10, "shared": true }));
      7 }, "Shared memory without maximum");
      8 
      9 test(t => {
     10  const order = [];
     11 
     12  new WebAssembly.Memory({
     13    get maximum() {
     14      order.push("maximum");
     15      return {
     16        valueOf() {
     17          order.push("maximum valueOf");
     18          return 1;
     19        },
     20      };
     21    },
     22 
     23    get initial() {
     24      order.push("initial");
     25      return {
     26        valueOf() {
     27          order.push("initial valueOf");
     28          return 1;
     29        },
     30      };
     31    },
     32 
     33    get shared() {
     34      order.push("shared");
     35      return {
     36        valueOf: t.unreached_func("should not call shared valueOf"),
     37      };
     38    },
     39  });
     40 
     41  assert_array_equals(order, [
     42    "initial",
     43    "initial valueOf",
     44    "maximum",
     45    "maximum valueOf",
     46    "shared",
     47  ]);
     48 }, "Order of evaluation for descriptor (with shared)");
     49 
     50 test(() => {
     51  const argument = { "initial": 4, "maximum": 10, shared: true };
     52  const memory = new WebAssembly.Memory(argument);
     53  assert_Memory(memory, { "size": 4, "shared": true });
     54 }, "Shared memory");