add support for the promise-polyfill polyfill

This commit is contained in:
Erik Krogh Kristensen
2021-06-18 16:13:28 +02:00
parent f095e190a9
commit d7a47e8fbd
4 changed files with 20 additions and 1 deletions

View File

@@ -72,6 +72,11 @@ private DataFlow::SourceNode getAPromiseObject() {
"promise", "promise/domains", "promise/setimmediate", "promise/lib/es6-extensions",
"promise/domains/es6-extensions", "promise/setimmediate/es6-extensions"
])
or
// polyfill from the [`promise-polyfill`](https://npmjs.org/package/promise-polyfill) library.
result = DataFlow::moduleMember(["promise-polyfill", "promise-polyfill/src/polyfill"], "default")
or
result = DataFlow::moduleImport(["promise-polyfill", "promise-polyfill/src/polyfill"])
}
/**

View File

@@ -99,3 +99,10 @@
PromiseA.resolve(source);
PromiseB.resolve(source);
})();
(function() {
var PromiseA = require('promise-polyfill').default;
import PromiseB from 'promise-polyfill';
PromiseA.resolve(source);
PromiseB.resolve(source);
})();

View File

@@ -38,6 +38,8 @@ test_ResolvedPromiseDefinition
| promises.js:79:19:79:41 | Promise ... source) | promises.js:79:35:79:40 | source |
| promises.js:99:3:99:26 | Promise ... source) | promises.js:99:20:99:25 | source |
| promises.js:100:3:100:26 | Promise ... source) | promises.js:100:20:100:25 | source |
| promises.js:106:3:106:26 | Promise ... source) | promises.js:106:20:106:25 | source |
| promises.js:107:3:107:26 | Promise ... source) | promises.js:107:20:107:25 | source |
test_PromiseDefinition_getARejectHandler
| flow.js:26:2:26:49 | new Pro ... ource)) | flow.js:26:69:26:80 | y => sink(y) |
| flow.js:32:2:32:49 | new Pro ... ource)) | flow.js:32:57:32:68 | x => sink(x) |
@@ -413,3 +415,7 @@ typetrack
| promises.js:99:3:99:26 | Promise ... source) | promises.js:99:20:99:25 | source | store $PromiseResolveField$ |
| promises.js:100:3:100:26 | Promise ... source) | promises.js:100:20:100:25 | source | copy $PromiseResolveField$ |
| promises.js:100:3:100:26 | Promise ... source) | promises.js:100:20:100:25 | source | store $PromiseResolveField$ |
| promises.js:106:3:106:26 | Promise ... source) | promises.js:106:20:106:25 | source | copy $PromiseResolveField$ |
| promises.js:106:3:106:26 | Promise ... source) | promises.js:106:20:106:25 | source | store $PromiseResolveField$ |
| promises.js:107:3:107:26 | Promise ... source) | promises.js:107:20:107:25 | source | copy $PromiseResolveField$ |
| promises.js:107:3:107:26 | Promise ... source) | promises.js:107:20:107:25 | source | store $PromiseResolveField$ |