Tests basic correctness of ES Set object On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". PASS Set instanceof Set is false PASS Set.prototype instanceof Set is false PASS Set() instanceof Set threw exception TypeError: calling Set constructor without new is invalid. PASS new Set() instanceof Set is true PASS Set(null) instanceof Set threw exception TypeError: calling Set constructor without new is invalid. PASS Set(undefined) instanceof Set threw exception TypeError: calling Set constructor without new is invalid. PASS Set(undefined, undefined) instanceof Set threw exception TypeError: calling Set constructor without new is invalid. PASS Set(null, undefined) instanceof Set threw exception TypeError: calling Set constructor without new is invalid. PASS new Set(null) instanceof Set is true PASS new Set(undefined) instanceof Set is true PASS new Set(undefined, undefined) instanceof Set is true PASS new Set(null, undefined) instanceof Set is true PASS Set(1) threw exception TypeError: calling Set constructor without new is invalid. PASS Set(true) threw exception TypeError: calling Set constructor without new is invalid. PASS Set([]) threw exception TypeError: calling Set constructor without new is invalid. PASS Set({}) threw exception TypeError: calling Set constructor without new is invalid. PASS Set(undefined, null) threw exception TypeError: calling Set constructor without new is invalid. PASS Set(undefined, {}) threw exception TypeError: calling Set constructor without new is invalid. PASS new Set(1) threw exception TypeError: Type error. PASS new Set(true) threw exception TypeError: Type error. PASS new Set([]) did not throw exception. PASS new Set({}) threw exception TypeError: Type error. PASS new Set(undefined, null) did not throw exception. PASS new Set(undefined, {}) did not throw exception. 1 undefined true 6 1 0 [object Object] PASS Object.hasOwnProperty(set, 'size') is false PASS Set.prototype.hasOwnProperty('size') is true PASS Set.prototype.size threw exception TypeError: Set operation called on non-Set object. PASS Set.prototype.add.length is 1 PASS Set.prototype.has.length is 1 PASS Set.prototype.clear.length is 0 PASS Set.prototype.keys.length is 0 PASS Set.prototype.values.length is 0 PASS Set.prototype.entries.length is 0 PASS set.size is 0 PASS set.add(-0) is set PASS set.add(0) is set PASS set.size is 1 PASS set.add(Infinity) is set PASS set.add(-Infinity) is set PASS set.add(NaN) is set PASS set.add('0') is set PASS set.add(0.1) is set PASS set.size is 6 PASS set.has(-0) is true PASS set.has(0) is true PASS set.has(Infinity) is true PASS set.has(-Infinity) is true PASS set.has(NaN) is true PASS set.has('0') is true PASS set.has(0.1) is true PASS set.delete(-0) is true PASS set.delete(0) is false PASS set.delete(Infinity) is true PASS set.delete(-Infinity) is true PASS set.delete(NaN) is true PASS set.delete('0') is true PASS set.delete(0.1) is true PASS set.delete(-0) is false PASS set.delete(0) is false PASS set.delete(Infinity) is false PASS set.delete(-Infinity) is false PASS set.delete(NaN) is false PASS set.delete('0') is false PASS set.delete(0.1) is false PASS set.has(simpleString) is true PASS set.has(otherString) is true PASS set.clear() is undefined. PASS set.size is 0 PASS set.add(0) is set PASS set.add('0') is set PASS set.add(1) is set PASS set.add('1') is set PASS set.add(2) is set PASS set.add('2') is set PASS set.add(3) is set PASS set.add('3') is set PASS set.add(4) is set PASS set.add('4') is set PASS set.add(5) is set PASS set.add('5') is set PASS set.add(6) is set PASS set.add('6') is set PASS set.size is 14 forEach #0 PASS testThis is undefined. 0 forEach #1 PASS testThis is thisValue 1 0 0 1 1 2 2 3 3 4 4 5 5 6 6 PASS set.forEach(debug) is undefined. 0 : number 0 : string 1 : number 1 : string 2 : number 2 : string 3 : string 4 : string 5 : number 5 : string 6 : number 6 : string 4 : number PASS set.has(0) is true PASS set.has("0") is true PASS set.has(1) is true PASS set.has("1") is true PASS set.has("3") is true PASS set.has("4") is true PASS set.has(5) is true PASS set.has("5") is true PASS set.has(6) is true PASS set.has("6") is true PASS set.has(4) is true set.@@iterator() PASS key is 0 PASS key is '0' PASS key is 1 PASS key is '1' PASS key is 2 PASS key is '2' PASS key is 3 PASS key is '3' PASS key is 4 PASS key is '4' PASS i is 10 set.entries() PASS key is 0 PASS value is 0 PASS key is '0' PASS value is '0' PASS key is 1 PASS value is 1 PASS key is '1' PASS value is '1' PASS key is 2 PASS value is 2 PASS key is '2' PASS value is '2' PASS key is 3 PASS value is 3 PASS key is '3' PASS value is '3' PASS key is 4 PASS value is 4 PASS key is '4' PASS value is '4' PASS i is 10 set.keys() PASS key is 0 PASS key is '0' PASS key is 1 PASS key is '1' PASS key is 2 PASS key is '2' PASS key is 3 PASS key is '3' PASS key is 4 PASS key is '4' PASS i is 10 set.values() PASS value is 0 PASS value is '0' PASS value is 1 PASS value is '1' PASS value is 2 PASS value is '2' PASS value is 3 PASS value is '3' PASS value is 4 PASS value is '4' PASS i is 10 Set mutation with live iterator and GC PASS key is 1 PASS key is 3 PASS key is 4 PASS key is 5 PASS key is 7 PASS i is 5 PASS set.size is 4 A dead iterator should remain dead PASS count is 0 PASS count is 3 PASS count is 3 PASS successfullyParsed is true TEST COMPLETE