tor-browser

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

Map-surfaces-1.js (1547B)


      1 // Map surfaces
      2 
      3 load(libdir + "iteration.js");
      4 
      5 var desc = Object.getOwnPropertyDescriptor(this, "Map");
      6 assertEq(desc.enumerable, false);
      7 assertEq(desc.configurable, true);
      8 assertEq(desc.writable, true);
      9 
     10 assertEq(typeof Map, 'function');
     11 assertEq(Object.keys(Map).length, 0);
     12 assertEq(Map.length, 0);
     13 assertEq(Map.name, "Map");
     14 
     15 assertEq(Object.getPrototypeOf(Map.prototype), Object.prototype);
     16 assertEq(Object.prototype.toString.call(Map.prototype), "[object Map]");
     17 assertEq(Object.prototype.toString.call(new Map()), "[object Map]");
     18 assertEq(Object.keys(Map.prototype).join(), "");
     19 assertEq(Map.prototype.constructor, Map);
     20 
     21 function checkMethod(name, arity) { 
     22    var desc = Object.getOwnPropertyDescriptor(Map.prototype, name);
     23    assertEq(desc.enumerable, false);
     24    assertEq(desc.configurable, true);
     25    assertEq(desc.writable, true);
     26    assertEq(typeof desc.value, 'function');
     27    assertEq(desc.value.name, name);
     28    assertEq(desc.value.length, arity);
     29 }
     30 
     31 checkMethod("get", 1);
     32 checkMethod("has", 1);
     33 checkMethod("set", 2);
     34 checkMethod("delete", 1);
     35 checkMethod("keys", 0);
     36 checkMethod("values", 0);
     37 checkMethod("entries", 0);
     38 
     39 var desc = Object.getOwnPropertyDescriptor(Map.prototype, "size");
     40 assertEq(desc.enumerable, false);
     41 assertEq(desc.configurable, true);
     42 assertEq(typeof desc.get, 'function');
     43 assertEq(desc.get.length, 0);
     44 assertEq(desc.set, undefined);
     45 checkMethod("clear", 0);
     46 
     47 // Map.prototype[@@iterator] and .entries are the same function object.
     48 assertEq(Map.prototype[Symbol.iterator], Map.prototype.entries);