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 625 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
636 Instantiator visitThis(This node) => (arguments) => new This(); | 636 Instantiator visitThis(This node) => (arguments) => new This(); |
637 Instantiator visitSuper(Super node) => (arguments) => new Super(); | 637 Instantiator visitSuper(Super node) => (arguments) => new Super(); |
638 | 638 |
639 Instantiator visitIdentifier(Identifier node) => | 639 Instantiator visitIdentifier(Identifier node) => |
640 (arguments) => new Identifier(node.name); | 640 (arguments) => new Identifier(node.name); |
641 | 641 |
642 Instantiator visitSpread(Spread node) => | 642 Instantiator visitSpread(Spread node) => |
643 (args) => new Spread(visit(node.argument)(args)); | 643 (args) => new Spread(visit(node.argument)(args)); |
644 | 644 |
645 Instantiator visitYield(Yield node) => | 645 Instantiator visitYield(Yield node) => |
646 (args) => new Yield(visit(node.value)(args), star: node.star); | 646 (args) => new Yield( |
| 647 node.value != null ? visit(node.value)(args) : null, star: node.star); |
647 | 648 |
648 Instantiator visitRestParameter(RestParameter node) => | 649 Instantiator visitRestParameter(RestParameter node) => |
649 (args) => new RestParameter(visit(node.parameter)(args)); | 650 (args) => new RestParameter(visit(node.parameter)(args)); |
650 | 651 |
651 Instantiator visitAccess(PropertyAccess node) { | 652 Instantiator visitAccess(PropertyAccess node) { |
652 Instantiator makeReceiver = visit(node.receiver); | 653 Instantiator makeReceiver = visit(node.receiver); |
653 Instantiator makeSelector = visit(node.selector); | 654 Instantiator makeSelector = visit(node.selector); |
654 return (arguments) => | 655 return (arguments) => |
655 new PropertyAccess(makeReceiver(arguments), makeSelector(arguments)); | 656 new PropertyAccess(makeReceiver(arguments), makeSelector(arguments)); |
656 } | 657 } |
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
849 if (count != before) containsInterpolatedNode.add(node); | 850 if (count != before) containsInterpolatedNode.add(node); |
850 return null; | 851 return null; |
851 } | 852 } |
852 | 853 |
853 visitInterpolatedNode(InterpolatedNode node) { | 854 visitInterpolatedNode(InterpolatedNode node) { |
854 containsInterpolatedNode.add(node); | 855 containsInterpolatedNode.add(node); |
855 if (node.isNamed) holeNames.add(node.nameOrPosition); | 856 if (node.isNamed) holeNames.add(node.nameOrPosition); |
856 ++count; | 857 ++count; |
857 } | 858 } |
858 } | 859 } |
OLD | NEW |