blob: 41b8d67fb0130444808304df7fe03d0a18832224 [file] [log] [blame]
/*
* 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);