Chromium Code Reviews| Index: lib/src/js/template.dart |
| diff --git a/lib/src/js/template.dart b/lib/src/js/template.dart |
| index 85a62516ca2874c903ff8b2b16a4d3915af73480..a6af41613cea7872f68e221d475bdf7c8236eddd 100644 |
| --- a/lib/src/js/template.dart |
| +++ b/lib/src/js/template.dart |
| @@ -230,8 +230,8 @@ class InstantiatorGeneratorVisitor implements NodeVisitor<Instantiator> { |
| return (arguments) { |
| var value = arguments[nameOrPosition]; |
| - Identifier toIdentifier(item) { |
| - if (item is Identifier) return item; |
| + Parameter toIdentifier(item) { |
| + if (item is Parameter) return item; |
| if (item is String) return new Identifier(item); |
| return error('Interpolated value #$nameOrPosition is not an Identifier' |
| ' or List of Identifiers: $value'); |
| @@ -826,6 +826,36 @@ class InstantiatorGeneratorVisitor implements NodeVisitor<Instantiator> { |
| Instantiator visitExportClause(ExportClause node) => |
| throw new UnimplementedError(); |
| + |
| + @override |
| + Instantiator visitDestructuredVariable(DestructuredVariable node) { |
| + Instantiator makeName = visit(node.name); |
| + Instantiator makeStructure = visit(node.structure); |
| + Instantiator makeDefaultValue = visit(node.defaultValue); |
| + return (arguments) { |
| + return new DestructuredVariable( |
| + name: makeName(arguments), |
| + structure: makeStructure(arguments), |
| + defaultValue: makeDefaultValue(arguments)); |
| + }; |
| + } |
| + |
| + @override |
| + Instantiator visitArrayBindingPattern(ArrayBindingPattern node) { |
| + List<Instantiator> makeVars = node.variables.map(this.visit).toList(); |
| + return (arguments) { |
| + return new ArrayBindingPattern(makeVars.map((m) => m(arguments)).toList()); |
|
Jennifer Messerly
2015/12/02 20:41:09
long line
ochafik
2015/12/02 21:56:08
Done.
|
| + }; |
| + } |
| + |
| + @override |
| + Instantiator visitObjectBindingPattern(ObjectBindingPattern node) { |
| + List<Instantiator> makeVars = node.variables.map(this.visit).toList(); |
| + return (arguments) { |
| + return new ObjectBindingPattern( |
| + makeVars.map((m) => m(arguments)).toList()); |
| + }; |
| + } |
| } |
| /** |