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

Skip to content

Commit 6b86b53

Browse files
committed
aggregate the tests in library-tests/LocalObjects into a single .ql file
1 parent 3e3e9de commit 6b86b53

10 files changed

Lines changed: 84 additions & 82 deletions

javascript/ql/test/library-tests/LocalObjects/LocalObject.expected

Lines changed: 0 additions & 25 deletions
This file was deleted.

javascript/ql/test/library-tests/LocalObjects/LocalObject.ql

Lines changed: 0 additions & 4 deletions
This file was deleted.

javascript/ql/test/library-tests/LocalObjects/LocalObject_hasOwnProperty.expected

Lines changed: 0 additions & 22 deletions
This file was deleted.

javascript/ql/test/library-tests/LocalObjects/LocalObject_hasOwnProperty.ql

Lines changed: 0 additions & 6 deletions
This file was deleted.

javascript/ql/test/library-tests/LocalObjects/MethodCallTypeInference.expected

Lines changed: 0 additions & 12 deletions
This file was deleted.

javascript/ql/test/library-tests/LocalObjects/MethodCallTypeInference.ql

Lines changed: 0 additions & 4 deletions
This file was deleted.

javascript/ql/test/library-tests/LocalObjects/MethodCallTypeInferenceUsage.expected

Lines changed: 0 additions & 4 deletions
This file was deleted.

javascript/ql/test/library-tests/LocalObjects/MethodCallTypeInferenceUsage.ql

Lines changed: 0 additions & 5 deletions
This file was deleted.
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
localObject_hasOwnProperty
2+
| method-calls.js:2:11:7:2 | {\\n\\t\\tm1: ... }; }\\n\\t} | m1 |
3+
| method-calls.js:2:11:7:2 | {\\n\\t\\tm1: ... }; }\\n\\t} | m2 |
4+
| method-calls.js:2:11:7:2 | {\\n\\t\\tm1: ... }; }\\n\\t} | m3 |
5+
| method-calls.js:2:11:7:2 | {\\n\\t\\tm1: ... }; }\\n\\t} | m4 |
6+
| method-calls.js:25:11:25:17 | {m: f1} | m |
7+
| method-calls.js:29:11:29:17 | {m: f2} | m |
8+
| method-calls.js:34:12:34:18 | {m: f3} | m |
9+
| method-calls.js:38:15:38:21 | {m: f4} | m |
10+
| method-calls.js:46:16:46:28 | {m: () => 42} | m |
11+
| method-calls.js:50:17:50:29 | {m: () => 42} | m |
12+
| method-calls.js:54:16:54:28 | {m: () => 42} | m |
13+
| method-calls.js:57:16:57:28 | {m: () => 42} | m |
14+
| tst.js:4:18:4:36 | { f: function(){} } | f |
15+
| tst.js:38:18:38:26 | { p: 42 } | p |
16+
| tst.js:42:18:42:33 | { p: 42, q: 42 } | p |
17+
| tst.js:42:18:42:33 | { p: 42, q: 42 } | q |
18+
| tst.js:56:20:56:35 | { p: 42, p: 42 } | p |
19+
| tst.js:59:20:59:28 | { p: 42 } | p |
20+
| tst.js:63:20:63:28 | { p: 42 } | p |
21+
| tst.js:68:19:68:27 | { p: 42 } | p |
22+
| tst.js:76:18:76:26 | { p: 42 } | p |
23+
| tst.js:77:18:77:28 | { p: true } | p |
24+
localObject
25+
| method-calls.js:2:11:7:2 | {\\n\\t\\tm1: ... }; }\\n\\t} |
26+
| method-calls.js:11:23:11:24 | {} |
27+
| method-calls.js:16:11:16:12 | {} |
28+
| method-calls.js:25:11:25:17 | {m: f1} |
29+
| method-calls.js:29:11:29:17 | {m: f2} |
30+
| method-calls.js:34:12:34:18 | {m: f3} |
31+
| method-calls.js:38:15:38:21 | {m: f4} |
32+
| method-calls.js:46:16:46:28 | {m: () => 42} |
33+
| method-calls.js:50:17:50:29 | {m: () => 42} |
34+
| method-calls.js:54:16:54:28 | {m: () => 42} |
35+
| method-calls.js:57:16:57:28 | {m: () => 42} |
36+
| tst.js:3:18:3:19 | {} |
37+
| tst.js:4:18:4:36 | { f: function(){} } |
38+
| tst.js:5:18:5:34 | { [unknown]: 42 } |
39+
| tst.js:38:18:38:26 | { p: 42 } |
40+
| tst.js:42:18:42:33 | { p: 42, q: 42 } |
41+
| tst.js:52:23:52:24 | {} |
42+
| tst.js:56:20:56:35 | { p: 42, p: 42 } |
43+
| tst.js:59:20:59:28 | { p: 42 } |
44+
| tst.js:63:20:63:28 | { p: 42 } |
45+
| tst.js:68:19:68:27 | { p: 42 } |
46+
| tst.js:73:18:73:20 | { } |
47+
| tst.js:76:18:76:26 | { p: 42 } |
48+
| tst.js:77:18:77:28 | { p: true } |
49+
| tst.js:82:20:82:21 | {} |
50+
methodCallTypeInference
51+
| method-calls.js:8:2:8:8 | o1.m1() | object |
52+
| method-calls.js:9:2:9:8 | o1.m2() | object |
53+
| method-calls.js:12:2:12:7 | o.m3() | boolean, class, date, function, null, number, object, regular expression,string or undefined |
54+
| method-calls.js:21:2:21:7 | o2.m() | boolean, class, date, function, null, number, object, regular expression,string or undefined |
55+
| method-calls.js:25:11:25:21 | {m: f1}.m() | object |
56+
| method-calls.js:30:11:30:16 | o2.m() | object |
57+
| method-calls.js:34:11:34:23 | ({m: f3}).m() | object |
58+
| method-calls.js:41:11:41:16 | o4.m() | boolean, class, date, function, null, number, object, regular expression,string or undefined |
59+
| method-calls.js:47:12:47:16 | o.m() | boolean, class, date, function, null, number, object, regular expression,string or undefined |
60+
| method-calls.js:51:12:51:16 | o.m() | boolean, class, date, function, null, number, object, regular expression,string or undefined |
61+
| method-calls.js:55:12:55:16 | o.m() | boolean, class, date, function, null, number, object, regular expression,string or undefined |
62+
| method-calls.js:60:12:60:16 | o.m() | boolean, class, date, function, null, number, object, regular expression,string or undefined |
63+
methodCallTypeInferenceUsage
64+
| method-calls.js:25:11:25:21 | {m: f1}.m() | method-calls.js:26:2:26:3 | v1 | method-calls.js:24:23:24:24 | object literal |
65+
| method-calls.js:30:11:30:16 | o2.m() | method-calls.js:31:2:31:3 | v2 | method-calls.js:28:23:28:24 | object literal |
66+
| method-calls.js:34:11:34:23 | ({m: f3}).m() | method-calls.js:35:2:35:3 | v3 | method-calls.js:33:23:33:24 | object literal |
67+
| method-calls.js:41:11:41:16 | o4.m() | method-calls.js:42:2:42:3 | v4 | file://:0:0:0:0 | indefinite value (call) |
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import javascript
2+
import semmle.javascript.dataflow.LocalObjects
3+
4+
query predicate localObject_hasOwnProperty(LocalObject src, string name) {
5+
src.hasOwnProperty(name)
6+
}
7+
8+
query predicate localObject(LocalObject obj) { any() }
9+
10+
query predicate methodCallTypeInference(DataFlow::MethodCallNode call, string types) {
11+
types = call.analyze().ppTypes()
12+
}
13+
14+
query predicate methodCallTypeInferenceUsage(DataFlow::MethodCallNode call, DataFlow::Node use, AbstractValue val) {
15+
call.flowsTo(use) and use != call and not exists(use.getASuccessor()) and
16+
val = use.analyze().getAValue()
17+
}

0 commit comments

Comments
 (0)