Skip to content

Commit 085efe5

Browse files
committed
add support for the any-promise polyfill
1 parent cb82cdf commit 085efe5

File tree

5 files changed

+14
-1
lines changed

5 files changed

+14
-1
lines changed

javascript/change-notes/2021-06-18-promises.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,5 @@ lgtm,codescanning
1010
[when](https://npmjs.com/package/when),
1111
[pinkie-promise](https://npmjs.com/package/pinkie-promise),
1212
[pinkie](https://npmjs.com/package/pinkie),
13-
[synchronous-promise](https://npmjs.com/package/synchronous-promise)
13+
[synchronous-promise](https://npmjs.com/package/synchronous-promise),
14+
[any-promise](https://npmjs.com/package/any-promise)

javascript/ql/src/semmle/javascript/Promises.qll

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,8 @@ private DataFlow::SourceNode getAPromiseObject() {
8989
result = DataFlow::moduleImport("pinkie")
9090
or
9191
result = DataFlow::moduleMember("synchronous-promise", "SynchronousPromise")
92+
or
93+
result = DataFlow::moduleImport("any-promise")
9294
}
9395

9496
/**

javascript/ql/test/library-tests/Promises/AdditionalPromises.expected

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,3 +84,4 @@
8484
| promises.js:124:19:124:30 | when(source) |
8585
| promises.js:130:14:130:69 | new Pro ... s'); }) |
8686
| promises.js:135:3:137:4 | new Pro ... );\\n }) |
87+
| promises.js:148:10:148:49 | new Pro ... ect){}) |

javascript/ql/test/library-tests/Promises/promises.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,3 +142,8 @@
142142
// is technically not a promise, but behaves like one.
143143
var promise = SynchronousPromise.resolve(source);
144144
})();
145+
146+
(function() {
147+
var Promise = require('any-promise');
148+
return new Promise(function(resolve, reject){})
149+
})();

javascript/ql/test/library-tests/Promises/tests.expected

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ test_PromiseDefinition_getExecutor
9494
| promises.js:112:17:112:62 | new RSV ... ct) {}) | promises.js:112:34:112:61 | functio ... ect) {} |
9595
| promises.js:130:14:130:69 | new Pro ... s'); }) | promises.js:130:26:130:68 | functio ... ns'); } |
9696
| promises.js:135:3:137:4 | new Pro ... );\\n }) | promises.js:135:15:137:3 | functio ... a);\\n } |
97+
| promises.js:148:10:148:49 | new Pro ... ect){}) | promises.js:148:22:148:48 | functio ... ject){} |
9798
test_PromiseDefinition_getAFinallyHandler
9899
| flow.js:105:2:105:48 | new Pro ... "BLA")) | flow.js:105:58:105:76 | x => {throw source} |
99100
| flow.js:109:2:109:48 | new Pro ... "BLA")) | flow.js:109:58:109:70 | x => rejected |
@@ -134,6 +135,7 @@ test_PromiseDefinition
134135
| promises.js:124:19:124:30 | when(source) |
135136
| promises.js:130:14:130:69 | new Pro ... s'); }) |
136137
| promises.js:135:3:137:4 | new Pro ... );\\n }) |
138+
| promises.js:148:10:148:49 | new Pro ... ect){}) |
137139
test_PromiseDefinition_getAResolveHandler
138140
| flow.js:24:2:24:49 | new Pro ... ource)) | flow.js:24:56:24:67 | x => sink(x) |
139141
| flow.js:26:2:26:49 | new Pro ... ource)) | flow.js:26:56:26:66 | x => foo(x) |
@@ -185,6 +187,7 @@ test_PromiseDefinition_getRejectParameter
185187
| promises.js:88:17:90:4 | Q.Promi ... );\\n }) | promises.js:88:46:88:51 | reject |
186188
| promises.js:112:17:112:62 | new RSV ... ct) {}) | promises.js:112:52:112:57 | reject |
187189
| promises.js:135:3:137:4 | new Pro ... );\\n }) | promises.js:135:34:135:39 | reject |
190+
| promises.js:148:10:148:49 | new Pro ... ect){}) | promises.js:148:40:148:45 | reject |
188191
test_PromiseDefinition_getResolveParameter
189192
| flow.js:7:11:7:59 | new Pro ... ource)) | flow.js:7:24:7:30 | resolve |
190193
| flow.js:10:11:10:58 | new Pro ... ource)) | flow.js:10:24:10:30 | resolve |
@@ -219,6 +222,7 @@ test_PromiseDefinition_getResolveParameter
219222
| promises.js:112:17:112:62 | new RSV ... ct) {}) | promises.js:112:43:112:49 | resolve |
220223
| promises.js:130:14:130:69 | new Pro ... s'); }) | promises.js:130:36:130:42 | resolve |
221224
| promises.js:135:3:137:4 | new Pro ... );\\n }) | promises.js:135:25:135:31 | resolve |
225+
| promises.js:148:10:148:49 | new Pro ... ect){}) | promises.js:148:31:148:37 | resolve |
222226
test_PromiseDefinition_getACatchHandler
223227
| flow.js:32:2:32:49 | new Pro ... ource)) | flow.js:32:57:32:68 | x => sink(x) |
224228
| flow.js:48:2:48:36 | new Pro ... urce }) | flow.js:48:44:48:55 | x => sink(x) |

0 commit comments

Comments
 (0)