Chromium Code Reviews| 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..6103bd7f71c141cf85ff4452090b4cc27945df42 100644 |
| --- a/pkg/compiler/lib/src/js/template.dart |
| +++ b/pkg/compiler/lib/src/js/template.dart |
| @@ -612,26 +612,19 @@ 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)) |
| + .map((Expression element) => visit(element)) |
| .toList(); |
|
floitsch
2014/11/28 12:42:50
could be "growable: false".
sigurdm
2014/11/28 14:52:11
Done.
|
| 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( |
|
floitsch
2014/11/28 12:42:50
I prefer:
List<Expression> elements = elementMa
sigurdm
2014/11/28 14:52:12
Done.
|
| + (Instantiator instantiator) => instantiator(arguments)).toList(); |
| + 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) { |