tor-browser

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

test_symbols-01.js (1384B)


      1 /* Any copyright is dedicated to the Public Domain.
      2   http://creativecommons.org/publicdomain/zero/1.0/ */
      3 
      4 "use strict";
      5 
      6 /**
      7 * Test that we can represent ES6 Symbols over the RDP.
      8 */
      9 
     10 const URL = "foo.js";
     11 
     12 add_task(
     13  threadFrontTest(async ({ threadFront, debuggee }) => {
     14    await testSymbols(threadFront, debuggee);
     15  })
     16 );
     17 
     18 async function testSymbols(threadFront, debuggee) {
     19  const evalCode = () => {
     20    /* eslint-disable mozilla/var-only-at-top-level, no-unused-vars */
     21    // prettier-ignore
     22    Cu.evalInSandbox(
     23      "(" + function () {
     24        var symbolWithName = Symbol("Chris");
     25        var symbolWithoutName = Symbol();
     26        var iteratorSymbol = Symbol.iterator;
     27        debugger;
     28      } + "())",
     29      debuggee,
     30      "1.8",
     31      URL,
     32      1
     33    );
     34    /* eslint-enable mozilla/var-only-at-top-level, no-unused-vars */
     35  };
     36 
     37  const packet = await executeOnNextTickAndWaitForPause(evalCode, threadFront);
     38  const environment = await packet.frame.getEnvironment();
     39  const { symbolWithName, symbolWithoutName, iteratorSymbol } =
     40    environment.bindings.variables;
     41 
     42  equal(symbolWithName.value.type, "symbol");
     43  equal(symbolWithName.value.name, "Chris");
     44 
     45  equal(symbolWithoutName.value.type, "symbol");
     46  ok(!("name" in symbolWithoutName.value));
     47 
     48  equal(iteratorSymbol.value.type, "symbol");
     49  equal(iteratorSymbol.value.name, "Symbol.iterator");
     50 }