1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
| "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}`
| };
| }
| }
| };
| }
|
|