Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(155)

Unified Diff: sdk/lib/_internal/compiler/implementation/js/nodes.dart

Issue 12499005: dart2js: Create noSuchMethod handlers at runtime to reduce overhead. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Reordered some stuff due to code review feedback Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);

Powered by Google App Engine
This is Rietveld 408576698