| Index: LayoutTests/fast/dom/Window/script-tests/postmessage-clone.js
|
| diff --git a/LayoutTests/fast/dom/Window/script-tests/postmessage-clone.js b/LayoutTests/fast/dom/Window/script-tests/postmessage-clone.js
|
| index 0a07d0408b76793cca4a6f0e5e11631145828cce..9e940799b7d4ce86695a886bc3bc41c7c7b07bf5 100644
|
| --- a/LayoutTests/fast/dom/Window/script-tests/postmessage-clone.js
|
| +++ b/LayoutTests/fast/dom/Window/script-tests/postmessage-clone.js
|
| @@ -33,6 +33,8 @@ tryPostMessage('cyclicObject', false, "cyclicObject");
|
| cyclicArray=[];
|
| cyclicArray[0] = cyclicArray;
|
| tryPostMessage('cyclicArray', false, "cyclicArray");
|
| +var cyclicObjectGetter = {get self() { return cyclicObjectGetter; }};
|
| +tryPostMessage('cyclicObjectGetter', false, 'cyclicObject');
|
| objectGraph = {};
|
| object = {};
|
| objectGraph.graph1 = object;
|
| @@ -154,13 +156,14 @@ tryPostMessage(thunk(
|
| doPassFail((v.b.p === 42 && v.a.p === 42) ||
|
| (v.b.p === null && v.a.p === null), "accessors used (opposite order)");
|
| });
|
| -// We should nullify the results from accessors more than one level deep,
|
| -// but leave other fields untouched.
|
| +
|
| +// Tests to verify that accessor and non-accessor properties are
|
| +// treated equivalently.
|
| tryPostMessage(thunk(
|
| 'var obja = {get p() { return 42; }, q: 43}; ' +
|
| 'return {get a() { return obja; }};'
|
| ), false, "evalThunk", function(v) {
|
| - doPassFail(v.a.p === null, "accessor value was nullified");
|
| + doPassFail(v.a.p === 42, "accessor value was not nullified");
|
| doPassFail(v.a.q === 43, "non-accessor value was not nullified");
|
| });
|
| tryPostMessage(thunk(
|
| @@ -168,10 +171,10 @@ tryPostMessage(thunk(
|
| 'var obja = {get p() { return 42; }, q: 43, s: objb}; ' +
|
| 'return {get a() { return obja; }};'
|
| ), false, "evalThunk", function(v) {
|
| - doPassFail(v.a.p === null, "accessor value was nullified");
|
| + doPassFail(v.a.p === 42, "accessor value was not nullified");
|
| doPassFail(v.a.q === 43, "non-accessor value was not nullified");
|
| doPassFail(v.s !== null, "non-accessor value was not nullified");
|
| - doPassFail(v.a.s.r === null, "accessor value was nullified");
|
| + doPassFail(v.a.s.r === 44, "accessor value was not nullified");
|
| doPassFail(v.a.s.t === 45, "non-accessor value was not nullified");
|
| });
|
| tryPostMessage(thunk(
|
| @@ -181,13 +184,13 @@ tryPostMessage(thunk(
|
| ), false, "evalThunk", function(v) {
|
| doPassFail(v.b === 46, "accessor value was not nullified");
|
| doPassFail(v.c === 47, "accessor value was not nullified");
|
| - doPassFail(v.a.p === null, "accessor value was nullified");
|
| + doPassFail(v.a.p === 42, "accessor value was not nullified");
|
| doPassFail(v.a.q === 43, "non-accessor value was not nullified");
|
| doPassFail(v.a.s !== null, "non-accessor value was not nullified");
|
| doPassFail(v.a.s !== undefined, "non-accessor value is defined");
|
| doPassFail(v.a.s[0] !== null, "non-accessor value was not nullified");
|
| doPassFail(v.a.s[0] !== undefined, "non-accessor value is defined");
|
| - doPassFail(v.a.s[0].r === null, "accessor value was nullified");
|
| + doPassFail(v.a.s[0].r === 44, "accessor value was not nullified");
|
| doPassFail(v.a.s[0].t === 45, "non-accessor value was not nullified");
|
| });
|
|
|
| @@ -195,12 +198,10 @@ tryPostMessage(thunk(
|
| tryPostMessage(thunk(
|
| 'return {get a() { throw "accessor-exn"; }};'
|
| ), true, null, 'accessor-exn');
|
| -// We should still return the exception raised from nulled-out accessors.
|
| tryPostMessage(thunk(
|
| 'var obja = {get p() { throw "accessor-exn"; }}; ' +
|
| 'return {get a() { return obja; }};'
|
| ), true, null, 'accessor-exn');
|
| -// We should run the first nullified accessor, but no more.
|
| tryPostMessage(thunk(
|
| 'window.bcalled = undefined; ' +
|
| 'window.acalled = undefined; ' +
|
| @@ -209,10 +210,10 @@ tryPostMessage(thunk(
|
| 'var obja = {get a() { window.acalled = true; return objb; }}; ' +
|
| 'return { get p() { window.pcalled = true; return obja; }};'
|
| ), false, "evalThunk", function(v) {
|
| - doPassFail(v.p.a === null, "accessor value was nullified");
|
| + doPassFail(v.p.a.b === 42, "accessor value was not nullified");
|
| doPassFail(window.pcalled === true, "window.pcalled === true");
|
| doPassFail(window.acalled === true, "window.acalled === true");
|
| - doPassFail(window.bcalled === undefined, "window.bcalled === undefined");
|
| + doPassFail(window.bcalled === true, "window.bcalled === true");
|
| });
|
|
|
| // Reference equality between Boolean objects must be maintained.
|
|
|