summaryrefslogtreecommitdiffstats
path: root/js/xpconnect/tests/unit/test_bug845862.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/xpconnect/tests/unit/test_bug845862.js')
-rw-r--r--js/xpconnect/tests/unit/test_bug845862.js13
1 files changed, 13 insertions, 0 deletions
diff --git a/js/xpconnect/tests/unit/test_bug845862.js b/js/xpconnect/tests/unit/test_bug845862.js
new file mode 100644
index 000000000..650bdf3cd
--- /dev/null
+++ b/js/xpconnect/tests/unit/test_bug845862.js
@@ -0,0 +1,13 @@
+const Cu = Components.utils;
+
+function run_test() {
+ // We rely on the crazy "wantXrays:false also causes values return from the
+ // sandbox to be waived" behavior, because it's the simplest way to get
+ // waivers out of the sandbox (which has no native objects). :-(
+ var sb = new Cu.Sandbox('http://www.example.com', {wantXrays: false});
+ Cu.evalInSandbox("this.foo = {}; Object.defineProperty(foo, 'bar', {get: function() {return {};}});", sb);
+ do_check_true(sb.foo != XPCNativeWrapper(sb.foo), "sb.foo is waived");
+ var desc = Object.getOwnPropertyDescriptor(sb.foo, 'bar');
+ var b = desc.get();
+ do_check_true(b != XPCNativeWrapper(b), "results from accessor descriptors are waived");
+}