From 03372c9b29e7441a75e815df7fa7d2257b94042d Mon Sep 17 00:00:00 2001 From: Gerald Lewis Date: Fri, 9 Sep 2011 18:58:59 -0400 Subject: [PATCH] #1643: Tag subpatterns in Assign#compilePatternMatch to prevent appending reference to RHS --- src/nodes.coffee | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/nodes.coffee b/src/nodes.coffee index 8586a5e2..5de4e9a6 100644 --- a/src/nodes.coffee +++ b/src/nodes.coffee @@ -918,6 +918,7 @@ exports.Class = class Class extends Base exports.Assign = class Assign extends Base constructor: (@variable, @value, @context, options) -> @param = options and options.param + @subpattern = options and options.subpattern children: ['variable', 'value'] @@ -1032,8 +1033,8 @@ exports.Assign = class Assign extends Base val = new Value new Literal(vvar), [new (if acc then Access else Index) idx] if name? and name in ['arguments','eval'].concat RESERVED throw new SyntaxError "assignment to a reserved word: #{obj.compile o} = #{val.compile o}" - assigns.push new Assign(obj, val, null, param: @param).compile o, LEVEL_LIST - assigns.push vvar unless top + assigns.push new Assign(obj, val, null, param: @param, subpattern: yes).compile o, LEVEL_LIST + assigns.push vvar unless top or @subpattern code = assigns.join ', ' if o.level < LEVEL_LIST then code else "(#{code})"