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]);
}
}
|