tor-browser

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

buffer.any.js (1889B)


      1 // META: global=window,dedicatedworker,jsshell
      2 
      3 test(() => {
      4  const thisValues = [
      5    undefined,
      6    null,
      7    true,
      8    "",
      9    Symbol(),
     10    1,
     11    {},
     12    WebAssembly.Memory,
     13    WebAssembly.Memory.prototype,
     14  ];
     15 
     16  const desc = Object.getOwnPropertyDescriptor(WebAssembly.Memory.prototype, "buffer");
     17  assert_equals(typeof desc, "object");
     18 
     19  const getter = desc.get;
     20  assert_equals(typeof getter, "function");
     21 
     22  assert_equals(typeof desc.set, "undefined");
     23 
     24  for (const thisValue of thisValues) {
     25    assert_throws_js(TypeError, () => getter.call(thisValue), `this=${format_value(thisValue)}`);
     26  }
     27 }, "Branding");
     28 
     29 test(() => {
     30  const argument = { "initial": 0 };
     31  const memory = new WebAssembly.Memory(argument);
     32  const buffer = memory.buffer;
     33 
     34  const desc = Object.getOwnPropertyDescriptor(WebAssembly.Memory.prototype, "buffer");
     35  assert_equals(typeof desc, "object");
     36 
     37  const getter = desc.get;
     38  assert_equals(typeof getter, "function");
     39 
     40  assert_equals(getter.call(memory, {}), buffer);
     41 }, "Stray argument");
     42 
     43 test(() => {
     44  const argument = { "initial": 0 };
     45  const memory = new WebAssembly.Memory(argument);
     46  const memory2 = new WebAssembly.Memory(argument);
     47  const buffer = memory.buffer;
     48  assert_not_equals(buffer, memory2.buffer, "Need two distinct buffers");
     49  memory.buffer = memory2.buffer;
     50  assert_equals(memory.buffer, buffer, "Should not change the buffer");
     51 }, "Setting (sloppy mode)");
     52 
     53 test(() => {
     54  const argument = { "initial": 0 };
     55  const memory = new WebAssembly.Memory(argument);
     56  const memory2 = new WebAssembly.Memory(argument);
     57  const buffer = memory.buffer;
     58  assert_not_equals(buffer, memory2.buffer, "Need two distinct buffers");
     59  assert_throws_js(TypeError, () => {
     60    "use strict";
     61    memory.buffer = memory2.buffer;
     62  });
     63  assert_equals(memory.buffer, buffer, "Should not change the buffer");
     64 }, "Setting (strict mode)");