use a temp var for range expansion, instead of 'i'

This commit is contained in:
Jeremy Ashkenas
2010-02-16 08:58:29 -05:00
parent a3c8c0b492
commit 79fa4723ab
2 changed files with 7 additions and 5 deletions

View File

@@ -526,11 +526,12 @@
// part of a comprehension, slice, or splice.
// TODO: This generates pretty ugly code ... shrink it.
compile_array: function compile_array(o) {
var arr, body;
body = Expressions.wrap([new LiteralNode('i')]);
var arr, body, name;
name = o.scope.free_variable();
body = Expressions.wrap([new LiteralNode(name)]);
arr = Expressions.wrap([new ForNode(body, {
source: (new ValueNode(this))
}, new LiteralNode('i'))
}, new LiteralNode(name))
]);
return (new ParentheticalNode(new CallNode(new CodeNode([], arr)))).compile(o);
}