Chromium Code Reviews| Index: test/preparser/strict-identifiers.pyt |
| diff --git a/test/preparser/strict-identifiers.pyt b/test/preparser/strict-identifiers.pyt |
| index 72808e25bfa993c2dc8798332931a0c70e0c672c..d0ca94490258eee1202ff00a61b184a6704b37d7 100644 |
| --- a/test/preparser/strict-identifiers.pyt |
| +++ b/test/preparser/strict-identifiers.pyt |
| @@ -138,6 +138,30 @@ setter_arg = StrictTemplate("setter-param-$id", """ |
| var x = {set foo($id) { }}; |
| """) |
| +label_normal = Template("label-normal-$id", """ |
| + $id: ''; |
| +""") |
| + |
| +label_strict = StrictTemplate("label-strict-$id", """ |
| + $id: ''; |
| +""") |
| + |
| +break_normal = Template("break-normal-$id", """ |
| + break $id; |
| +""") |
| + |
| +break_strict = StrictTemplate("break-strict-$id", """ |
| + break $id; |
| +""") |
| + |
| +continue_normal = Template("continue-normal-$id", """ |
| + continue $id; |
| +""") |
| + |
| +continue_strict = StrictTemplate("continue-strict-$id", """ |
| + continue $id; |
|
Lasse Reichstein
2011/09/22 12:50:19
IIRC, you can't have break and continue outside of
Steven
2011/09/22 16:48:32
Done.
|
| +""") |
| + |
| non_strict_use = Template("nonstrict-$id", """ |
| var $id = 42; |
| $id++; |
| @@ -162,6 +186,7 @@ non_strict_use = Template("nonstrict-$id", """ |
| function $id($id) { } |
| x = {$id: 42}; |
| x = {get $id() {}, set $id(value) {}}; |
| + $id: ''; |
| """) |
| identifier_name_source = """ |
| @@ -197,6 +222,12 @@ for id in ["eval", "arguments"]: |
| prefix_var({"id": id, "op":"--", "opname":"dec"}, "strict_lhs_prefix") |
| postfix_var({"id": id, "op":"++", "opname":"inc"}, "strict_lhs_postfix") |
| postfix_var({"id": id, "op":"--", "opname":"dec"}, "strict_lhs_postfix") |
| + label_normal({"id": id}, None) |
| + label_strict({"id": id}, None) |
| + break_normal({"id": id}, None) |
| + break_strict({"id": id}, None) |
| + continue_normal({"id": id}, None) |
| + continue_strict({"id": id}, None) |
| non_strict_use({"id": id}, None) |
| @@ -205,10 +236,32 @@ for id in ["eval", "arguments"]: |
| for reserved_word in reserved_words + strict_reserved_words: |
| if (reserved_word in strict_reserved_words): |
| message = "strict_reserved_word" |
|
Lasse Reichstein
2011/09/22 12:50:19
Make a label_message = message here and in case th
Steven
2011/09/22 16:48:32
Done.
|
| + label_normal({"id": reserved_word}, None) |
| + break_normal({"id": reserved_word}, None) |
| + continue_normal({"id": reserved_word}, None) |
| + label_strict({"id": reserved_word}, message) |
| + break_strict({"id": reserved_word}, message) |
| + continue_strict({"id": reserved_word}, message) |
| elif (reserved_word == "const"): |
| message = "unexpected_token" |
| + label_normal({"id": reserved_word}, message) |
| + break_normal({"id": reserved_word}, message) |
| + continue_normal({"id": reserved_word}, message) |
| + # The error message for this case is different because |
| + # ParseLabelledStatementOrExpression will try to parse this as an expression |
| + # first, effectively disallowing the use in ParseVariableDeclarations, i.e. |
| + # the preparser never sees that 'const' was intended to be a label. |
| + label_strict({"id": reserved_word}, "strict_const") |
| + break_strict({"id": reserved_word}, message) |
| + continue_strict({"id": reserved_word}, message) |
| else: |
| message = "reserved_word" |
| + label_normal({"id": reserved_word}, message) |
| + break_normal({"id": reserved_word}, message) |
| + continue_normal({"id": reserved_word}, message) |
| + label_strict({"id": reserved_word}, message) |
| + break_strict({"id": reserved_word}, message) |
| + continue_strict({"id": reserved_word}, message) |
| arg_name_own({"id":reserved_word}, message) |
| arg_name_nested({"id":reserved_word}, message) |
| setter_arg({"id": reserved_word}, message) |