michael@0: const Cu = Components.utils; michael@0: michael@0: function run_test() { michael@0: // We rely on the crazy "wantXrays:false also causes values return from the michael@0: // sandbox to be waived" behavior, because it's the simplest way to get michael@0: // waivers out of the sandbox (which has no native objects). :-( michael@0: var sb = new Cu.Sandbox('http://www.example.com', {wantXrays: false}); michael@0: Cu.evalInSandbox("this.foo = {}; Object.defineProperty(foo, 'bar', {get: function() {return {};}});", sb); michael@0: do_check_true(sb.foo != XPCNativeWrapper(sb.foo), "sb.foo is waived"); michael@0: var desc = Object.getOwnPropertyDescriptor(sb.foo, 'bar'); michael@0: var b = desc.get(); michael@0: do_check_true(b != XPCNativeWrapper(b), "results from accessor descriptors are waived"); michael@0: }