/* * ES6 allows duplicate property names in object literals, even in strict mode. * These tests modify the tests in test262 to reflect this change. */ // test262/ch11/11.1/11.1.5/11.1.5-4-4-a-1-s.js a = function() { "use strict"; return { foo: 0, foo : 1 }}; assertEq(a().foo, 1); a = function() { return { foo: 0, foo : 1 }}; assertEq(a().foo, 1); // test262/ch11/11.1/11.1.5/11.1.5_4-4-b-1.js a = function() { "use strict"; return { foo : 1, get foo() { return 2; }}}; assertEq(a().foo, 2); a = function() { return { foo : 1, get foo() { return 2;} }}; assertEq(a().foo, 2); // test262/ch11/11.1/11.1.5/11.1.5_4-4-c-1.js a = function() { "use strict"; return { get foo() { return 2; }, foo : 1 }}; assertEq(a().foo, 1); a = function() { return { get foo() { return 2; }, foo : 1 }}; assertEq(a().foo, 1); // test262/ch11/11.1/11.1.5/11.1.5_4-4-b-2.js a = function() { "use strict"; return { foo : 1, set foo(a) { throw 2; }}}; try { a().foo = 5; throw new Error("2 should be thrown here"); } catch (e) { if (e !== 2) throw new Error("2 should be thrown here"); } a = function() { return { foo : 1, set foo(a) { throw 2;} }}; try { a().foo = 5; throw new Error("2 should be thrown here"); } catch (e) { if (e !== 2) throw new Error("2 should be thrown here"); } // test262/ch11/11.1/11.1.5/11.1.5_4-4-d-1.js a = function() { "use strict"; return { get foo() { return 2; }, get foo() { return 3; } }}; assertEq(a().foo, 3); a = function() { return { get foo() { return 2; }, get foo() { return 3; } }}; assertEq(a().foo, 3); // test262/ch11/11.1/11.1.5/11.1.5_4-4-c-2.js a = function() { "use strict"; return { set foo(a) { throw 2; }, foo : 1 }}; assertEq(a().foo, 1); a = function() { return { set foo(a) { throw 2; }, foo : 1 }}; assertEq(a().foo, 1); // test262/ch11/11.1/11.1.5/11.1.5_4-4-d-2.js a = function() { "use strict"; return { set foo(a) { throw 2; }, set foo(a) { throw 3; }}}; try { a().foo = 5; throw new Error("3 should be thrown here"); } catch (e) { if (e !== 3) throw new Error("3 should be thrown here"); } a = function() { return { set foo(a) { throw 2; }, set foo(a) { throw 3; }}}; try { a().foo = 5; throw new Error("3 should be thrown here"); } catch (e) { if (e !== 3) throw new Error("3 should be thrown here"); } // test262/ch11/11.1/11.1.5/11.1.5_4-4-d-3.js a = function() { "use strict"; return { get foo() { return 2; }, set foo(a) { throw 3; }, get foo() { return 4; }}}; try { assertEq(a().foo, 4); a().foo = 5; throw new Error("3 should be thrown here"); } catch (e) { if (e !== 3) throw new Error("3 should be thrown here"); } a = function() { return { get foo() { return 2; }, set foo(a) { throw 3; }, get foo() { return 4; }}}; try { assertEq(a().foo, 4); a().foo = 5; throw new Error("3 should be thrown here"); } catch (e) { if (e !== 3) throw new Error("3 should be thrown here"); } // test262/ch11/11.1/11.1.5/11.1.5_4-4-d-4.js a = function() { "use strict"; return { set foo(a) { throw 2; }, get foo() { return 4; }, set foo(a) { throw 3; }}}; try { assertEq(a().foo, 4); a().foo = 5; throw new Error("3 should be thrown here"); } catch (e) { if (e !== 3) throw new Error("3 should be thrown here"); } a = function() { return { set foo(a) { throw 2; }, get foo() { return 4; }, set foo(a) { throw 3; }}}; try { assertEq(a().foo, 4); a().foo = 5; throw new Error("3 should be thrown here"); } catch (e) { if (e !== 3) throw new Error("3 should be thrown here"); } reportCompare(0, 0);