Skip to content

Commit 719456e

Browse files
committed
JS: Fix missing flow into rest pattern lvalue
1 parent 7703b1f commit 719456e

File tree

3 files changed

+11
-3
lines changed

3 files changed

+11
-3
lines changed

javascript/ql/lib/semmle/javascript/dataflow/DataFlow.qll

+5
Original file line numberDiff line numberDiff line change
@@ -1610,6 +1610,11 @@ module DataFlow {
16101610
pred = TElementPatternNode(_, element) and
16111611
succ = lvalueNodeInternal(element)
16121612
)
1613+
or
1614+
exists(Expr rest |
1615+
pred = TRestPatternNode(_, rest) and
1616+
succ = lvalueNodeInternal(rest)
1617+
)
16131618
}
16141619

16151620
/**
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
function t1() {
22
const { ...rest } = source('t1.1');
3-
rest; // $ MISSING: getALocalSource=rest
3+
rest; // $ getALocalSource=rest
44
}
55

66
function t2() {
77
const [ ...rest ] = source('t2.1');
8-
rest; // $ MISSING: getALocalSource=rest
8+
rest; // $ getALocalSource=rest
99
}
1010

1111
function t3() {
1212
const { p1, ...rest } = source('t3.1');
1313
p1; // $ getALocalSource=p1
14-
rest; // $ MISSING: getALocalSource=rest
14+
rest; // $ getALocalSource=rest
1515
}
Original file line numberDiff line numberDiff line change
@@ -1 +1,4 @@
1+
| rest-pattern.js:3:5:3:8 | rest | rest |
2+
| rest-pattern.js:8:5:8:8 | rest | rest |
13
| rest-pattern.js:13:5:13:6 | p1 | p1 |
4+
| rest-pattern.js:14:5:14:8 | rest | rest |

0 commit comments

Comments
 (0)