| Index: test/mjsunit/strict-mode.js
|
| diff --git a/test/mjsunit/strict-mode.js b/test/mjsunit/strict-mode.js
|
| index 5fb404a7990913cc953fe400315a3e4e455ced4a..400e9b108905feca24af5fdf3dcc0d74d8c6b9e7 100644
|
| --- a/test/mjsunit/strict-mode.js
|
| +++ b/test/mjsunit/strict-mode.js
|
| @@ -167,58 +167,57 @@ assertThrows('\
|
| }', SyntaxError);
|
|
|
| // Duplicate data properties.
|
| -CheckStrictMode("var x = { dupe : 1, nondupe: 3, dupe : 2 };", SyntaxError);
|
| -CheckStrictMode("var x = { '1234' : 1, '2345' : 2, '1234' : 3 };", SyntaxError);
|
| -CheckStrictMode("var x = { '1234' : 1, '2345' : 2, 1234 : 3 };", SyntaxError);
|
| -CheckStrictMode("var x = { 3.14 : 1, 2.71 : 2, 3.14 : 3 };", SyntaxError);
|
| -CheckStrictMode("var x = { 3.14 : 1, '3.14' : 2 };", SyntaxError);
|
| -CheckStrictMode("var x = { \
|
| - 123: 1, \
|
| - 123.00000000000000000000000000000000000000000000000000000000000000000001: 2 \
|
| -}", SyntaxError);
|
| -
|
| -// Non-conflicting data properties.
|
| -(function StrictModeNonDuplicate() {
|
| +(function DuplicatePropertiesPermittedAsOfES6() {
|
| "use strict";
|
| + var x = { dupe : 1, nondupe: 3, dupe : 2 };
|
| + var x = { '1234' : 1, '2345' : 2, '1234' : 3 };
|
| + var x = { '1234' : 1, '2345' : 2, 1234 : 3 };
|
| + var x = { 3.14 : 1, 2.71 : 2, 3.14 : 3 };
|
| + var x = { 3.14 : 1, '3.14' : 2 };
|
| + var x = { 123: 1,
|
| + 123.00000000000000000000000000000000000000000000000000000000000000000001: 2
|
| + };
|
| +
|
| + // Non-conflicting data properties.
|
| var x = { 123 : 1, "0123" : 2 };
|
| var x = {
|
| 123: 1,
|
| '123.00000000000000000000000000000000000000000000000000000000000000000001':
|
| 2
|
| };
|
| -})();
|
|
|
| -// Two getters (non-strict)
|
| -assertThrows("var x = { get foo() { }, get foo() { } };", SyntaxError);
|
| -assertThrows("var x = { get foo(){}, get 'foo'(){}};", SyntaxError);
|
| -assertThrows("var x = { get 12(){}, get '12'(){}};", SyntaxError);
|
| -
|
| -// Two setters (non-strict)
|
| -assertThrows("var x = { set foo(v) { }, set foo(v) { } };", SyntaxError);
|
| -assertThrows("var x = { set foo(v) { }, set 'foo'(v) { } };", SyntaxError);
|
| -assertThrows("var x = { set 13(v) { }, set '13'(v) { } };", SyntaxError);
|
| -
|
| -// Setter and data (non-strict)
|
| -assertThrows("var x = { foo: 'data', set foo(v) { } };", SyntaxError);
|
| -assertThrows("var x = { set foo(v) { }, foo: 'data' };", SyntaxError);
|
| -assertThrows("var x = { foo: 'data', set 'foo'(v) { } };", SyntaxError);
|
| -assertThrows("var x = { set foo(v) { }, 'foo': 'data' };", SyntaxError);
|
| -assertThrows("var x = { 'foo': 'data', set foo(v) { } };", SyntaxError);
|
| -assertThrows("var x = { set 'foo'(v) { }, foo: 'data' };", SyntaxError);
|
| -assertThrows("var x = { 'foo': 'data', set 'foo'(v) { } };", SyntaxError);
|
| -assertThrows("var x = { set 'foo'(v) { }, 'foo': 'data' };", SyntaxError);
|
| -assertThrows("var x = { 12: 1, set '12'(v){}};", SyntaxError);
|
| -assertThrows("var x = { 12: 1, set 12(v){}};", SyntaxError);
|
| -assertThrows("var x = { '12': 1, set '12'(v){}};", SyntaxError);
|
| -assertThrows("var x = { '12': 1, set 12(v){}};", SyntaxError);
|
| -
|
| -// Getter and data (non-strict)
|
| -assertThrows("var x = { foo: 'data', get foo() { } };", SyntaxError);
|
| -assertThrows("var x = { get foo() { }, foo: 'data' };", SyntaxError);
|
| -assertThrows("var x = { 'foo': 'data', get foo() { } };", SyntaxError);
|
| -assertThrows("var x = { get 'foo'() { }, 'foo': 'data' };", SyntaxError);
|
| -assertThrows("var x = { '12': 1, get '12'(){}};", SyntaxError);
|
| -assertThrows("var x = { '12': 1, get 12(){}};", SyntaxError);
|
| + // Two getters
|
| + var x = { get foo() { }, get foo() { } };
|
| + var x = { get foo(){}, get 'foo'(){}};
|
| + var x = { get 12(){}, get '12'(){}};
|
| +
|
| + // Two setters
|
| + var x = { set foo(v) { }, set foo(v) { } };
|
| + var x = { set foo(v) { }, set 'foo'(v) { } };
|
| + var x = { set 13(v) { }, set '13'(v) { } };
|
| +
|
| + // Setter and data
|
| + var x = { foo: 'data', set foo(v) { } };
|
| + var x = { set foo(v) { }, foo: 'data' };
|
| + var x = { foo: 'data', set 'foo'(v) { } };
|
| + var x = { set foo(v) { }, 'foo': 'data' };
|
| + var x = { 'foo': 'data', set foo(v) { } };
|
| + var x = { set 'foo'(v) { }, foo: 'data' };
|
| + var x = { 'foo': 'data', set 'foo'(v) { } };
|
| + var x = { set 'foo'(v) { }, 'foo': 'data' };
|
| + var x = { 12: 1, set '12'(v){}};
|
| + var x = { 12: 1, set 12(v){}};
|
| + var x = { '12': 1, set '12'(v){}};
|
| + var x = { '12': 1, set 12(v){}};
|
| +
|
| + // Getter and data
|
| + var x = { foo: 'data', get foo() { } };
|
| + var x = { get foo() { }, foo: 'data' };
|
| + var x = { 'foo': 'data', get foo() { } };
|
| + var x = { get 'foo'() { }, 'foo': 'data' };
|
| + var x = { '12': 1, get '12'(){}};
|
| + var x = { '12': 1, get 12(){}};
|
| +})();
|
|
|
| // Assignment to eval or arguments
|
| CheckStrictMode("function strict() { eval = undefined; }", SyntaxError);
|
|
|