test262-automation e9a5a7f918 [javascriptcore-test262-automation] changes from git@github.com:WebKit/webkit.git at sha 949e26452cfa153a7f4afe593da97e2fe9e1b706 on Tue Jul 03 2018 14:35:15 GMT-0400 (Eastern Daylight Time) (#1620)
* [javascriptcore-test262-automation] changes from git@github.com:WebKit/webkit.git at sha 949e26452cfa153a7f4afe593da97e2fe9e1b706 on Tue Jul 03 2018 14:35:15 GMT-0400 (Eastern Daylight Time)
2018-07-03 15:59:58 -04:00

112 lines
2.6 KiB
JavaScript

// This test checks the behavior of the iterator.next methods on Map objects
var testArray = [1,2,3,4,5,6]
var testMap = new Map();
for (var [key, value] of testArray.entries()) {
testMap.set(key, value);
}
var keys = testMap.keys();
var i = 0;
while (true) {
var {done, value: key} = keys.next();
if (done)
break;
if (key >= testArray.length)
throw "Error: bad value: " + key;
i++;
}
if (testMap.size !== i)
throw "Error: bad value: " + i;
var value = keys.next().value;
if (value !== undefined)
throw "Error: bad value: " + value;
var values = testMap.values();
var i = 0;
while (true) {
var {done, value} = values.next();
if (done)
break;
i++;
if (testArray.indexOf(value) === -1)
throw "Error: bad value: " + value;
}
if (testMap.size !== i)
throw "Error: bad value: " + i;
var value = values.next().value;
if (value !== undefined)
throw "Error: bad value: " + value;
var entries = testMap.entries();
var i = 0;
do {
var {done, value: entry} = entries.next();
if (done)
break;
var [key, value] = entry;
if (value !== testMap.get(key))
throw "Error: bad value: " + value + " " + testMap.get(key);
if (key >= testArray.length)
throw "Error: bad value: " + key;
i++;
if (testArray.indexOf(value) === -1)
throw "Error: bad value: " + value + " " + i;
} while (!done);
if (testMap.size !== i)
throw "Error: bad value: " + i;
var value = entries.next().value;
if (value !== undefined)
throw "Error: bad value: " + value;
var entries = testMap.entries();
var i = 0;
do {
var {done, value: entry} = entries.next();
if (done)
break;
var [key, value] = entry;
if (value !== testMap.get(key))
throw "Error: bad value: " + value + " " + testMap.get(key);
i++;
if (i % 4 === 0)
testMap.set(100000 + i, i);
} while (!done);
if (testMap.size !== i)
throw "Error: bad value: " + i;
var value = entries.next().value;
if (value !== undefined)
throw "Error: bad value: " + value;
function otherKey(key) {
return (key + 1) % testArray.length;
}
var entries = testMap.entries();
var i = 0;
do {
var {done, value: entry} = entries.next();
if (done)
break;
var [key, value] = entry;
if (value !== testMap.get(key))
throw "Error: bad value: " + value + " " + testMap.get(key);
i++;
if (i % 4 === 0)
testMap.delete(otherKey(key));
} while (!done);
if (testMap.size !== i)
throw "Error: bad value: " + i;
var value = entries.next().value;
if (value !== undefined)
throw "Error: bad value: " + value;