// Copyright (C) 2015 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- description: Map entry removal and re-insertion during traversal using for..of info: > Entries removed from a Map instance during traversal should be visited if they are re-inserted prior to iterator exhaustion. es6id: 13.6.4 features: [Map] ---*/ var map = new Map(); var iterationCount = 0; var first = [0, 'a']; var second = [1, 'b']; map.set(0, 'a'); map.set(1, 'b'); for (var x of map) { assert.sameValue(x[0], first[0]); assert.sameValue(x[1], first[1]); first = second; second = null; if (first !== null) { map.delete(1); map.set(1, 'b'); } iterationCount += 1; } assert.sameValue(iterationCount, 2);