From 9cdc6809cede95e0447363abb60e06853dae248d Mon Sep 17 00:00:00 2001 From: Ingvar Stepanyan Date: Mon, 27 Oct 2014 00:57:19 +0200 Subject: [PATCH] Loose: fix pattern+defaults case in function params. --- acorn_loose.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/acorn_loose.js b/acorn_loose.js index 0546d19882..c7243986f7 100644 --- a/acorn_loose.js +++ b/acorn_loose.js @@ -852,18 +852,20 @@ pushCx(); var params = parseExprList(tt.parenR); for (var i = 0; i < params.length; i++) { - var param = toAssignable(params[i]), defValue = null; + var param = params[i], defValue = null; + if (param.type === "AssignmentExpression") { + defValue = param.right; + param = param.left; + } + param = toAssignable(param); if (param.type === "SpreadElement") { param = param.argument; if (i === params.length - 1) { node.rest = param; continue; } - } else if (param.type === "AssignmentExpression") { - defValue = param.right; - param = param.left; } - node.params.push(checkLVal(param)); + node.params.push(param); defaults.push(defValue); if (defValue) hasDefaults = true; }