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

Side by Side Diff: lib/src/js/printer.dart

Issue 1169473003: fixes #43, remove => workaround (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Created 5 years, 6 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 unified diff | Download patch
« no previous file with comments | « lib/src/js/nodes.dart ('k') | test/codegen/expect/BenchmarkBase.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 part of js_ast; 5 part of js_ast;
6 6
7 7
8 class JavaScriptPrintingOptions { 8 class JavaScriptPrintingOptions {
9 final bool shouldCompressOutput; 9 final bool shouldCompressOutput;
10 final bool minifyLocalVariables; 10 final bool minifyLocalVariables;
(...skipping 826 matching lines...) Expand 10 before | Expand all | Expand 10 after
837 837
838 visitNamedFunction(NamedFunction namedFunction) { 838 visitNamedFunction(NamedFunction namedFunction) {
839 functionOut(namedFunction.function, namedFunction.name); 839 functionOut(namedFunction.function, namedFunction.name);
840 } 840 }
841 841
842 visitFun(Fun fun) { 842 visitFun(Fun fun) {
843 functionOut(fun, null); 843 functionOut(fun, null);
844 } 844 }
845 845
846 visitArrowFun(ArrowFun fun) { 846 visitArrowFun(ArrowFun fun) {
847 if (fun.bindThisWorkaround) {
848 out("(");
849 }
850 localNamer.enterScope(fun); 847 localNamer.enterScope(fun);
851 if (fun.params.length == 1) { 848 if (fun.params.length == 1) {
852 visitNestedExpression(fun.params.single, PRIMARY, 849 visitNestedExpression(fun.params.single, PRIMARY,
853 newInForInit: false, newAtStatementBegin: false); 850 newInForInit: false, newAtStatementBegin: false);
854 } else { 851 } else {
855 out("("); 852 out("(");
856 visitCommaSeparated(fun.params, PRIMARY, 853 visitCommaSeparated(fun.params, PRIMARY,
857 newInForInit: false, newAtStatementBegin: false); 854 newInForInit: false, newAtStatementBegin: false);
858 out(")"); 855 out(")");
859 } 856 }
860 spaceOut(); 857 spaceOut();
861 out("=>"); 858 out("=>");
862 if (fun.body is Expression) { 859 if (fun.body is Expression) {
863 spaceOut(); 860 spaceOut();
864 // Object initializers require parenthesis to disambiguate 861 // Object initializers require parenthesis to disambiguate
865 // AssignmentExpression from FunctionBody. See: 862 // AssignmentExpression from FunctionBody. See:
866 // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-arrow-functio n-definitions 863 // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-arrow-functio n-definitions
867 var needsParen = fun.body is ObjectInitializer; 864 var needsParen = fun.body is ObjectInitializer;
868 if (needsParen) out("("); 865 if (needsParen) out("(");
869 visitNestedExpression(fun.body, ASSIGNMENT, 866 visitNestedExpression(fun.body, ASSIGNMENT,
870 newInForInit: false, newAtStatementBegin: false); 867 newInForInit: false, newAtStatementBegin: false);
871 if (needsParen) out(")"); 868 if (needsParen) out(")");
872 } else { 869 } else {
873 blockBody(fun.body, needsSeparation: false, needsNewline: false); 870 blockBody(fun.body, needsSeparation: false, needsNewline: false);
874 } 871 }
875 localNamer.leaveScope(); 872 localNamer.leaveScope();
876 if (fun.bindThisWorkaround) {
877 out(").bind(this)");
878 }
879 } 873 }
880 874
881 visitLiteralBool(LiteralBool node) { 875 visitLiteralBool(LiteralBool node) {
882 out(node.value ? "true" : "false"); 876 out(node.value ? "true" : "false");
883 } 877 }
884 878
885 visitLiteralString(LiteralString node) { 879 visitLiteralString(LiteralString node) {
886 out(node.value); 880 out(node.value);
887 } 881 }
888 882
(...skipping 548 matching lines...) Expand 10 before | Expand all | Expand 10 after
1437 declare(node.name); 1431 declare(node.name);
1438 node.function.accept(this); 1432 node.function.accept(this);
1439 } 1433 }
1440 1434
1441 visitClassExpression(ClassExpression node) { 1435 visitClassExpression(ClassExpression node) {
1442 declare(node.name); 1436 declare(node.name);
1443 if (node.heritage != null) node.heritage.accept(this); 1437 if (node.heritage != null) node.heritage.accept(this);
1444 for (Method element in node.methods) element.accept(this); 1438 for (Method element in node.methods) element.accept(this);
1445 } 1439 }
1446 } 1440 }
OLDNEW
« no previous file with comments | « lib/src/js/nodes.dart ('k') | test/codegen/expect/BenchmarkBase.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698