Tests that we clone object hierarchies PASS: 'postMessage((function(){}))' threw Error: DataCloneError: DOM Exception 25 PASS: 'postMessage(var x = 0; try { eval("badref"); } catch(e) { x = e; } x)' threw Error: DataCloneError: DOM Exception 25 PASS: 'postMessage(window)' threw Error: DataCloneError: DOM Exception 25 PASS: 'postMessage(({get a() { throw "x" }}))' threw x PASS: 'postMessage((function() {return {get a() { throw "accessor-exn"; }};})())' threw accessor-exn PASS: 'postMessage((function() {var obja = {get p() { throw "accessor-exn"; }}; return {get a() { return obja; }};})())' threw accessor-exn PASS: lastIndex initially correct: was 3 PASS: sanity on file reference equality PASS: eventData is null of type object PASS: eventData is undefined of type undefined PASS: eventData is 1 of type number PASS: eventData is true of type boolean PASS: eventData is 1 of type string PASS: eventData is [object Object] of type object PASS: eventData is [object Object] of type object PASS: eventData is [object Object] of type object PASS: eventData is [object Object] of type object PASS: eventData is [object Object] of type object PASS: eventData is [object Object] of type object PASS: eventData is [object Object] of type object PASS: eventData is [object Object] of type object PASS: eventData is [object Object] of type object PASS: eventData is of type object PASS: eventData is a,a,b,a,b of type object PASS: eventData is a,a,b,[object Object] of type object PASS: eventData is 1,2,3 of type object PASS: eventData is ,,1 of type object PASS: eventData is 2009-02-13T23:31:30.000Z of type object PASS: eventData is [object Object] of type object PASS: eventData is true of type object PASS: eventData is false of type object PASS: eventData is gnirts of type object PASS: eventData is 42 of type object PASS: eventData is === to eventData.self PASS: eventData is === to eventData[0] PASS: eventData.graph1 is === to eventData.graph2 PASS: eventData[0] is === to eventData[1] PASS: String keyed entry was cloned correctly PASS: Object key entry was cloned correctly PASS: newMap.get(true) is [object Set] of type object PASS: newMap.aSet.has(newMap) is true of type boolean LOG: 2.5 => 1 LOG: [object Object] => entry LOG: [object Set] => true LOG: [object Map] => [object Object] PASS: eventData is [object ImageData] of type object PASS: eventData is [object Uint8ClampedArray] of type object PASS: eventData is [object ImageData] of type object PASS: eventData is [object Uint8ClampedArray] of type object PASS: eventData is 42 of type number PASS: eventData is 42 of type number PASS: evalThunk OK PASS: eventData is [object Object] of type object PASS: length correct PASS: evaluation order OK PASS: evaluation order OK/accessor reached PASS: evaluation order OK PASS: length correct PASS: index 0 OK PASS: accessor reached PASS: index 2 undefined PASS: length correct PASS: index 0 OK PASS: index 1 OK PASS: index 2 OK PASS: basic properties OK PASS: one accessor was run PASS: property was removed PASS: property was removed PASS: accessor was run PASS: dynamic property not sent PASS: reference equality preserved PASS: accessors used PASS: reference equality preserved (opposite order) PASS: accessors used (opposite order) FAIL: accessor value was nullified PASS: non-accessor value was not nullified FAIL: accessor value was nullified PASS: non-accessor value was not nullified PASS: non-accessor value was not nullified FAIL: accessor value was nullified PASS: non-accessor value was not nullified PASS: accessor value was not nullified PASS: accessor value was not nullified FAIL: accessor value was nullified PASS: non-accessor value was not nullified PASS: non-accessor value was not nullified PASS: non-accessor value is defined PASS: non-accessor value was not nullified PASS: non-accessor value is defined FAIL: accessor value was nullified PASS: non-accessor value was not nullified FAIL: accessor value was nullified PASS: window.pcalled === true PASS: window.acalled === true FAIL: window.bcalled === undefined PASS: Boolean values correct (0) PASS: Boolean values correct (3) PASS: Boolean values correct (1,2) PASS: Boolean values correct (4,5) PASS: References to Booleans correct (0,1) PASS: References to Booleans correct (3,4) PASS: References to Booleans correct (0,2) PASS: References to Booleans correct (3,5) PASS: Number values correct (0) PASS: Number values correct (0,2) PASS: References to numbers correct (0,1) PASS: References to numbers correct (0,2) PASS: String values correct (0) PASS: String values correct (0,2) PASS: References to strings correct (0,1) PASS: References to strings correct (0,2) PASS: String object properties not serialized PASS: Number object properties not serialized PASS: Boolean object properties not serialized PASS: Date values correct (0) PASS: Date values correct (1) FAIL: References to dates correct (0) PASS: References to dates correct (1) PASS: Regexp value correct (0) FAIL: References to regexps correct (0) PASS: References to regexps correct (1) PASS: global set (0) PASS: global set (1) PASS: ignoreCase set (0) PASS: ignoreCase set (1) PASS: multiline set (0) PASS: multiline set (1) PASS: lastIndex correct (0) PASS: lastIndex correct (1) PASS: eventData is 2 of type number FAIL: file references transfer PASS: FileList should not respect reference equality PASS: FileList should not respect reference equality FAIL: FileList respects self-reference equality PASS: FileList length sent correctly PASS: FileList should not respect reference equality (0) PASS: FileList should not respect reference equality (1) PASS: FileList preserves order and data (name0) PASS: FileList preserves order and data (name1) PASS: FileList preserves order and data (date0) PASS: FileList preserves order and data (date1) PASS: eventData is done of type string