| Index: test/cctest/test-parsing.cc
|
| diff --git a/test/cctest/test-parsing.cc b/test/cctest/test-parsing.cc
|
| index 857089ea0662ca374051c07ae000c8da59a04a77..0fea949cda154266a45cdb9837bb1e93cb8b228e 100644
|
| --- a/test/cctest/test-parsing.cc
|
| +++ b/test/cctest/test-parsing.cc
|
| @@ -2262,11 +2262,11 @@ TEST(StrictObjectLiteralChecking) {
|
| };
|
|
|
| RunParserSyncTest(non_strict_context_data, statement_data, kSuccess);
|
| - RunParserSyncTest(strict_context_data, statement_data, kError);
|
| + RunParserSyncTest(strict_context_data, statement_data, kSuccess);
|
| }
|
|
|
|
|
| -TEST(ErrorsObjectLiteralChecking) {
|
| +TEST(DuplicatePropertyObjectLiteralChecking) {
|
| const char* context_data[][2] = {
|
| {"\"use strict\"; var myobject = {", "};"},
|
| {"var myobject = {", "};"},
|
| @@ -2274,29 +2274,44 @@ TEST(ErrorsObjectLiteralChecking) {
|
| };
|
|
|
| const char* statement_data[] = {
|
| - ",",
|
| "foo: 1, get foo() {}",
|
| "foo: 1, set foo(v) {}",
|
| "\"foo\": 1, get \"foo\"() {}",
|
| "\"foo\": 1, set \"foo\"(v) {}",
|
| "1: 1, get 1() {}",
|
| - "1: 1, set 1() {}",
|
| - // It's counter-intuitive, but these collide too (even in classic
|
| - // mode). Note that we can have "foo" and foo as properties in classic mode,
|
| - // but we cannot have "foo" and get foo, or foo and get "foo".
|
| + "1: 1, set 1(v) {}",
|
| "foo: 1, get \"foo\"() {}",
|
| "foo: 1, set \"foo\"(v) {}",
|
| "\"foo\": 1, get foo() {}",
|
| "\"foo\": 1, set foo(v) {}",
|
| "1: 1, get \"1\"() {}",
|
| - "1: 1, set \"1\"() {}",
|
| - "\"1\": 1, get 1() {}"
|
| - "\"1\": 1, set 1(v) {}"
|
| + "1: 1, set \"1\"(v) {}",
|
| + "\"1\": 1, get 1() {}",
|
| + "\"1\": 1, set 1(v) {}",
|
| + NULL
|
| + };
|
| +
|
| + RunParserSyncTest(context_data, statement_data, kSuccess);
|
| +}
|
| +
|
| +
|
| +TEST(ErrorsObjectLiteralChecking) {
|
| + const char* context_data[][2] = {
|
| + {"\"use strict\"; var myobject = {", "};"},
|
| + {"var myobject = {", "};"},
|
| + { NULL, NULL }
|
| + };
|
| +
|
| + const char* statement_data[] = {
|
| + // {,} is invalid
|
| + ",",
|
| // Wrong number of parameters
|
| "get bar(x) {}",
|
| "get bar(x, y) {}",
|
| "set bar() {}",
|
| "set bar(x, y) {}",
|
| + "set 1() {}",
|
| + "set \"1\"() {}",
|
| // Parsing FunctionLiteral for getter or setter fails
|
| "get foo( +",
|
| "get foo() \"error\"",
|
|
|