~ubuntu-branches/ubuntu/trusty/mozjs24/trusty-proposed

« back to all changes in this revision

Viewing changes to js/src/jit-test/tests/collections/Map-iterator-remove-4.js

  • Committer: Package Import Robot
  • Author(s): Tim Lunn
  • Date: 2014-02-11 21:55:34 UTC
  • Revision ID: package-import@ubuntu.com-20140211215534-m1zyq5aj59md3y07
Tags: upstream-24.2.0
ImportĀ upstreamĀ versionĀ 24.2.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// Multiple live iterators on the same Map can cope with removing entries.
 
2
 
 
3
load(libdir + "eqArrayHelper.js");
 
4
load(libdir + "asserts.js");
 
5
 
 
6
// Make a map.
 
7
var map = Map();
 
8
var SIZE = 7;
 
9
for (var j = 0; j < SIZE; j++)
 
10
    map.set(j, j);
 
11
 
 
12
// Make lots of iterators pointing to entry 2 of the map.
 
13
var NITERS = 5;
 
14
var iters = [];
 
15
for (var i = 0; i < NITERS; i++) {
 
16
    var iter = map.iterator();
 
17
    assertEqArray(iter.next(), [0, 0]);
 
18
    assertEqArray(iter.next(), [1, 1]);
 
19
    iters[i] = iter;
 
20
}
 
21
 
 
22
// Remove half of the map entries.
 
23
for (var j = 0; j < SIZE; j += 2)
 
24
    map.delete(j);
 
25
 
 
26
// Make sure all the iterators still work.
 
27
for (var i = 0; i < NITERS; i++) {
 
28
    var iter = iters[i];
 
29
    for (var j = 3; j < SIZE; j += 2)
 
30
        assertEqArray(iter.next(), [j, j]);
 
31
    assertThrowsValue(function () { iter.next(); }, StopIteration);
 
32
}