| Index: pkg/compiler/lib/src/js/template.dart
|
| diff --git a/pkg/compiler/lib/src/js/template.dart b/pkg/compiler/lib/src/js/template.dart
|
| index 03b956e108c219add667d3418bcdfb14324a05d3..6237adceaad24682cbe4c9b305c42d206c575961 100644
|
| --- a/pkg/compiler/lib/src/js/template.dart
|
| +++ b/pkg/compiler/lib/src/js/template.dart
|
| @@ -612,26 +612,20 @@ class InstantiatorGeneratorVisitor implements NodeVisitor<Instantiator> {
|
| (arguments) => new LiteralNull();
|
|
|
| Instantiator visitArrayInitializer(ArrayInitializer node) {
|
| - // Assume array has no missing elements.
|
| // TODO(sra): Implement splicing?
|
| List<Instantiator> elementMakers = node.elements
|
| - .map((ArrayElement element) => visit(element.value))
|
| - .toList();
|
| + .map(visit)
|
| + .toList(growable: false);
|
| return (arguments) {
|
| - List<ArrayElement> elements = <ArrayElement>[];
|
| - void add(Expression value) {
|
| - elements.add(new ArrayElement(elements.length, value));
|
| - }
|
| - for (Instantiator instantiator in elementMakers) {
|
| - var result = instantiator(arguments);
|
| - add(result);
|
| - }
|
| - return new ArrayInitializer(elements.length, elements);
|
| + List<Expression> elements = elementMakers
|
| + .map((Instantiator instantiator) => instantiator(arguments))
|
| + .toList(growable: false);
|
| + return new ArrayInitializer(elements);
|
| };
|
| }
|
|
|
| - Instantiator visitArrayElement(ArrayElement node) {
|
| - throw 'Should not get here'; // Handled in visitArrayInitializer.
|
| + Instantiator visitArrayHole(ArrayHole node) {
|
| + return (arguments) => new ArrayHole();
|
| }
|
|
|
| Instantiator visitObjectInitializer(ObjectInitializer node) {
|
|
|