Skip to content

Commit 35eb58f

Browse files
zdenkoGeoffreyBooth
authored andcommitted
fix #4577; renamed destructured parameters with same default value (#4596)
1 parent ab52fd7 commit 35eb58f

File tree

3 files changed

+12
-2
lines changed

3 files changed

+12
-2
lines changed

lib/coffeescript/nodes.js

Lines changed: 3 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/nodes.coffee

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2494,8 +2494,10 @@ exports.Param = class Param extends Base
24942494
if obj instanceof Assign
24952495
# ... possibly with a default value
24962496
if obj.value instanceof Assign
2497+
obj = obj.value.variable
2498+
else
24972499
obj = obj.value
2498-
@eachName iterator, obj.value.unwrap()
2500+
@eachName iterator, obj.unwrap()
24992501
# * splats within destructured parameters `[xs...]`
25002502
else if obj instanceof Splat
25012503
node = obj.name.unwrap()

test/functions.coffee

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,12 @@ test "rest element destructuring in function definition", ->
245245
deepEqual [1, {b:2}], f()
246246
deepEqual [2, {}], f {a:2}
247247
deepEqual [3, {c:5}], f {a:3, c:5}
248+
249+
f = ({ a: aa = 0, b: bb = 0 }) -> [aa, bb]
250+
deepEqual [0, 0], f {}
251+
deepEqual [0, 42], f {b:42}
252+
deepEqual [42, 0], f {a:42}
253+
deepEqual [42, 43], f {a:42, b:43}
248254

249255
test "#4005: `([a = {}]..., b) ->` weirdness", ->
250256
fn = ([a = {}]..., b) -> [a, b]

0 commit comments

Comments
 (0)