| Index: sdk/lib/_internal/compiler/implementation/js/nodes.dart
|
| diff --git a/sdk/lib/_internal/compiler/implementation/js/nodes.dart b/sdk/lib/_internal/compiler/implementation/js/nodes.dart
|
| index fe89432e088c8bd0599b362e0d15eb1d643a392a..f893caebb753d8481a170abcf85e055a312faf6c 100644
|
| --- a/sdk/lib/_internal/compiler/implementation/js/nodes.dart
|
| +++ b/sdk/lib/_internal/compiler/implementation/js/nodes.dart
|
| @@ -1061,6 +1061,11 @@ class JsBuilder {
|
| toStatement(statement));
|
| }
|
|
|
| + While while_(condition, statement) {
|
| + return new While(
|
| + toExpression(condition), toStatement(statement));
|
| + }
|
| +
|
| Try try_(body, {catchPart, finallyPart}) {
|
| if (catchPart != null) catchPart = toStatement(catchPart);
|
| if (finallyPart != null) finallyPart = toStatement(finallyPart);
|
| @@ -1191,8 +1196,8 @@ class MiniJsParser {
|
| ALPHA, ALPHA, LBRACE, SYMBOL, RBRACE, SYMBOL]; // yz{|}~
|
|
|
| static final BINARY_OPERATORS = [
|
| - '+', '-', '*', '/', '%', '^', '|', '&', '||', '&&',
|
| - '<<', '>>', '+=', '-=', '*=', '/=', '^=', '|=', '&=', '<<=', '>>=',
|
| + '+', '-', '*', '/', '%', '^', '|', '&', '||', '&&', '<<', '>>', '>>>',
|
| + '+=', '-=', '*=', '/=', '%=', '^=', '|=', '&=', '<<=', '>>=', '>>>=',
|
| '=', '!=', '==', '!==', '===', '<', '<=', '>=', '>'].toSet();
|
| static final UNARY_OPERATORS = ['++', '--', '+', '-', '~', '!'].toSet();
|
|
|
| @@ -1431,7 +1436,7 @@ class MiniJsParser {
|
| // it the wrong prescedence), so we just return if we see it.
|
| if (relation == "=" || !acceptCategory(RELATION)) return lhs;
|
| Expression rhs = parseBinary();
|
| - if (relation == "<<=" || relation == ">>=") {
|
| + if (relation == "<<=" || relation == ">>=" || relation == ">>>=") {
|
| return new Assignment.compound(lhs,
|
| relation.substring(0, relation.length - 1),
|
| rhs);
|
|
|