File tree Expand file tree Collapse file tree
src/semmle/javascript/dataflow
test/library-tests/PropWrite Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -558,7 +558,18 @@ module DataFlow {
558558
559559 override string getPropertyName ( ) { result = prop .getName ( ) }
560560
561- override Node getRhs ( ) { result = parameterNode ( prop .getParameter ( ) ) }
561+ override Node getRhs ( ) {
562+ exists ( Parameter param , Node paramNode |
563+ param = prop .getParameter ( ) and
564+ parameterNode ( paramNode , param )
565+ |
566+ result = paramNode
567+ or
568+ // special case: there is no SSA flow step for unused parameters
569+ paramNode instanceof UnusedParameterNode and
570+ result = param .getDefault ( ) .flow ( )
571+ )
572+ }
562573
563574 override ControlFlowNode getWriteNode ( ) { result = prop .getParameter ( ) }
564575 }
Original file line number Diff line number Diff line change 66| classes.ts:12:17:12:37 | public ... erField | classes.ts:12:24:12:37 | parameterField |
77| classes.ts:16:5:16:46 | constru ... {}) {} | classes.ts:16:5:16:46 | constru ... {}) {} |
88| classes.ts:16:17:16:37 | public ... erField | classes.ts:16:24:16:37 | parameterField |
9+ | classes.ts:16:17:16:37 | public ... erField | classes.ts:16:41:16:42 | {} |
910| tst.js:3:5:3:8 | x: 4 | tst.js:3:8:3:8 | 4 |
1011| tst.js:4:5:6:5 | func: f ... ;\\n } | tst.js:4:11:6:5 | functio ... ;\\n } |
1112| tst.js:7:5:9:5 | f() {\\n ... ;\\n } | tst.js:7:6:9:5 | () {\\n ... ;\\n } |
Original file line number Diff line number Diff line change 33| classes.ts:12:5:12:4 | this | parameterField | classes.ts:12:24:12:37 | parameterField |
44| classes.ts:12:5:12:4 | this | parameterField | classes.ts:12:41:12:42 | {} |
55| classes.ts:16:5:16:4 | this | parameterField | classes.ts:16:24:16:37 | parameterField |
6+ | classes.ts:16:5:16:4 | this | parameterField | classes.ts:16:41:16:42 | {} |
67| tst.js:2:11:10:1 | {\\n x ... }\\n} | f | tst.js:7:6:9:5 | () {\\n ... ;\\n } |
78| tst.js:2:11:10:1 | {\\n x ... }\\n} | func | tst.js:4:11:6:5 | functio ... ;\\n } |
89| tst.js:12:1:19:1 | class C ... ;\\n }\\n} | func | tst.js:13:14:15:3 | (x) {\\n ... x);\\n } |
Original file line number Diff line number Diff line change 22| classes.ts:8:3:8:2 | this | parameterField | classes.ts:8:22:8:35 | parameterField |
33| classes.ts:12:5:12:4 | this | parameterField | classes.ts:12:24:12:37 | parameterField |
44| classes.ts:16:5:16:4 | this | parameterField | classes.ts:16:24:16:37 | parameterField |
5+ | classes.ts:16:5:16:4 | this | parameterField | classes.ts:16:41:16:42 | {} |
56| tst.js:2:11:10:1 | {\\n x ... }\\n} | f | tst.js:7:6:9:5 | () {\\n ... ;\\n } |
67| tst.js:2:11:10:1 | {\\n x ... }\\n} | func | tst.js:4:11:6:5 | functio ... ;\\n } |
78| tst.js:2:11:10:1 | {\\n x ... }\\n} | x | tst.js:3:8:3:8 | 4 |
You can’t perform that action at this time.
0 commit comments