test_structuredClone.js (709B)
1 function run_test() { 2 var sb = new Cu.Sandbox("http://www.example.com", { 3 wantGlobalProperties: ["structuredClone"], 4 }); 5 6 sb.equal = equal; 7 8 sb.testing = Cu.cloneInto({ xyz: 123 }, sb); 9 Cu.evalInSandbox( 10 ` 11 equal(structuredClone("abc"), "abc"); 12 13 var obj = { a: 1 }; 14 obj.self = obj; 15 var clone = structuredClone(obj); 16 equal(clone.a, 1); 17 equal(clone.self, clone); 18 19 var ab = new ArrayBuffer(1); 20 clone = structuredClone(ab, { transfer: [ab] }); 21 equal(clone.byteLength, 1); 22 equal(ab.byteLength, 0); 23 24 clone = structuredClone(testing); 25 equal(clone.xyz, 123); 26 `, 27 sb 28 ); 29 30 const clone = structuredClone({ b: 2 }); 31 Assert.equal(clone.b, 2); 32 }