tor-browser

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

function-displayName-computed.js (2424B)


      1 // |jit-test| skip-if: isLcovEnabled()
      2 // Guessed Atoms tests.
      3 // Test String literals
      4 var obj = {
      5  ["func"]: function() {return function() {} },
      6  ["arrowFunc"]: ()=>{return function() {} },
      7  ["method"]() {return function() {} },
      8  ["nonAnonymousFunc"]: function F() {return function() {} },
      9  get ["getter"]() {return function() {} },
     10 };
     11 
     12 
     13 assertEq(displayName(obj.func()), "func/<");
     14 assertEq(displayName(obj.arrowFunc()), "arrowFunc/<");
     15 assertEq(displayName(obj.method()), "method/<");
     16 assertEq(displayName(obj.nonAnonymousFunc()), "F/<");
     17 
     18 // We don't support guessed name for accessor
     19 assertEq(displayName(obj.getter), "");
     20 
     21 let dummy = class {
     22  ["func"]() {return function() {} }
     23  ["arrowFunc"] = ()=>{return function() {} };
     24  ["method"]() {return function() {} }
     25  get ["getter"]() {return function() {} }
     26 };
     27 
     28 dum = new dummy();
     29 assertEq(displayName(dum.func()), "func/<");
     30 // We don't support guessed name for class field with computed name
     31 assertEq(displayName(dum.arrowFunc()), "dummy</</<");
     32 assertEq(displayName(dum.method()), "method/<");
     33 // We don't support guessed name for accessor
     34 assertEq(displayName(dummy.prototype.getter), "dummy</<");
     35 
     36 
     37 // Test numeric literals
     38 var objN = {
     39  [1]: function() {return function() {}},
     40  [5]: ()=>{return function() {}},
     41  [7] () {return function() {}},
     42  [8]: class {},
     43  [9]: function F() {return function() {}},
     44  [10]: class C{},
     45  get [11]() {return function() {}},
     46 };
     47 assertEq(displayName(objN[1]()), "1/<");
     48 assertEq(displayName(objN[5]()), "5/<");
     49 assertEq(displayName(objN[7]()), "7/<");
     50 assertEq(displayName(objN[8]), "8");
     51 assertEq(displayName(objN[9]()), "F/<");
     52 assertEq(displayName(objN[10]), "C");
     53 // We don't support guessed name for accessor
     54 assertEq(displayName(objN[11]), "objN/<");
     55 
     56 let foo = class {
     57  [1] () {return function() {} }
     58  [5] = ()=>{return function() {} };
     59  [7] () {return function() {} }
     60  get [11]() {return function() {} }
     61 };
     62 
     63 f = new foo();
     64 
     65 assertEq(displayName(f[1]()), "1/<");
     66 // We don't support guessed name for class field with computed name
     67 assertEq(displayName(f[5]()), "foo</</<");
     68 assertEq(displayName(f[7]()), "7/<");
     69 assertEq(displayName(f[11]), "foo</<");
     70 
     71 // Native built-in accessor name, which is lazily created.
     72 
     73 assertEq(displayName(Object.getOwnPropertyDescriptor(Map.prototype, "size").get), "get size");
     74 assertEq(displayName(Object.getOwnPropertyDescriptor(RegExp.prototype, "flags").get), "get flags");