Tests basic correctness of ES Map object

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


PASS Map instanceof Map is false
PASS Map.prototype instanceof Map is false
PASS new Map() instanceof Map is true
PASS new Map(null) instanceof Map is true
PASS new Map(undefined) instanceof Map is true
PASS new Map(undefined, undefined) instanceof Map is true
PASS new Map(null, undefined) instanceof Map is true
PASS Map() threw exception TypeError: calling Map constructor without new is invalid.
PASS Map(1) threw exception TypeError: calling Map constructor without new is invalid.
PASS Map(true) threw exception TypeError: calling Map constructor without new is invalid.
PASS Map('String') threw exception TypeError: calling Map constructor without new is invalid.
PASS Map([]) threw exception TypeError: calling Map constructor without new is invalid.
PASS Map({}) threw exception TypeError: calling Map constructor without new is invalid.
PASS Map(undefined) threw exception TypeError: calling Map constructor without new is invalid.
PASS Map(null) threw exception TypeError: calling Map constructor without new is invalid.
PASS new Map(1) threw exception TypeError: Type error.
PASS new Map(true) threw exception TypeError: Type error.
PASS new Map([]) did not throw exception.
PASS new Map({}) threw exception TypeError: Type error.
PASS new Map(undefined, null) did not throw exception.
PASS new Map(undefined, {}) did not throw exception.
PASS Object.hasOwnProperty(map, 'size') is false
PASS Map.prototype.hasOwnProperty('size') is true
PASS Map.prototype.size threw exception TypeError: Map operation called on non-Map object.
PASS Map.prototype.set.length is 2
PASS Map.prototype.has.length is 1
PASS Map.prototype.get.length is 1
PASS Map.prototype.clear.length is 0
PASS Map.prototype.keys.length is 0
PASS Map.prototype.values.length is 0
PASS Map.prototype.entries.length is 0
PASS map.size is 0
PASS map.set(-0, 1) is map
PASS map.set(0, 2) is map
PASS map.size is 1
PASS map.set(Infinity, 3) is map
PASS map.set(-Infinity, 4) is map
PASS map.set(NaN, 5) is map
PASS map.set('0', 6) is map
PASS map.set(0.1, 7) is map
PASS map.size is 6
PASS map.get(-0) is 2
PASS map.get(0) is 2
PASS map.get(Infinity) is 3
PASS map.get(-Infinity) is 4
PASS map.get(NaN) is 5
PASS map.get('0') is 6
PASS map.get(0.1) is 7
PASS map.has(-0) is true
PASS map.has(0) is true
PASS map.has(Infinity) is true
PASS map.has(-Infinity) is true
PASS map.has(NaN) is true
PASS map.has('0') is true
PASS map.has(0.1) is true
PASS map.delete(-0) is true
PASS map.delete(0) is false
PASS map.delete(Infinity) is true
PASS map.delete(-Infinity) is true
PASS map.delete(NaN) is true
PASS map.delete('0') is true
PASS map.delete(0.1) is true
PASS map.delete(-0) is false
PASS map.delete(0) is false
PASS map.delete(Infinity) is false
PASS map.delete(-Infinity) is false
PASS map.delete(NaN) is false
PASS map.delete('0') is false
PASS map.delete(0.1) is false
PASS map.get(simpleString) is map.get(otherString)
PASS map.clear() is undefined.
PASS map.size is 0
PASS map.set(0, 0) is map
PASS map.set('0', 1) is map
PASS map.set(1, 2) is map
PASS map.set('1', 3) is map
PASS map.set(2, 4) is map
PASS map.set('2', 5) is map
PASS map.set(3, 6) is map
PASS map.set('3', 7) is map
PASS map.set(4, 8) is map
PASS map.set('4', 9) is map
PASS map.set(5, 10) is map
PASS map.set('5', 11) is map
PASS map.set(6, 12) is map
PASS map.set('6', 13) is map
PASS map.size is 14
forEach #0
PASS testThis is undefined.
0
forEach #1
PASS testThis is thisValue
1
0
1
2
3
4
5
6
7
8
9
10
11
12
13
PASS map.forEach(debug) is undefined.
0 : number => 0
0 : string => 1
1 : number => 2
1 : string => 3
2 : number => 4
2 : string => 5
3 : string => 7
4 : string => 9
5 : number => 10
5 : string => 11
6 : number => 12
6 : string => 13
4 : number => 11
PASS map.get(0) is 0
PASS map.get("0") is 1
PASS map.get(1) is 2
PASS map.get("1") is 3
PASS map.get(2) is 4
PASS map.get("2") is 5
PASS map.get("3") is "replaced"
PASS map.get("4") is 9
PASS map.get(5) is 10
PASS map.get("5") is 11
PASS map.get(6) is 12
PASS map.get("6") is 13
PASS map.get(4) is 11
map.@@iterator()
PASS key is 0
PASS value is 0
PASS key is '0'
PASS value is 1
PASS key is 1
PASS value is 2
PASS key is '1'
PASS value is 3
PASS key is 2
PASS value is 4
PASS key is '2'
PASS value is 5
PASS key is 3
PASS value is 6
PASS key is '3'
PASS value is 7
PASS key is 4
PASS value is 8
PASS key is '4'
PASS value is 9
map.entries()
PASS i is 10
PASS key is 0
PASS value is 0
PASS key is '0'
PASS value is 1
PASS key is 1
PASS value is 2
PASS key is '1'
PASS value is 3
PASS key is 2
PASS value is 4
PASS key is '2'
PASS value is 5
PASS key is 3
PASS value is 6
PASS key is '3'
PASS value is 7
PASS key is 4
PASS value is 8
PASS key is '4'
PASS value is 9
PASS i is 10
map.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
map.values()
PASS value is 0
PASS value is 1
PASS value is 2
PASS value is 3
PASS value is 4
PASS value is 5
PASS value is 6
PASS value is 7
PASS value is 8
PASS value is 9
PASS i is 10
Map mutation with live iterator and GC
PASS key is 1
PASS value is 2
PASS key is 3
PASS value is 6
PASS key is 4
PASS value is 8
PASS key is 5
PASS value is 10
PASS key is 7
PASS value is 14
PASS i is 5
PASS map.size is 4
test forEach
PASS key is 1
PASS value is 2
PASS key is 3
PASS value is 6
PASS key is 4
PASS value is 8
PASS key is 5
PASS value is 10
PASS key is 7
PASS value is 14
PASS i is 5
PASS map.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

