test_bug1131707.js (678B)
1 function testStrict(sb) { 2 "use strict"; 3 Assert.equal(sb.eval("typeof wrappedCtor()"), "string"); 4 Assert.equal(sb.eval("typeof new wrappedCtor()"), "object"); 5 } 6 7 function run_test() { 8 var sb = new Cu.Sandbox(null); 9 var dateCtor = sb.Date; 10 sb.wrappedCtor = Cu.exportFunction(function wrapper(val) { 11 "use strict"; 12 var constructing = this.constructor == wrapper; 13 return constructing ? new dateCtor(val) : dateCtor(val); 14 }, sb); 15 Assert.equal(typeof Date(), "string"); 16 Assert.equal(typeof new Date(), "object"); 17 Assert.equal(sb.eval("typeof wrappedCtor()"), "string"); 18 Assert.equal(sb.eval("typeof new wrappedCtor()"), "object"); 19 testStrict(sb); 20 }