var initialMap = new Map([['a', 1], ['b', 2.3], [false, undefined]]);
initialMap.forEach(callback);
// test that both the Maps are equal and are in same order var iterator = initialMap[Symbol.iterator](); var count = 0; for (var [k, v] of testMap) {
assertEq(initialMap.has(k), true);
assertEq(initialMap.get(k), testMap.get(k));
assertIteratorNext(iterator, [k, testMap.get(k)]);
count++;
}
//check both the Maps we have are equal in size
assertEq(initialMap.size, testMap.size);
assertEq(initialMap.size, count);
var x = { abc: 'test'}; function callback2(value, key, map) {
assertEq(x, this);
}
initialMap = new Map([['a', 1]]);
initialMap.forEach(callback2, x);
// testing failure conditions of Map.prototype.forEach
var s = new Set([1, 2, 3]);
assertThrowsInstanceOf(function() {
Map.prototype.forEach.call(s, callback);
}, TypeError, "Map.prototype.forEach should raise TypeError if not used on a Map");
var fn = 2;
assertThrowsInstanceOf(function() {
initialMap.forEach(fn);
}, TypeError, "Map.prototype.forEach should raise TypeError if callback is not a function");
// testing that Map#forEach uses internal next() function.
var m = new Map([["one", 1]]);
Object.getPrototypeOf(m[Symbol.iterator]()).next = function () { throw"FAIL"; };
assertThrowsValue(function () {
m.forEach(function () { throw Math; });
}, Math, "Map.prototype.forEach should use intrinsic next method.");
Messung V0.5
¤ Dauer der Verarbeitung: 0.15 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.