summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/ion/bug1497107.js
blob: c3c4942f88589dfeab2ad99a845e28251d43627c (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
31
32
33
34
35
36
37
function makeChain(n, base) {
    var curr = base;
    for (var i = 0; i < n; i++) {
	curr = Object.create(curr);
	var propname = "level" + i;
	curr[propname] = true;
    }
    return curr;
}

function BaseClass() {
    this.base = true;
}

Object.defineProperty(BaseClass.prototype, "getter", {get: function() { with({}){}; return this.base; }});

function victim(arg) {
    if (arg.getter) {
	return 3;
    } else {
	return 4;
    }
}

let root = new BaseClass();
let chains = [];
for (var i = 0; i < 6; i++) {
    chains.push(makeChain(500, root));
}

with({}){};
for (var i = 0; i < 1000 / 6; i++) {
    with({}){};
    for (var j = 0; j < chains.length; j++) {
	victim(chains[j]);
    }
}