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 is true
PASS new Set() instanceof Set is true
PASS Set(null) instanceof Set is true
PASS Set(undefined) instanceof Set is true
PASS Set(undefined, undefined) instanceof Set is true
PASS Set(null, undefined) instanceof Set is true
PASS Set(1) threw exception TypeError: Set does not accept arguments when called as a function.
PASS Set(true) threw exception TypeError: Set does not accept arguments when called as a function.
PASS Set([]) threw exception TypeError: Set does not accept arguments when called as a function.
PASS Set({}) threw exception TypeError: Set does not accept arguments when called as a function.
PASS Set(undefined, null) threw exception RangeError: Invalid comparator function.
PASS Set(undefined, {}) threw exception RangeError: Invalid comparator function.
1
undefined
true
6
1
0
[object Object]
PASS Object.hasOwnProperty(set, 'size') is false
PASS Set.prototype.hasOwnProperty('size') is true
PASS Map.prototype.size threw exception TypeError: Map operation called on non-Map object.
PASS set.size is 0
PASS set.add(-0) is set
PASS set.add(0) is set
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 7
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 true
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
PASS successfullyParsed is true

TEST COMPLETE

