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\"", |