diff options
Diffstat (limited to 'js/src/jit-test/tests/asm.js/bug1201124-simd-proxy.js')
-rw-r--r-- | js/src/jit-test/tests/asm.js/bug1201124-simd-proxy.js | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/asm.js/bug1201124-simd-proxy.js b/js/src/jit-test/tests/asm.js/bug1201124-simd-proxy.js new file mode 100644 index 000000000..edcc069ff --- /dev/null +++ b/js/src/jit-test/tests/asm.js/bug1201124-simd-proxy.js @@ -0,0 +1,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); |