UNPKG

collections-es6

Version:

ES6 Map, Set, WeakMap and WeakSet polyfill in pure ES5

64 lines (46 loc) 1.36 kB
"use strict"; var ES6 = require("symbol-es6"); ES6 = require("../collections-es6"); var map = new Map([[1, 2], ["Hi", "Hello World"]]); console.log(map.has(1)); //true console.log(map.has("Hi")); //true map.set(NaN, "NaN"); map.set(NaN, "Again NaN!"); map.set(0, "Zero"); map.set(-0, "Again Zero!"); console.log(map.size); //4 console.log(map.has(NaN)); //true console.log(map.size); //4 console.log(map.has(0)); //true console.log(map.has(-0)); //true var set = new Set([NaN, 0, -0, "Hi", "Hello World"]); set.add(Infinity); console.log(set.has(NaN)); //true console.log(set.has("Hi")); //true console.log(set.size); //5 console.log(set.has(Infinity)); //true console.log(set.has(-Infinity)); //false var wm = new WeakMap(); wm.set(Object, "object"); wm.set(Function, "function"); wm.set({}, "new Object"); console.log(wm.has(Object)); //true console.log(wm.has({})); //false var ws = new WeakSet(); ws.add(Function); ws.add({}); console.log(ws.has({})); //false console.log(ws.has(Function)); //true console.log(ES6.isMap(map)); //true console.log(ES6.isSet(set)); //true console.log(ES6.isWeakMap(wm)); //true console.log(ES6.isWeakSet(ws)); //true ES6.forOf(set, function (v) { console.log(v); }); //NaN //0 //Hi //Hello World //Infinity console.log(ES6.spreadOperator([]).spread(set).array()); //[ NaN, 0, 'Hi', 'Hello World', Infinity ]