1
0
Fork 0
mirror of https://github.com/jashkenas/coffeescript.git synced 2022-11-09 12:23:24 -05:00

[x] = [y] = [1] works again

This commit is contained in:
satyr 2010-10-02 21:49:21 +09:00
parent 765f57b658
commit 769870b493
3 changed files with 5 additions and 2 deletions

View file

@ -991,7 +991,7 @@
return value.compile(o);
}
isObject = this.variable.isObject();
if (olength === 1 && !((obj = objects[0]) instanceof SplatNode)) {
if (o.top && olength === 1 && !((obj = objects[0]) instanceof SplatNode)) {
if (obj instanceof AssignNode) {
_ref2 = obj, idx = _ref2.variable.base, obj = _ref2.value;
} else {

View file

@ -877,7 +877,7 @@ exports.AssignNode = class AssignNode extends BaseNode
{objects} = @variable.base
return value.compile o unless olength = objects.length
isObject = @variable.isObject()
if olength is 1 and (obj = objects[0]) not instanceof SplatNode
if o.top and olength is 1 and (obj = objects[0]) not instanceof SplatNode
# Unroll simplest cases: `{v} = x` -> `v = x.v`
if obj instanceof AssignNode
{variable: {base: idx}, value: obj} = obj

View file

@ -139,3 +139,6 @@ if func func
{a} = obj
ok a is 101
[x] = {0: y} = {'0': z} = [Math.random()]
ok x is y is z, 'destructuring in multiple'