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

Unified Diff: compiler/java/com/google/dart/compiler/backend/js/GenerateJavascriptAST.java

Issue 8276014: Update assert to follow the spec. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: '' Created 9 years, 2 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: compiler/java/com/google/dart/compiler/backend/js/GenerateJavascriptAST.java
===================================================================
--- compiler/java/com/google/dart/compiler/backend/js/GenerateJavascriptAST.java (revision 409)
+++ compiler/java/com/google/dart/compiler/backend/js/GenerateJavascriptAST.java (working copy)
@@ -98,6 +98,7 @@
import com.google.dart.compiler.backend.js.ast.JsContinue;
import com.google.dart.compiler.backend.js.ast.JsDefault;
import com.google.dart.compiler.backend.js.ast.JsDoWhile;
+import com.google.dart.compiler.backend.js.ast.JsEmpty;
import com.google.dart.compiler.backend.js.ast.JsExprStmt;
import com.google.dart.compiler.backend.js.ast.JsExpression;
import com.google.dart.compiler.backend.js.ast.JsFor;
@@ -2301,6 +2302,10 @@
return translationContext.getProgram().getUndefinedLiteral();
}
+ private JsEmpty empty() {
+ return translationContext.getProgram().getEmptyStmt();
+ }
+
@Override
public JsNode visitTypeNode(DartTypeNode x) {
// This backend does not need types.
@@ -3423,18 +3428,21 @@
@Override
public JsNode visitAssertion(DartAssertion node) {
- JsExpression expression = (JsExpression) generate(node.getExpression());
- JsExpression message = (JsExpression) generate(node.getMessage());
- JsNameRef assertName = new JsNameRef("assert");
- JsInvocation jsInvoke;
- if (message == null) {
+ if (inDevMode()) {
+ JsExpression expression = (JsExpression) generate(node.getExpression());
+ JsNameRef assertName = new JsNameRef("assert");
+ JsInvocation jsInvoke;
jsInvoke = AstUtil.newInvocation(assertName, expression);
- } else {
- jsInvoke = AstUtil.newInvocation(assertName, expression, message);
+ return new JsExprStmt(jsInvoke).setSourceRef(node);
}
- return new JsExprStmt(jsInvoke).setSourceRef(node);
+ // Just emit an empty statement if not in checked mode.
+ return empty();
}
+ private boolean inDevMode() {
+ return context.getCompilerConfiguration().developerModeChecks();
+ }
+
@Override
public JsNode visitParenthesizedExpression(DartParenthesizedExpression node) {
return node.getExpression().accept(this);

Powered by Google App Engine
This is Rietveld 408576698