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);