OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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 class TemplateManager { | 7 class TemplateManager { |
8 Map<String, Template> expressionTemplates = new Map<String, Template>(); | 8 Map<String, Template> expressionTemplates = new Map<String, Template>(); |
9 Map<String, Template> statementTemplates = new Map<String, Template>(); | 9 Map<String, Template> statementTemplates = new Map<String, Template>(); |
10 | 10 |
(...skipping 667 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
678 .map(visit) | 678 .map(visit) |
679 .toList(growable: false); | 679 .toList(growable: false); |
680 return (arguments) { | 680 return (arguments) { |
681 List<Literal> parts = partMakers | 681 List<Literal> parts = partMakers |
682 .map((Instantiator instantiator) => instantiator(arguments)) | 682 .map((Instantiator instantiator) => instantiator(arguments)) |
683 .toList(growable: false); | 683 .toList(growable: false); |
684 return new StringConcatenation(parts); | 684 return new StringConcatenation(parts); |
685 }; | 685 }; |
686 } | 686 } |
687 | 687 |
| 688 Instantiator visitName(Name node) => same(node); |
| 689 |
688 Instantiator visitArrayInitializer(ArrayInitializer node) { | 690 Instantiator visitArrayInitializer(ArrayInitializer node) { |
689 // TODO(sra): Implement splicing? | 691 // TODO(sra): Implement splicing? |
690 List<Instantiator> elementMakers = node.elements | 692 List<Instantiator> elementMakers = node.elements |
691 .map(visit) | 693 .map(visit) |
692 .toList(growable: false); | 694 .toList(growable: false); |
693 return (arguments) { | 695 return (arguments) { |
694 List<Expression> elements = elementMakers | 696 List<Expression> elements = elementMakers |
695 .map((Instantiator instantiator) => instantiator(arguments)) | 697 .map((Instantiator instantiator) => instantiator(arguments)) |
696 .toList(growable: false); | 698 .toList(growable: false); |
697 return new ArrayInitializer(elements); | 699 return new ArrayInitializer(elements); |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
765 if (count != before) containsInterpolatedNode.add(node); | 767 if (count != before) containsInterpolatedNode.add(node); |
766 return null; | 768 return null; |
767 } | 769 } |
768 | 770 |
769 visitInterpolatedNode(InterpolatedNode node) { | 771 visitInterpolatedNode(InterpolatedNode node) { |
770 containsInterpolatedNode.add(node); | 772 containsInterpolatedNode.add(node); |
771 if (node.isNamed) holeNames.add(node.nameOrPosition); | 773 if (node.isNamed) holeNames.add(node.nameOrPosition); |
772 ++count; | 774 ++count; |
773 } | 775 } |
774 } | 776 } |
OLD | NEW |