Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit f333419

Browse files
author
Esben Sparre Andreasen
committed
JS: add defuse+dataflow tests for destructuring and default values
1 parent 4b81ffa commit f333419

7 files changed

Lines changed: 61 additions & 0 deletions

File tree

javascript/ql/test/library-tests/DataFlow/flowStep.expected

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,21 @@
121121
| tst.js:103:4:103:16 | [ 19, 23, 0 ] | tst.js:98:11:98:24 | [ x, ...rest ] |
122122
| tst.js:105:1:105:1 | x | tst.js:105:1:105:6 | x ?? y |
123123
| tst.js:105:6:105:6 | y | tst.js:105:1:105:6 | x ?? y |
124+
| tst.js:107:2:113:1 | functio ... v2c;\\n} | tst.js:107:1:113:2 | (functi ... v2c;\\n}) |
125+
| tst.js:108:6:108:38 | v1a | tst.js:109:2:109:4 | v1a |
126+
| tst.js:108:6:108:38 | v1b | tst.js:109:8:109:10 | v1b |
127+
| tst.js:108:6:108:38 | v1c | tst.js:109:14:109:16 | v1c |
128+
| tst.js:108:7:108:9 | v1a | tst.js:108:6:108:38 | v1a |
129+
| tst.js:108:12:108:20 | v1b = o1b | tst.js:108:6:108:38 | v1b |
130+
| tst.js:108:23:108:31 | v1c = o1c | tst.js:108:6:108:38 | v1c |
131+
| tst.js:108:36:108:38 | o1d | tst.js:108:6:108:32 | {v1a, v ... = o1c} |
132+
| tst.js:111:6:111:38 | v2a | tst.js:112:2:112:4 | v2a |
133+
| tst.js:111:6:111:38 | v2b | tst.js:112:8:112:10 | v2b |
134+
| tst.js:111:6:111:38 | v2c | tst.js:112:14:112:16 | v2c |
135+
| tst.js:111:7:111:9 | v2a | tst.js:111:6:111:38 | v2a |
136+
| tst.js:111:12:111:14 | v2b | tst.js:111:6:111:38 | v2b |
137+
| tst.js:111:23:111:25 | v2c | tst.js:111:6:111:38 | v2c |
138+
| tst.js:111:36:111:38 | o2d | tst.js:111:6:111:32 | [v2a, v ... = o2c] |
124139
| tst.ts:1:1:1:1 | A | tst.ts:1:11:1:11 | A |
125140
| tst.ts:1:1:1:1 | A | tst.ts:7:1:7:0 | A |
126141
| tst.ts:1:1:5:1 | A | tst.ts:7:1:7:0 | A |

javascript/ql/test/library-tests/DataFlow/incomplete.expected

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,18 @@
4444
| tst.js:98:11:98:24 | x | heap |
4545
| tst.js:99:7:99:18 | y | heap |
4646
| tst.js:101:3:101:16 | z | heap |
47+
| tst.js:108:6:108:38 | v1a | heap |
48+
| tst.js:108:6:108:38 | v1b | heap |
49+
| tst.js:108:6:108:38 | v1c | heap |
50+
| tst.js:108:18:108:20 | o1b | global |
51+
| tst.js:108:29:108:31 | o1c | global |
52+
| tst.js:108:36:108:38 | o1d | global |
53+
| tst.js:111:6:111:38 | v2a | heap |
54+
| tst.js:111:6:111:38 | v2b | heap |
55+
| tst.js:111:6:111:38 | v2c | heap |
56+
| tst.js:111:18:111:20 | o2b | global |
57+
| tst.js:111:29:111:31 | o2c | global |
58+
| tst.js:111:36:111:38 | o2d | global |
4759
| tst.ts:2:14:2:19 | x | namespace |
4860
| tst.ts:3:3:3:8 | setX() | call |
4961
| tst.ts:8:3:8:5 | A.x | heap |

javascript/ql/test/library-tests/DataFlow/sources.expected

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,20 @@
6969
| tst.js:99:9:99:9 | y |
7070
| tst.js:101:7:101:7 | z |
7171
| tst.js:103:4:103:16 | [ 19, 23, 0 ] |
72+
| tst.js:107:2:107:1 | this |
73+
| tst.js:107:2:113:1 | functio ... v2c;\\n} |
74+
| tst.js:108:7:108:9 | v1a |
75+
| tst.js:108:12:108:20 | v1b = o1b |
76+
| tst.js:108:18:108:20 | o1b |
77+
| tst.js:108:23:108:31 | v1c = o1c |
78+
| tst.js:108:29:108:31 | o1c |
79+
| tst.js:108:36:108:38 | o1d |
80+
| tst.js:111:7:111:9 | v2a |
81+
| tst.js:111:12:111:14 | v2b |
82+
| tst.js:111:18:111:20 | o2b |
83+
| tst.js:111:23:111:25 | v2c |
84+
| tst.js:111:29:111:31 | o2c |
85+
| tst.js:111:36:111:38 | o2d |
7286
| tst.ts:1:1:1:0 | this |
7387
| tst.ts:3:3:3:8 | setX() |
7488
| tst.ts:7:1:7:0 | this |

javascript/ql/test/library-tests/DataFlow/tst.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,4 +103,12 @@ var vs2 = ( for (v of o) v ); // generator comprehensions are not analysed
103103
})([ 19, 23, 0 ]);
104104

105105
x ?? y; // flow through short-circuiting operator
106+
107+
(function(){
108+
var {v1a, v1b = o1b, v1c = o1c} = o1d;
109+
v1a + v1b + v1c;
110+
111+
var [v2a, v2b = o2b, v2c = o2c] = o2d;
112+
v2a + v2b + v2c;
113+
});
106114
// semmle-extractor-options: --experimental

javascript/ql/test/library-tests/DefUse/DefUsePair.expected

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,6 @@
3030
| tst.js:7:4:7:6 | --i | tst.js:7:6:7:6 | i |
3131
| tst.js:12:2:12:7 | x = 42 | tst.js:14:9:14:9 | x |
3232
| tst.js:19:11:19:11 | x | tst.js:18:9:18:9 | x |
33+
| tst.js:23:6:23:23 | {a = b, c = d} = e | tst.js:24:2:24:2 | a |
34+
| tst.js:23:6:23:23 | {a = b, c = d} = e | tst.js:24:6:24:6 | c |
35+
| tst.js:26:11:26:11 | a | tst.js:27:2:27:2 | a |

javascript/ql/test/library-tests/DefUse/VarDefSource.expected

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,4 @@
2929
| tst.js:11:11:11:11 | g | tst.js:11:2:15:1 | functio ... rn x;\\n} |
3030
| tst.js:12:2:12:7 | x = 42 | tst.js:12:6:12:7 | 42 |
3131
| tst.js:19:11:19:11 | x | tst.js:19:2:19:16 | function x() {} |
32+
| tst.js:23:6:23:23 | {a = b, c = d} = e | tst.js:23:23:23:23 | e |

javascript/ql/test/library-tests/DefUse/tst.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,11 @@ function f(o) {
1818
return x;
1919
function x() {}
2020
});
21+
22+
(function(){
23+
var {a = b, c = d} = e;
24+
a + c;
25+
});
26+
(function(a = b) {
27+
a;
28+
});

0 commit comments

Comments
 (0)