summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/ion/for-in-iterator-1.js
blob: 725dfa4f9509e5f20ebb0fa8258a519b728e4b9a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
gczeal(0);

var values = {
    input1: null,
    input2: undefined,
    input3: {},
    input4: [],
    input5: ""
};

var original = function (x) {
    var res = { start: inIon(), end: false };
    for (var i in x.input) {
        throw "Iterator is not empty";
    }
    res.end = inIon();
    return res;
};

for (var i = 1; i < 6; i++) {
    // Reset type inference.
    var res = false;
    var test = eval(original.toSource().replace(".input", ".input" + i));

    // Run until the end is running within Ion, or skip if we are unable to run
    // in Ion.
    while (!res.start)
        res = test(values);
    assertEq(!res.start || !res.end, false);
}