Chromium Code Reviews| Index: test/mjsunit/strong/declaration-after-use.js |
| diff --git a/test/mjsunit/strong/declaration-after-use.js b/test/mjsunit/strong/declaration-after-use.js |
| index b51b2f7938b07fe4e2baea82a7db674d04d5d904..8bdccacf6c6f480295a017f16b0d96d91b6e00c5 100644 |
| --- a/test/mjsunit/strong/declaration-after-use.js |
| +++ b/test/mjsunit/strong/declaration-after-use.js |
| @@ -106,6 +106,11 @@ function assertThrowsHelper(code, error) { |
| ReferenceError); |
| assertThrowsHelper( |
| + "'use strong'; if (false) { " + |
| + "let C = class C2 { *generator_method() { C; } } }", |
| + ReferenceError); |
| + |
| + assertThrowsHelper( |
| "'use strong'; if (false) { let C = class C2 { " + |
| "static a() { return 'A'; } [C.a()]() { return 'B'; } }; }", |
| ReferenceError); |
| @@ -145,14 +150,11 @@ function assertThrowsHelper(code, error) { |
| "{ return 'B'; } } }", |
| ReferenceError); |
| - // Methods inside object literals are not sufficiently distinguished from |
| - // methods inside classes. |
| - // https://code.google.com/p/v8/issues/detail?id=3948 |
| - // assertThrowsHelper( |
| - // "'use strong'; if (false) { let C = class C2 { " + |
| - // "[({m() { C2; return 'A'; }}).m()]() " + |
| - // "{ return 'B'; } } }", |
| - // ReferenceError); |
| + assertThrowsHelper( |
| + "'use strong'; if (false) { let C = class C2 { " + |
| + "[({m() { C2; return 'A'; }}).m()]() " + |
| + "{ return 'B'; } } }", |
| + ReferenceError); |
| assertThrowsHelper( |
| "'use strong'; if (false) { let C = class C2 { " + |
| @@ -160,20 +162,20 @@ function assertThrowsHelper(code, error) { |
| "{ return 'B'; } } }", |
| ReferenceError); |
| - // assertThrowsHelper( |
| - // "'use strong';\n" + |
| - // "if (false) {\n" + |
| - // " class COuter {\n" + |
| - // " m() {\n" + |
| - // " class CInner {\n" + |
| - // " [({ m() { CInner; return 'A'; } }).m()]() {\n" + |
| - // " return 'B';\n" + |
| - // " }\n" + |
| - // " }\n" + |
| - // " }\n" + |
| - // " }\n" + |
| - // "}", |
| - // ReferenceError); |
| + assertThrowsHelper( |
| + "'use strong';\n" + |
| + "if (false) {\n" + |
|
arv (Not doing code reviews)
2015/03/10 16:49:06
unindent
arv (Not doing code reviews)
2015/03/10 16:49:06
unindent
|
| + " class COuter {\n" + |
| + " m() {\n" + |
| + " class CInner {\n" + |
| + " [({ m() { CInner; return 'A'; } }).m()]() {\n" + |
| + " return 'B';\n" + |
| + " }\n" + |
| + " }\n" + |
| + " }\n" + |
| + " }\n" + |
| + "}", |
| + ReferenceError); |
| })(); |
| @@ -241,8 +243,8 @@ function assertThrowsHelper(code, error) { |
| class C1 { constructor() { C1; } }; new C1(); |
| let C2 = class C3 { constructor() { C3; } }; new C2(); |
| - class C4 { method() { C4; } }; new C4(); |
| - let C5 = class C6 { method() { C6; } }; new C5(); |
| + class C4 { method() { C4; } *generator_method() { C4; } }; new C4(); |
| + let C5 = class C6 { method() { C6; } *generator_method() { C6; } }; new C5(); |
| class C7 { static method() { C7; } }; new C7(); |
| let C8 = class C9 { static method() { C9; } }; new C8(); |
| @@ -251,7 +253,7 @@ function assertThrowsHelper(code, error) { |
| let C11 = class C12 { get x() { C12; } }; new C11(); |
| // Regression test for unnamed classes. |
| - let C12 = class { m() { var1; } }; |
| + let C13 = class { m() { var1; } }; |
| class COuter { |
| m() { |
| @@ -266,4 +268,8 @@ function assertThrowsHelper(code, error) { |
| } |
| } |
| (new COuter()).m().n(); |
| + |
| + // Making sure the check which is supposed to prevent "object literal inside |
| + // computed property name references the class name" is not too generic: |
| + class C14 { m() { let obj = { n() { C14 } }; obj.n(); } }; (new C14()).m(); |
| })(); |