| Index: pkg/compiler/lib/src/js/builder.dart
|
| diff --git a/pkg/compiler/lib/src/js/builder.dart b/pkg/compiler/lib/src/js/builder.dart
|
| index 3eeca5e3801960aef73f4a0ced1ccd323669403d..394de2c27f5576f913e45670756a7755a88c3500 100644
|
| --- a/pkg/compiler/lib/src/js/builder.dart
|
| +++ b/pkg/compiler/lib/src/js/builder.dart
|
| @@ -716,6 +716,8 @@ class MiniJsParser {
|
| return new LiteralNull();
|
| } else if (last == "function") {
|
| return parseFunctionExpression();
|
| + } else if (last == "this") {
|
| + return new This();
|
| } else {
|
| return new VariableUse(last);
|
| }
|
| @@ -1116,9 +1118,12 @@ class MiniJsParser {
|
|
|
| if (lastToken == 'default') error("Default outside switch.");
|
|
|
| + if (lastToken == 'yield') return parseYield();
|
| +
|
| if (lastToken == 'with') {
|
| error('Not implemented in mini parser');
|
| }
|
| +
|
| }
|
|
|
| bool checkForInterpolatedStatement = lastCategory == HASH;
|
| @@ -1153,6 +1158,13 @@ class MiniJsParser {
|
| return new Return(expression);
|
| }
|
|
|
| + Statement parseYield() {
|
| + bool hasStar = acceptString('*');
|
| + Expression expression = parseExpression();
|
| + expectSemicolon();
|
| + return new DartYield(expression, hasStar);
|
| + }
|
| +
|
| Statement parseThrow() {
|
| if (skippedNewline) error('throw expression must be on same line');
|
| Expression expression = parseExpression();
|
|
|