summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/ion/hasOwn-megamorphic.js
blob: 422e869497dbc1b83d75d2c9ec7059afcc74f3d1 (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
setJitCompilerOption("offthread-compilation.enable", 0);
setJitCompilerOption("baseline.warmup.trigger", 5);
setJitCompilerOption("ion.warmup.trigger", 5);

function Base() {
}

Base.prototype.foo = false;

// XXX: tried to do this with ic.force-megamorphic, but it didn't seem to want
// to work. Maybe something is being too clever for my simple test case if I
// don't put things into a megamorphic array?
let objs = [
    {a: true},
    {b: true},
    {c: true},
    {d: true},
    {e: true},
    {f: true},
    {g: true},
    new Base(),
];

function doTest(i) {
    let o = objs[i % objs.length];
    assertEq(!o.foo, true);
    assertEq(Object.hasOwn(o, "foo"), false);
}

for (var i = 0; i < 50; i++) {
    doTest(i);
}