| 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 721 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 732 Instantiator makeValue = visit(node.value); | 732 Instantiator makeValue = visit(node.value); |
| 733 return (arguments) { | 733 return (arguments) { |
| 734 return new Property(makeName(arguments), makeValue(arguments)); | 734 return new Property(makeName(arguments), makeValue(arguments)); |
| 735 }; | 735 }; |
| 736 } | 736 } |
| 737 | 737 |
| 738 Instantiator visitRegExpLiteral(RegExpLiteral node) => | 738 Instantiator visitRegExpLiteral(RegExpLiteral node) => |
| 739 (arguments) => new RegExpLiteral(node.pattern); | 739 (arguments) => new RegExpLiteral(node.pattern); |
| 740 | 740 |
| 741 Instantiator visitTemplateString(TemplateString node) { | 741 Instantiator visitTemplateString(TemplateString node) { |
| 742 Iterable makeElements = | 742 Iterable<Instantiator> makeElements = node.interpolations.map(visit); |
| 743 node.elements.map((e) => e is String ? e : visit(e)); | 743 return (arguments) => new TemplateString(node.strings, |
| 744 return (arguments) { | 744 makeElements.map((m) => m(arguments)).toList(growable: false)); |
| 745 return new TemplateString(makeElements | |
| 746 .map((m) => m is String ? m : m(arguments)) | |
| 747 .toList(growable: false)); | |
| 748 }; | |
| 749 } | 745 } |
| 750 | 746 |
| 751 Instantiator visitTaggedTemplate(TaggedTemplate node) { | 747 Instantiator visitTaggedTemplate(TaggedTemplate node) { |
| 752 Instantiator makeTag = visit(node.tag); | 748 Instantiator makeTag = visit(node.tag); |
| 753 Instantiator makeTemplate = visit(node.template); | 749 Instantiator makeTemplate = visit(node.template); |
| 754 return (arguments) { | 750 return (arguments) { |
| 755 return new TaggedTemplate(makeTag(arguments), makeTemplate(arguments)); | 751 return new TaggedTemplate(makeTag(arguments), makeTemplate(arguments)); |
| 756 }; | 752 }; |
| 757 } | 753 } |
| 758 | 754 |
| (...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 913 if (count != before) containsInterpolatedNode.add(node); | 909 if (count != before) containsInterpolatedNode.add(node); |
| 914 return null; | 910 return null; |
| 915 } | 911 } |
| 916 | 912 |
| 917 visitInterpolatedNode(InterpolatedNode node) { | 913 visitInterpolatedNode(InterpolatedNode node) { |
| 918 containsInterpolatedNode.add(node); | 914 containsInterpolatedNode.add(node); |
| 919 if (node.isNamed) holeNames.add(node.nameOrPosition); | 915 if (node.isNamed) holeNames.add(node.nameOrPosition); |
| 920 ++count; | 916 ++count; |
| 921 } | 917 } |
| 922 } | 918 } |
| OLD | NEW |