File tree Expand file tree Collapse file tree
javascript/ql/src/semmle/javascript/dataflow Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -318,7 +318,7 @@ module DataFlow {
318318 /**
319319 * A node in the data flow graph which corresponds to a `@property`.
320320 */
321- private class PropNode extends Node , TPropNode {
321+ class PropNode extends Node , TPropNode {
322322 @property prop ;
323323
324324 PropNode ( ) { this = TPropNode ( prop ) }
@@ -1347,11 +1347,6 @@ module DataFlow {
13471347 succ = lvalueNode ( pattern .getValuePattern ( ) )
13481348 )
13491349 or
1350- exists ( PropertyPattern pattern |
1351- pred = TPropNode ( pattern ) and
1352- succ = lvalueNode ( pattern .getValuePattern ( ) .( ObjectPattern ) .getRest ( ) )
1353- )
1354- or
13551350 exists ( Expr element |
13561351 pred = TElementPatternNode ( _, element ) and
13571352 succ = lvalueNode ( element )
Original file line number Diff line number Diff line change @@ -267,6 +267,12 @@ module TaintTracking {
267267 pred = DataFlow:: valueNode ( fos .getIterationDomain ( ) ) and
268268 succ = DataFlow:: lvalueNode ( fos .getLValue ( ) )
269269 )
270+ or
271+ // rest-pattern inside a propety pattern. E.g. from `foo:..` to `args` in `const {foo: {...args}} = something()`.
272+ exists ( PropertyPattern pattern |
273+ pred .( DataFlow:: PropNode ) .getAstNode ( ) = pattern and
274+ succ = DataFlow:: lvalueNode ( pattern .getValuePattern ( ) .( ObjectPattern ) .getRest ( ) )
275+ )
270276 }
271277
272278 /**
You can’t perform that action at this time.
0 commit comments