summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/asm.js/bug1201124-simd-proxy.js
diff options
context:
space:
mode:
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.js28
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);