summaryrefslogtreecommitdiff
path: root/js/src/jit-test/tests/asm.js/bug1201124-simd-proxy.js
blob: edcc069ffb86650789f9203f697bcb41a893fbb7 (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
load(libdir + "asm.js");
load(libdir + "asserts.js");

if (typeof newGlobal !== 'function' ||
    !isSimdAvailable() ||
    typeof SIMD === 'undefined')
{
    quit();
}

var stdlib = new (newGlobal().Proxy)(this, new Proxy({
    simdGet: 0,
    getOwnPropertyDescriptor(t, pk) {
        if (pk === "SIMD" && this.simdGet++ === 1) {
            return {};
        }
        return Reflect.getOwnPropertyDescriptor(t, pk);
    }
}, {
    get(t, pk, r) {
        print("trap", pk);
        return Reflect.get(t, pk, r);
    }
}));

var m = asmCompile('stdlib', '"use asm"; var i4=stdlib.SIMD.Int32x4; var i4add=i4.add; return {}');

assertAsmLinkFail(m, stdlib);