summaryrefslogtreecommitdiffstats
path: root/js/xpconnect/tests/unit/test_bug1150771.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/xpconnect/tests/unit/test_bug1150771.js')
-rw-r--r--js/xpconnect/tests/unit/test_bug1150771.js13
1 files changed, 13 insertions, 0 deletions
diff --git a/js/xpconnect/tests/unit/test_bug1150771.js b/js/xpconnect/tests/unit/test_bug1150771.js
new file mode 100644
index 000000000..8387b2cdf
--- /dev/null
+++ b/js/xpconnect/tests/unit/test_bug1150771.js
@@ -0,0 +1,13 @@
+function run_test() {
+let Cu = Components.utils;
+let sandbox1 = new Cu.Sandbox(null);
+let sandbox2 = new Cu.Sandbox(null);
+let arg = Cu.evalInSandbox('({ buf: new ArrayBuffer(2) })', sandbox1);
+
+let clonedArg = Cu.cloneInto(Cu.waiveXrays(arg), sandbox2);
+do_check_eq(typeof Cu.waiveXrays(clonedArg).buf, "object");
+
+clonedArg = Cu.cloneInto(arg, sandbox2);
+do_check_eq(typeof Cu.waiveXrays(clonedArg).buf, "object");
+do_check_eq(Cu.waiveXrays(clonedArg).buf.constructor.name, "ArrayBuffer");
+}