Chromium Code Reviews| Index: test/cctest/test-parsing.cc |
| diff --git a/test/cctest/test-parsing.cc b/test/cctest/test-parsing.cc |
| index aa350092a60d98f3e4133130dcd6db1dd2f27920..72f2298042956d13861f7e319d5e9a971b1acfa1 100644 |
| --- a/test/cctest/test-parsing.cc |
| +++ b/test/cctest/test-parsing.cc |
| @@ -3411,6 +3411,8 @@ TEST(ErrorsSuper) { |
| TEST(NoErrorsMethodDefinition) { |
| const char* context_data[][2] = {{"({", "});"}, |
| {"'use strict'; ({", "});"}, |
| + {"({*", "});"}, |
| + {"'use strict'; ({*", "});"}, |
| {NULL, NULL}}; |
| const char* object_literal_body_data[] = { |
| @@ -3431,6 +3433,8 @@ TEST(NoErrorsMethodDefinition) { |
| TEST(MethodDefinitionNames) { |
| const char* context_data[][2] = {{"({", "(x, y) {}});"}, |
| {"'use strict'; ({", "(x, y) {}});"}, |
| + {"({*", "(x, y) {}});"}, |
| + {"'use strict'; ({*", "(x, y) {}});"}, |
| {NULL, NULL}}; |
| const char* name_data[] = { |
| @@ -3505,6 +3509,8 @@ TEST(MethodDefinitionNames) { |
| TEST(MethodDefinitionStrictFormalParamereters) { |
| const char* context_data[][2] = {{"({method(", "){}});"}, |
| {"'use strict'; ({method(", "){}});"}, |
| + {"({*method(", "){}});"}, |
| + {"'use strict'; ({*method(", "){}});"}, |
| {NULL, NULL}}; |
| const char* params_data[] = { |
| @@ -3540,6 +3546,18 @@ TEST(MethodDefinitionDuplicateProperty) { |
| "x() {}, 'x'() {}", |
| "0() {}, '0'() {}", |
| "1.0() {}, 1: 1", |
| + |
| + "x: 1, *x() {}", |
| + "*x() {}, x: 1", |
| + "*x() {}, get x() {}", |
| + "*x() {}, set x(_) {}", |
| + "*x() {}, *x() {}", |
| + "*x() {}, y() {}, *x() {}", |
| + "*x() {}, *\"x\"() {}", |
| + "*x() {}, *'x'() {}", |
| + "*0() {}, *'0'() {}", |
| + "*1.0() {}, 1: 1", |
| + |
| NULL |
| }; |
| @@ -3549,7 +3567,7 @@ TEST(MethodDefinitionDuplicateProperty) { |
| } |
| -TEST(NoErrorsClassExpression) { |
| +TEST(ClassExpressionNoErrors) { |
| const char* context_data[][2] = {{"(", ");"}, |
| {"var C = ", ";"}, |
| {"bar, ", ";"}, |
| @@ -3573,7 +3591,7 @@ TEST(NoErrorsClassExpression) { |
| } |
| -TEST(NoErrorsClassDeclaration) { |
| +TEST(ClassDeclarationNoErrors) { |
| const char* context_data[][2] = {{"", ""}, |
| {"{", "}"}, |
| {"if (true) {", "}"}, |
| @@ -3592,7 +3610,7 @@ TEST(NoErrorsClassDeclaration) { |
| } |
| -TEST(NoErrorsClassBody) { |
| +TEST(ClassBodyNoErrors) { |
| // Tests that parser and preparser accept valid class syntax. |
| const char* context_data[][2] = {{"(class {", "});"}, |
| {"(class extends Base {", "});"}, |
| @@ -3604,12 +3622,16 @@ TEST(NoErrorsClassBody) { |
| ";;", |
| "m() {}", |
| "m() {};", |
| - ";m() {}", |
| + "; m() {}", |
| "m() {}; n(x) {}", |
| "get x() {}", |
| "set x(v) {}", |
| "get() {}", |
| "set() {}", |
| + "*g() {}", |
| + "*g() {};", |
| + "; *g() {}", |
| + "*g() {}; *h(x) {}", |
| "static() {}", |
| "static m() {}", |
| "static get x() {}", |
| @@ -3619,6 +3641,10 @@ TEST(NoErrorsClassBody) { |
| "static static() {}", |
| "static get static() {}", |
| "static set static(v) {}", |
| + "*static() {}", |
| + "*get() {}", |
| + "*set() {}", |
| + "static *g() {}", |
| NULL}; |
| static const ParserFlag always_flags[] = { |
| @@ -3630,39 +3656,23 @@ TEST(NoErrorsClassBody) { |
| } |
| -TEST(MethodDefinitionstrictFormalParamereters) { |
| - const char* context_data[][2] = {{"({method(", "){}});"}, |
| - {NULL, NULL}}; |
| - |
| - const char* params_data[] = { |
| - "x, x", |
| - "x, y, x", |
| - "eval", |
| - "arguments", |
| - "var", |
| - "const", |
| - NULL |
| - }; |
| - |
| - static const ParserFlag always_flags[] = {kAllowHarmonyObjectLiterals}; |
| - RunParserSyncTest(context_data, params_data, kError, NULL, 0, |
| - always_flags, arraysize(always_flags)); |
| -} |
| - |
| - |
| -TEST(NoErrorsClassPropertyName) { |
| +TEST(ClassPropertyNameNoErrors) { |
| const char* context_data[][2] = {{"(class {", "() {}});"}, |
| {"(class { get ", "() {}});"}, |
| {"(class { set ", "(v) {}});"}, |
| {"(class { static ", "() {}});"}, |
| {"(class { static get ", "() {}});"}, |
| {"(class { static set ", "(v) {}});"}, |
| + {"(class { *", "() {}});"}, |
| + {"(class { static *", "() {}});"}, |
| {"class C {", "() {}}"}, |
| {"class C { get ", "() {}}"}, |
| {"class C { set ", "(v) {}}"}, |
| {"class C { static ", "() {}}"}, |
| {"class C { static get ", "() {}}"}, |
| {"class C { static set ", "(v) {}}"}, |
| + {"class C { *", "() {}}"}, |
| + {"class C { static *", "() {}}"}, |
| {NULL, NULL}}; |
| const char* name_data[] = { |
| "42", |
| @@ -3704,7 +3714,7 @@ TEST(NoErrorsClassPropertyName) { |
| } |
| -TEST(ErrorsClassExpression) { |
| +TEST(ClassExpressionErrors) { |
| const char* context_data[][2] = {{"(", ");"}, |
| {"var C = ", ";"}, |
| {"bar, ", ";"}, |
| @@ -3735,7 +3745,7 @@ TEST(ErrorsClassExpression) { |
| } |
| -TEST(ErrorsClassDeclaration) { |
| +TEST(ClassDeclarationErrors) { |
| const char* context_data[][2] = {{"", ""}, |
| {"{", "}"}, |
| {"if (true) {", "}"}, |
| @@ -3750,11 +3760,17 @@ TEST(ErrorsClassDeclaration) { |
| "class name { m; n }", |
| "class name { m: 1 }", |
| "class name { m(); n() }", |
| - "class name { get m }", |
| - "class name { get m() }", |
| - "class name { set m() {) }", // missing required param |
| + "class name { get x }", |
| + "class name { get x() }", |
| + "class name { set x() {) }", // missing required param |
| "class {}", // Name is required for declaration |
| "class extends base {}", |
| + "class name { *", |
| + "class name { * }", |
| + "class name { *; }", |
| + "class name { *get x() {} }", |
| + "class name { *set x(_) {} }", |
| + "class name { *static m() {} }", |
| NULL}; |
| static const ParserFlag always_flags[] = { |
| @@ -3766,7 +3782,7 @@ TEST(ErrorsClassDeclaration) { |
| } |
| -TEST(ErrorsClassName) { |
| +TEST(ClassNameErrors) { |
| const char* context_data[][2] = {{"class ", "{}"}, |
| {"(class ", "{});"}, |
| {"'use strict'; class ", "{}"}, |
| @@ -3796,7 +3812,7 @@ TEST(ErrorsClassName) { |
| } |
| -TEST(ErrorsClassGetterParamName) { |
| +TEST(ClassGetterParamNameErrors) { |
| const char* context_data[][2] = { |
| {"class C { get name(", ") {} }"}, |
| {"(class { get name(", ") {} });"}, |
| @@ -3829,7 +3845,7 @@ TEST(ErrorsClassGetterParamName) { |
| } |
| -TEST(ErrorsClassStaticPrototype) { |
| +TEST(ClassStaticPrototypeErrors) { |
| const char* context_data[][2] = {{"class C {", "}"}, |
| {"(class {", "});"}, |
| {NULL, NULL}}; |
| @@ -3838,6 +3854,7 @@ TEST(ErrorsClassStaticPrototype) { |
| "static prototype() {}", |
| "static get prototype() {}", |
| "static set prototype(_) {}", |
| + "static *prototype() {}", |
| NULL}; |
| static const ParserFlag always_flags[] = { |
| @@ -3849,7 +3866,7 @@ TEST(ErrorsClassStaticPrototype) { |
| } |
| -TEST(ErrorsClassSpecialConstructor) { |
| +TEST(ClassSpecialConstructorErrors) { |
| const char* context_data[][2] = {{"class C {", "}"}, |
| {"(class {", "});"}, |
| {NULL, NULL}}; |
| @@ -3857,6 +3874,7 @@ TEST(ErrorsClassSpecialConstructor) { |
| const char* class_body_data[] = { |
| "get constructor() {}", |
| "get constructor(_) {}", |
| + "*constructor() {}", |
|
arv (Not doing code reviews)
2014/09/18 15:59:02
Andy, non static generator constructor is tested h
|
| NULL}; |
| static const ParserFlag always_flags[] = { |
| @@ -3868,7 +3886,7 @@ TEST(ErrorsClassSpecialConstructor) { |
| } |
| -TEST(NoErrorsClassConstructor) { |
| +TEST(ClassConstructorNoErrors) { |
| const char* context_data[][2] = {{"class C {", "}"}, |
| {"(class {", "});"}, |
| {NULL, NULL}}; |
| @@ -3878,6 +3896,7 @@ TEST(NoErrorsClassConstructor) { |
| "static constructor() {}", |
| "static get constructor() {}", |
| "static set constructor(_) {}", |
| + "static *constructor() {}", |
| NULL}; |
| static const ParserFlag always_flags[] = { |
| @@ -3889,7 +3908,7 @@ TEST(NoErrorsClassConstructor) { |
| } |
| -TEST(ErrorsClassMultipleConstructor) { |
| +TEST(ClassMultipleConstructorErrors) { |
| // We currently do not allow any duplicate properties in class bodies. This |
| // test ensures that when we change that we still throw on duplicate |
| // constructors. |
| @@ -3912,7 +3931,7 @@ TEST(ErrorsClassMultipleConstructor) { |
| // TODO(arv): We should allow duplicate property names. |
| // https://code.google.com/p/v8/issues/detail?id=3570 |
| -DISABLED_TEST(NoErrorsClassMultiplePropertyNames) { |
| +DISABLED_TEST(ClassMultiplePropertyNamesNoErrors) { |
| const char* context_data[][2] = {{"class C {", "}"}, |
| {"(class {", "});"}, |
| {NULL, NULL}}; |
| @@ -3932,7 +3951,7 @@ DISABLED_TEST(NoErrorsClassMultiplePropertyNames) { |
| } |
| -TEST(ErrorsClassesAreStrict) { |
| +TEST(ClassesAreStrictErrors) { |
| const char* context_data[][2] = {{"", ""}, |
| {"(", ");"}, |
| {NULL, NULL}}; |
| @@ -3940,6 +3959,7 @@ TEST(ErrorsClassesAreStrict) { |
| const char* class_body_data[] = { |
| "class C { method() { with ({}) {} } }", |
| "class C extends function() { with ({}) {} } {}", |
| + "class C { *method() { with ({}) {} } }", |
| NULL}; |
| static const ParserFlag always_flags[] = { |