summaryrefslogtreecommitdiff
path: root/node_modules/@babel/helper-define-polyfill-provider/lib/meta-resolver.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/@babel/helper-define-polyfill-provider/lib/meta-resolver.js')
-rw-r--r--node_modules/@babel/helper-define-polyfill-provider/lib/meta-resolver.js52
1 files changed, 52 insertions, 0 deletions
diff --git a/node_modules/@babel/helper-define-polyfill-provider/lib/meta-resolver.js b/node_modules/@babel/helper-define-polyfill-provider/lib/meta-resolver.js
new file mode 100644
index 00000000..502320bc
--- /dev/null
+++ b/node_modules/@babel/helper-define-polyfill-provider/lib/meta-resolver.js
@@ -0,0 +1,52 @@
+"use strict";
+
+exports.__esModule = true;
+exports.default = createMetaResolver;
+var _utils = require("./utils");
+const PossibleGlobalObjects = new Set(["global", "globalThis", "self", "window"]);
+function createMetaResolver(polyfills) {
+ const {
+ static: staticP,
+ instance: instanceP,
+ global: globalP
+ } = polyfills;
+ return meta => {
+ if (meta.kind === "global" && globalP && (0, _utils.has)(globalP, meta.name)) {
+ return {
+ kind: "global",
+ desc: globalP[meta.name],
+ name: meta.name
+ };
+ }
+ if (meta.kind === "property" || meta.kind === "in") {
+ const {
+ placement,
+ object,
+ key
+ } = meta;
+ if (object && placement === "static") {
+ if (globalP && PossibleGlobalObjects.has(object) && (0, _utils.has)(globalP, key)) {
+ return {
+ kind: "global",
+ desc: globalP[key],
+ name: key
+ };
+ }
+ if (staticP && (0, _utils.has)(staticP, object) && (0, _utils.has)(staticP[object], key)) {
+ return {
+ kind: "static",
+ desc: staticP[object][key],
+ name: `${object}$${key}`
+ };
+ }
+ }
+ if (instanceP && (0, _utils.has)(instanceP, key)) {
+ return {
+ kind: "instance",
+ desc: instanceP[key],
+ name: `${key}`
+ };
+ }
+ }
+ };
+} \ No newline at end of file