diff options
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.js | 52 |
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 |
