Skip to content

Commit 5cb3c2c

Browse files
committed
add support for the pinkie polyfill
1 parent b574292 commit 5cb3c2c

File tree

5 files changed

+18
-1
lines changed

5 files changed

+18
-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
@@ -8,4 +8,5 @@ lgtm,codescanning
88
[es6-promise](https://npmjs.com/package/es6-promise),
99
[native-promise-only](https://npmjs.com/package/native-promise-only),
1010
[when](https://npmjs.com/package/when),
11-
[pinkie-promise](https://npmjs.com/package/pinkie-promise)
11+
[pinkie-promise](https://npmjs.com/package/pinkie-promise),
12+
[pinkie](https://npmjs.com/package/pinkie)

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,8 @@ private DataFlow::SourceNode getAPromiseObject() {
8585
result = DataFlow::moduleImport("when")
8686
or
8787
result = DataFlow::moduleImport("pinkie-promise")
88+
or
89+
result = DataFlow::moduleImport("pinkie")
8890
}
8991

9092
/**

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,3 +83,4 @@
8383
| promises.js:112:17:112:62 | new RSV ... ct) {}) |
8484
| promises.js:124:19:124:30 | when(source) |
8585
| promises.js:130:14:130:69 | new Pro ... s'); }) |
86+
| promises.js:135:3:137:4 | new Pro ... );\\n }) |

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,3 +129,10 @@
129129
var Promise = require('pinkie-promise');
130130
var prom = new Promise(function (resolve) { resolve('unicorns'); });
131131
})();
132+
133+
(function() {
134+
var Promise = require('pinkie');
135+
new Promise(function (resolve, reject) {
136+
resolve(data);
137+
});
138+
})();

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ test_PromiseDefinition_getExecutor
9292
| promises.js:88:17:90:4 | Q.Promi ... );\\n }) | promises.js:88:27:90:3 | functio ... e);\\n } |
9393
| promises.js:112:17:112:62 | new RSV ... ct) {}) | promises.js:112:34:112:61 | functio ... ect) {} |
9494
| promises.js:130:14:130:69 | new Pro ... s'); }) | promises.js:130:26:130:68 | functio ... ns'); } |
95+
| promises.js:135:3:137:4 | new Pro ... );\\n }) | promises.js:135:15:137:3 | functio ... a);\\n } |
9596
test_PromiseDefinition_getAFinallyHandler
9697
| flow.js:105:2:105:48 | new Pro ... "BLA")) | flow.js:105:58:105:76 | x => {throw source} |
9798
| flow.js:109:2:109:48 | new Pro ... "BLA")) | flow.js:109:58:109:70 | x => rejected |
@@ -131,6 +132,7 @@ test_PromiseDefinition
131132
| promises.js:112:17:112:62 | new RSV ... ct) {}) |
132133
| promises.js:124:19:124:30 | when(source) |
133134
| promises.js:130:14:130:69 | new Pro ... s'); }) |
135+
| promises.js:135:3:137:4 | new Pro ... );\\n }) |
134136
test_PromiseDefinition_getAResolveHandler
135137
| flow.js:24:2:24:49 | new Pro ... ource)) | flow.js:24:56:24:67 | x => sink(x) |
136138
| flow.js:26:2:26:49 | new Pro ... ource)) | flow.js:26:56:26:66 | x => foo(x) |
@@ -181,6 +183,7 @@ test_PromiseDefinition_getRejectParameter
181183
| promises.js:43:19:45:6 | Q.Promi ... \\n }) | promises.js:43:48:43:53 | reject |
182184
| promises.js:88:17:90:4 | Q.Promi ... );\\n }) | promises.js:88:46:88:51 | reject |
183185
| promises.js:112:17:112:62 | new RSV ... ct) {}) | promises.js:112:52:112:57 | reject |
186+
| promises.js:135:3:137:4 | new Pro ... );\\n }) | promises.js:135:34:135:39 | reject |
184187
test_PromiseDefinition_getResolveParameter
185188
| flow.js:7:11:7:59 | new Pro ... ource)) | flow.js:7:24:7:30 | resolve |
186189
| flow.js:10:11:10:58 | new Pro ... ource)) | flow.js:10:24:10:30 | resolve |
@@ -214,6 +217,7 @@ test_PromiseDefinition_getResolveParameter
214217
| promises.js:88:17:90:4 | Q.Promi ... );\\n }) | promises.js:88:37:88:43 | resolve |
215218
| promises.js:112:17:112:62 | new RSV ... ct) {}) | promises.js:112:43:112:49 | resolve |
216219
| promises.js:130:14:130:69 | new Pro ... s'); }) | promises.js:130:36:130:42 | resolve |
220+
| promises.js:135:3:137:4 | new Pro ... );\\n }) | promises.js:135:25:135:31 | resolve |
217221
test_PromiseDefinition_getACatchHandler
218222
| flow.js:32:2:32:49 | new Pro ... ource)) | flow.js:32:57:32:68 | x => sink(x) |
219223
| flow.js:48:2:48:36 | new Pro ... urce }) | flow.js:48:44:48:55 | x => sink(x) |
@@ -436,3 +440,5 @@ typetrack
436440
| promises.js:119:3:119:25 | Promise ... source) | promises.js:119:19:119:24 | source | store $PromiseResolveField$ |
437441
| promises.js:125:20:125:39 | when.resolve(source) | promises.js:125:33:125:38 | source | copy $PromiseResolveField$ |
438442
| promises.js:125:20:125:39 | when.resolve(source) | promises.js:125:33:125:38 | source | store $PromiseResolveField$ |
443+
| promises.js:135:3:137:4 | new Pro ... );\\n }) | promises.js:136:13:136:16 | data | copy $PromiseResolveField$ |
444+
| promises.js:135:3:137:4 | new Pro ... );\\n }) | promises.js:136:13:136:16 | data | store $PromiseResolveField$ |

0 commit comments

Comments
 (0)