@vxrn/compiler 1.25.16 → 1.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/cache.cjs +4 -2
- package/dist/cjs/configure.cjs +9 -1
- package/dist/cjs/index.cjs +87 -5
- package/dist/cjs/reactNativeCodegen.cjs +140 -0
- package/dist/cjs/reactNativeViewConfig.cjs +489 -0
- package/dist/cjs/transformBabel.cjs +15 -20
- package/dist/cjs/transformBabel.test.cjs +260 -0
- package/dist/cjs/transformHermesAsync.cjs +61 -0
- package/dist/cjs/transformHermesLoops.cjs +319 -0
- package/dist/cjs/transformHermesLoops.test.cjs +257 -0
- package/dist/cjs/transformSWC.cjs +110 -138
- package/dist/cjs/transformSWC.test.cjs +117 -0
- package/dist/cjs/transformWorklets.cjs +123 -0
- package/dist/cjs/transformWorklets.test.cjs +604 -0
- package/dist/cjs/worklets/autoworklet.cjs +265 -0
- package/dist/cjs/worklets/globals.cjs +73 -0
- package/dist/cjs/worklets/hash.cjs +38 -0
- package/dist/cjs/worklets/scope.cjs +370 -0
- package/dist/cjs/worklets/serialize.cjs +101 -0
- package/dist/cjs/worklets/transform.cjs +266 -0
- package/dist/cjs/worklets/types.cjs +18 -0
- package/dist/esm/cache.mjs +5 -3
- package/dist/esm/cache.mjs.map +1 -1
- package/dist/esm/configure.mjs +8 -1
- package/dist/esm/configure.mjs.map +1 -1
- package/dist/esm/index.js +75 -6
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +75 -6
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/reactNativeCodegen.mjs +104 -0
- package/dist/esm/reactNativeCodegen.mjs.map +1 -0
- package/dist/esm/reactNativeViewConfig.mjs +460 -0
- package/dist/esm/reactNativeViewConfig.mjs.map +1 -0
- package/dist/esm/transformBabel.mjs +14 -19
- package/dist/esm/transformBabel.mjs.map +1 -1
- package/dist/esm/transformBabel.test.mjs +261 -1
- package/dist/esm/transformBabel.test.mjs.map +1 -1
- package/dist/esm/transformHermesAsync.mjs +25 -0
- package/dist/esm/transformHermesAsync.mjs.map +1 -0
- package/dist/esm/transformHermesLoops.mjs +283 -0
- package/dist/esm/transformHermesLoops.mjs.map +1 -0
- package/dist/esm/transformHermesLoops.test.mjs +234 -0
- package/dist/esm/transformHermesLoops.test.mjs.map +1 -0
- package/dist/esm/transformSWC.mjs +96 -139
- package/dist/esm/transformSWC.mjs.map +1 -1
- package/dist/esm/transformSWC.test.mjs +118 -0
- package/dist/esm/transformSWC.test.mjs.map +1 -0
- package/dist/esm/transformWorklets.mjs +82 -0
- package/dist/esm/transformWorklets.mjs.map +1 -0
- package/dist/esm/transformWorklets.test.mjs +581 -0
- package/dist/esm/transformWorklets.test.mjs.map +1 -0
- package/dist/esm/worklets/autoworklet.mjs +234 -0
- package/dist/esm/worklets/autoworklet.mjs.map +1 -0
- package/dist/esm/worklets/globals.mjs +46 -0
- package/dist/esm/worklets/globals.mjs.map +1 -0
- package/dist/esm/worklets/hash.mjs +13 -0
- package/dist/esm/worklets/hash.mjs.map +1 -0
- package/dist/esm/worklets/scope.mjs +345 -0
- package/dist/esm/worklets/scope.mjs.map +1 -0
- package/dist/esm/worklets/serialize.mjs +75 -0
- package/dist/esm/worklets/serialize.mjs.map +1 -0
- package/dist/esm/worklets/transform.mjs +229 -0
- package/dist/esm/worklets/transform.mjs.map +1 -0
- package/dist/esm/worklets/types.mjs +2 -0
- package/dist/esm/worklets/types.mjs.map +1 -0
- package/package.json +11 -6
- package/src/cache.ts +10 -3
- package/src/configure.ts +12 -0
- package/src/index.ts +96 -13
- package/src/reactNativeCodegen.ts +181 -0
- package/src/reactNativeViewConfig.ts +593 -0
- package/src/transformBabel.test.ts +268 -1
- package/src/transformBabel.ts +21 -31
- package/src/transformHermesAsync.ts +30 -0
- package/src/transformHermesLoops.test.ts +341 -0
- package/src/transformHermesLoops.ts +435 -0
- package/src/transformSWC.test.ts +132 -0
- package/src/transformSWC.ts +121 -161
- package/src/transformWorklets.test.ts +708 -0
- package/src/transformWorklets.ts +160 -0
- package/src/types.ts +4 -4
- package/src/worklets/autoworklet.ts +391 -0
- package/src/worklets/globals.ts +129 -0
- package/src/worklets/hash.ts +14 -0
- package/src/worklets/scope.ts +401 -0
- package/src/worklets/serialize.ts +114 -0
- package/src/worklets/transform.ts +319 -0
- package/src/worklets/types.ts +26 -0
- package/types/cache.d.ts +1 -0
- package/types/cache.d.ts.map +1 -1
- package/types/configure.d.ts +2 -0
- package/types/configure.d.ts.map +1 -1
- package/types/index.d.ts +6 -0
- package/types/index.d.ts.map +1 -1
- package/types/reactNativeCodegen.d.ts +5 -0
- package/types/reactNativeCodegen.d.ts.map +1 -0
- package/types/reactNativeViewConfig.d.ts +35 -0
- package/types/reactNativeViewConfig.d.ts.map +1 -0
- package/types/transformBabel.d.ts +3 -3
- package/types/transformBabel.d.ts.map +1 -1
- package/types/transformHermesAsync.d.ts +5 -0
- package/types/transformHermesAsync.d.ts.map +1 -0
- package/types/transformHermesLoops.d.ts +5 -0
- package/types/transformHermesLoops.d.ts.map +1 -0
- package/types/transformHermesLoops.test.d.ts +2 -0
- package/types/transformHermesLoops.test.d.ts.map +1 -0
- package/types/transformSWC.d.ts +13 -3
- package/types/transformSWC.d.ts.map +1 -1
- package/types/transformSWC.test.d.ts +2 -0
- package/types/transformSWC.test.d.ts.map +1 -0
- package/types/transformWorklets.d.ts +23 -0
- package/types/transformWorklets.d.ts.map +1 -0
- package/types/transformWorklets.test.d.ts +2 -0
- package/types/transformWorklets.test.d.ts.map +1 -0
- package/types/types.d.ts +4 -4
- package/types/types.d.ts.map +1 -1
- package/types/worklets/autoworklet.d.ts +14 -0
- package/types/worklets/autoworklet.d.ts.map +1 -0
- package/types/worklets/globals.d.ts +4 -0
- package/types/worklets/globals.d.ts.map +1 -0
- package/types/worklets/hash.d.ts +5 -0
- package/types/worklets/hash.d.ts.map +1 -0
- package/types/worklets/scope.d.ts +7 -0
- package/types/worklets/scope.d.ts.map +1 -0
- package/types/worklets/serialize.d.ts +12 -0
- package/types/worklets/serialize.d.ts.map +1 -0
- package/types/worklets/transform.d.ts +10 -0
- package/types/worklets/transform.d.ts.map +1 -0
- package/types/worklets/types.d.ts +21 -0
- package/types/worklets/types.d.ts.map +1 -0
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
const AUTOWORKLET_FUNCTION_ARGS = Object.assign(/* @__PURE__ */Object.create(null), {
|
|
2
|
+
useFrameCallback: [0],
|
|
3
|
+
useAnimatedStyle: [0],
|
|
4
|
+
useAnimatedProps: [0],
|
|
5
|
+
createAnimatedPropAdapter: [0],
|
|
6
|
+
useDerivedValue: [0],
|
|
7
|
+
useAnimatedScrollHandler: [0],
|
|
8
|
+
useAnimatedGestureHandler: [0],
|
|
9
|
+
useAnimatedReaction: [0, 1],
|
|
10
|
+
withTiming: [2],
|
|
11
|
+
withSpring: [2],
|
|
12
|
+
withDecay: [1],
|
|
13
|
+
withRepeat: [3],
|
|
14
|
+
runOnUI: [0],
|
|
15
|
+
executeOnUIRuntimeSync: [0],
|
|
16
|
+
scheduleOnUI: [0],
|
|
17
|
+
runOnUISync: [0],
|
|
18
|
+
runOnUIAsync: [0],
|
|
19
|
+
runOnRuntime: [1],
|
|
20
|
+
runOnRuntimeSync: [1],
|
|
21
|
+
runOnRuntimeAsync: [1],
|
|
22
|
+
scheduleOnRuntime: [1],
|
|
23
|
+
runOnRuntimeSyncWithId: [1],
|
|
24
|
+
scheduleOnRuntimeWithId: [1],
|
|
25
|
+
useTapGesture: [0],
|
|
26
|
+
usePanGesture: [0],
|
|
27
|
+
usePinchGesture: [0],
|
|
28
|
+
useRotationGesture: [0],
|
|
29
|
+
useFlingGesture: [0],
|
|
30
|
+
useLongPressGesture: [0],
|
|
31
|
+
useNativeGesture: [0],
|
|
32
|
+
useManualGesture: [0],
|
|
33
|
+
useHoverGesture: [0]
|
|
34
|
+
});
|
|
35
|
+
const GESTURE_BUILDER_METHODS = /* @__PURE__ */new Set(["onBegin", "onStart", "onEnd", "onFinalize", "onUpdate", "onChange", "onTouchesDown", "onTouchesMove", "onTouchesUp", "onTouchesCancelled"]);
|
|
36
|
+
const GESTURE_KINDS = /* @__PURE__ */new Set(["Tap", "Pan", "Pinch", "Rotation", "Fling", "LongPress", "ForceTouch", "Native", "Manual", "Race", "Simultaneous", "Exclusive", "Hover"]);
|
|
37
|
+
const LAYOUT_ANIMATIONS = new Set(`BounceIn BounceInDown BounceInLeft BounceInRight BounceInUp BounceOut BounceOutDown
|
|
38
|
+
BounceOutLeft BounceOutRight BounceOutUp FadeIn FadeInDown FadeInLeft FadeInRight FadeInUp
|
|
39
|
+
FadeOut FadeOutDown FadeOutLeft FadeOutRight FadeOutUp FlipInEasyX FlipInEasyY FlipInXDown
|
|
40
|
+
FlipInXUp FlipInYLeft FlipInYRight FlipOutEasyX FlipOutEasyY FlipOutXDown FlipOutXUp
|
|
41
|
+
FlipOutYLeft FlipOutYRight LightSpeedInLeft LightSpeedInRight LightSpeedOutLeft
|
|
42
|
+
LightSpeedOutRight PinwheelIn PinwheelOut RollInLeft RollInRight RollOutLeft RollOutRight
|
|
43
|
+
RotateInDownLeft RotateInDownRight RotateInUpLeft RotateInUpRight RotateOutDownLeft
|
|
44
|
+
RotateOutDownRight RotateOutUpLeft RotateOutUpRight SlideInDown SlideInLeft SlideInRight
|
|
45
|
+
SlideInUp SlideOutDown SlideOutLeft SlideOutRight SlideOutUp StretchInX StretchInY
|
|
46
|
+
StretchOutX StretchOutY ZoomIn ZoomInDown ZoomInEasyDown ZoomInEasyUp ZoomInLeft ZoomInRight
|
|
47
|
+
ZoomInRotate ZoomInUp ZoomOut ZoomOutDown ZoomOutEasyDown ZoomOutEasyUp ZoomOutLeft
|
|
48
|
+
ZoomOutRight ZoomOutRotate ZoomOutUp Layout LinearTransition SequencedTransition
|
|
49
|
+
FadingTransition JumpingTransition CurvedTransition EntryExitTransition`.split(/\s+/));
|
|
50
|
+
const LAYOUT_ANIMATION_CHAIN_METHODS = /* @__PURE__ */new Set(["build", "duration", "delay", "getDuration", "randomDelay", "getDelay", "getDelayFunction", "easing", "rotate", "springify", "damping", "mass", "stiffness", "overshootClamping", "energyThreshold", "restDisplacementThreshold", "restSpeedThreshold", "withInitialValues", "getAnimationAndConfig", "easingX", "easingY", "easingWidth", "easingHeight", "entering", "exiting", "reverse"]);
|
|
51
|
+
function isGestureObject(exp) {
|
|
52
|
+
return exp?.type === "CallExpression" && exp.callee?.type === "MemberExpression" && exp.callee.object?.type === "Identifier" && exp.callee.object.name === "Gesture" && exp.callee.property?.type === "Identifier" && GESTURE_KINDS.has(exp.callee.property.name);
|
|
53
|
+
}
|
|
54
|
+
function containsGestureObject(exp) {
|
|
55
|
+
if (isGestureObject(exp)) return true;
|
|
56
|
+
return exp?.type === "CallExpression" && exp.callee?.type === "MemberExpression" && containsGestureObject(exp.callee.object);
|
|
57
|
+
}
|
|
58
|
+
function isLayoutAnimationChain(exp) {
|
|
59
|
+
if (exp?.type === "Identifier" && LAYOUT_ANIMATIONS.has(exp.name)) return true;
|
|
60
|
+
if (exp?.type === "NewExpression" && exp.callee?.type === "Identifier" && LAYOUT_ANIMATIONS.has(exp.callee.name)) {
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
63
|
+
return exp?.type === "CallExpression" && exp.callee?.type === "MemberExpression" && exp.callee.property?.type === "Identifier" && LAYOUT_ANIMATION_CHAIN_METHODS.has(exp.callee.property.name) && isLayoutAnimationChain(exp.callee.object);
|
|
64
|
+
}
|
|
65
|
+
function isChainedCallback(callee) {
|
|
66
|
+
if (callee?.type !== "MemberExpression" || callee.property?.type !== "Identifier") {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
const name = callee.property.name;
|
|
70
|
+
if (GESTURE_BUILDER_METHODS.has(name)) return containsGestureObject(callee.object);
|
|
71
|
+
if (name === "withCallback") return isLayoutAnimationChain(callee.object);
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
const WORKLET_DIRECTIVES = ["worklet", "no-worklet-closure", "limit-init-data-hoisting"];
|
|
75
|
+
function statementDirective(stmt) {
|
|
76
|
+
if (!stmt || stmt.type !== "ExpressionStatement") return void 0;
|
|
77
|
+
if (typeof stmt.directive === "string") return stmt.directive;
|
|
78
|
+
if (stmt.expression?.type === "Literal" && typeof stmt.expression.value === "string") {
|
|
79
|
+
return stmt.expression.value;
|
|
80
|
+
}
|
|
81
|
+
return void 0;
|
|
82
|
+
}
|
|
83
|
+
function hasDirective(fnNode, directive) {
|
|
84
|
+
if (!fnNode || !fnNode.body) return false;
|
|
85
|
+
if (Array.isArray(fnNode.body.directives)) {
|
|
86
|
+
for (const d of fnNode.body.directives) {
|
|
87
|
+
if (d.directive === directive || d.value === directive) {
|
|
88
|
+
return true;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
if (fnNode.body.type === "BlockStatement" && Array.isArray(fnNode.body.body)) {
|
|
93
|
+
for (const stmt of fnNode.body.body) {
|
|
94
|
+
const found = statementDirective(stmt);
|
|
95
|
+
if (found === void 0) break;
|
|
96
|
+
if (found === directive) return true;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return false;
|
|
100
|
+
}
|
|
101
|
+
function hasWorkletDirective(fnNode) {
|
|
102
|
+
return hasDirective(fnNode, "worklet");
|
|
103
|
+
}
|
|
104
|
+
function bodyStartAfterDirectives(fnNode, code) {
|
|
105
|
+
let start = fnNode.body.start + 1;
|
|
106
|
+
if (fnNode.body.type !== "BlockStatement" || !Array.isArray(fnNode.body.body)) return start;
|
|
107
|
+
for (const stmt of fnNode.body.body) {
|
|
108
|
+
const found = statementDirective(stmt);
|
|
109
|
+
if (found === void 0 || !WORKLET_DIRECTIVES.includes(found)) break;
|
|
110
|
+
start = stmt.end;
|
|
111
|
+
while (start < fnNode.body.end && (code[start] === ";" || /\s/.test(code[start]))) {
|
|
112
|
+
start++;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return start;
|
|
116
|
+
}
|
|
117
|
+
function findWorkletCandidates(program) {
|
|
118
|
+
const candidates = [];
|
|
119
|
+
const seenStarts = /* @__PURE__ */new Set();
|
|
120
|
+
function addCandidate(candidate) {
|
|
121
|
+
const fnStart = candidate.fnNode.start;
|
|
122
|
+
if (seenStarts.has(fnStart)) return;
|
|
123
|
+
seenStarts.add(fnStart);
|
|
124
|
+
candidates.push(candidate);
|
|
125
|
+
}
|
|
126
|
+
function getCalleeName(callee) {
|
|
127
|
+
if (!callee) return null;
|
|
128
|
+
if (callee.type === "Identifier") {
|
|
129
|
+
return callee.name;
|
|
130
|
+
}
|
|
131
|
+
if (callee.type === "MemberExpression" && !callee.computed && callee.property?.type === "Identifier") {
|
|
132
|
+
return callee.property.name;
|
|
133
|
+
}
|
|
134
|
+
return null;
|
|
135
|
+
}
|
|
136
|
+
function walk(node, parent) {
|
|
137
|
+
if (!node || typeof node !== "object") return;
|
|
138
|
+
if (node.type === "FunctionDeclaration" || node.type === "FunctionExpression" || node.type === "ArrowFunctionExpression") {
|
|
139
|
+
if (hasWorkletDirective(node)) {
|
|
140
|
+
let kind = "function_expression";
|
|
141
|
+
if (node.type === "FunctionDeclaration") kind = "function_declaration";else if (node.type === "ArrowFunctionExpression") kind = "arrow_function";
|
|
142
|
+
let name = node.id?.name;
|
|
143
|
+
if (!name && parent?.type === "VariableDeclarator" && parent.id?.name) {
|
|
144
|
+
name = parent.id.name;
|
|
145
|
+
}
|
|
146
|
+
addCandidate({
|
|
147
|
+
node,
|
|
148
|
+
fnNode: node,
|
|
149
|
+
kind,
|
|
150
|
+
name,
|
|
151
|
+
parent,
|
|
152
|
+
isAutoWorklet: false
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
} else if (node.type === "Property" && (node.method || node.value?.type === "FunctionExpression" || node.value?.type === "ArrowFunctionExpression")) {
|
|
156
|
+
const fn = node.value;
|
|
157
|
+
if (hasWorkletDirective(fn)) {
|
|
158
|
+
addCandidate({
|
|
159
|
+
node: node.method ? node : fn,
|
|
160
|
+
fnNode: fn,
|
|
161
|
+
kind: node.method ? "object_method" : fn.type === "ArrowFunctionExpression" ? "arrow_function" : "function_expression",
|
|
162
|
+
name: node.key?.name,
|
|
163
|
+
parent,
|
|
164
|
+
isAutoWorklet: false
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
if (node.type === "CallExpression") {
|
|
169
|
+
const calleeName = getCalleeName(node.callee);
|
|
170
|
+
const argIndices = calleeName ? AUTOWORKLET_FUNCTION_ARGS[calleeName] : void 0;
|
|
171
|
+
const chained = !argIndices && isChainedCallback(node.callee);
|
|
172
|
+
const indices = argIndices ?? (chained ? node.arguments.map((_, i) => i) : void 0);
|
|
173
|
+
if (indices) {
|
|
174
|
+
for (const idx of indices) {
|
|
175
|
+
const arg = node.arguments[idx];
|
|
176
|
+
if (!arg) continue;
|
|
177
|
+
if (arg.type === "ArrowFunctionExpression" || arg.type === "FunctionExpression") {
|
|
178
|
+
let name = arg.id?.name;
|
|
179
|
+
if (!name && parent?.type === "VariableDeclarator" && parent.id?.name) {
|
|
180
|
+
name = parent.id.name;
|
|
181
|
+
}
|
|
182
|
+
addCandidate({
|
|
183
|
+
node: arg,
|
|
184
|
+
fnNode: arg,
|
|
185
|
+
kind: arg.type === "ArrowFunctionExpression" ? "arrow_function" : "function_expression",
|
|
186
|
+
name,
|
|
187
|
+
parent: node,
|
|
188
|
+
isAutoWorklet: true
|
|
189
|
+
});
|
|
190
|
+
} else if (arg.type === "ObjectExpression" && Array.isArray(arg.properties)) {
|
|
191
|
+
for (const prop of arg.properties) {
|
|
192
|
+
if (prop.type === "Property") {
|
|
193
|
+
if (prop.method) {
|
|
194
|
+
addCandidate({
|
|
195
|
+
node: prop,
|
|
196
|
+
fnNode: prop.value,
|
|
197
|
+
kind: "object_method",
|
|
198
|
+
name: prop.key?.name,
|
|
199
|
+
parent: arg,
|
|
200
|
+
isAutoWorklet: true
|
|
201
|
+
});
|
|
202
|
+
} else if (prop.value?.type === "ArrowFunctionExpression" || prop.value?.type === "FunctionExpression") {
|
|
203
|
+
addCandidate({
|
|
204
|
+
node: prop.value,
|
|
205
|
+
fnNode: prop.value,
|
|
206
|
+
kind: prop.value.type === "ArrowFunctionExpression" ? "arrow_function" : "function_expression",
|
|
207
|
+
name: prop.key?.name,
|
|
208
|
+
parent: prop,
|
|
209
|
+
isAutoWorklet: true
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
for (const key of Object.keys(node)) {
|
|
219
|
+
if (key === "start" || key === "end" || key === "loc" || key === "range") continue;
|
|
220
|
+
const child = node[key];
|
|
221
|
+
if (Array.isArray(child)) {
|
|
222
|
+
for (const item of child) {
|
|
223
|
+
walk(item, node);
|
|
224
|
+
}
|
|
225
|
+
} else if (child && typeof child === "object") {
|
|
226
|
+
walk(child, node);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
walk(program, null);
|
|
231
|
+
return candidates;
|
|
232
|
+
}
|
|
233
|
+
export { AUTOWORKLET_FUNCTION_ARGS, GESTURE_BUILDER_METHODS, WORKLET_DIRECTIVES, bodyStartAfterDirectives, findWorkletCandidates, hasDirective, hasWorkletDirective };
|
|
234
|
+
//# sourceMappingURL=autoworklet.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["AUTOWORKLET_FUNCTION_ARGS","Object","assign","create","useFrameCallback","useAnimatedStyle","useAnimatedProps","createAnimatedPropAdapter","useDerivedValue","useAnimatedScrollHandler","useAnimatedGestureHandler","useAnimatedReaction","withTiming","withSpring","withDecay","withRepeat","runOnUI","executeOnUIRuntimeSync","scheduleOnUI","runOnUISync","runOnUIAsync","runOnRuntime","runOnRuntimeSync","runOnRuntimeAsync","scheduleOnRuntime","runOnRuntimeSyncWithId","scheduleOnRuntimeWithId","useTapGesture","usePanGesture","usePinchGesture","useRotationGesture","useFlingGesture","useLongPressGesture","useNativeGesture","useManualGesture","useHoverGesture","GESTURE_BUILDER_METHODS","Set","GESTURE_KINDS","LAYOUT_ANIMATIONS","split","LAYOUT_ANIMATION_CHAIN_METHODS","isGestureObject","exp","type","callee","object","name","property","has","containsGestureObject","isLayoutAnimationChain","isChainedCallback","WORKLET_DIRECTIVES","statementDirective","stmt","directive","expression","value","hasDirective","fnNode","body","Array","isArray","directives","d","found","hasWorkletDirective","bodyStartAfterDirectives","code","start","includes","end","test","findWorkletCandidates","program","candidates","seenStarts","addCandidate","candidate","fnStart","add","push","getCalleeName","computed","walk","node","parent","kind","id","isAutoWorklet","method","fn","key","calleeName","argIndices","chained","indices","arguments","map","_","i","idx","arg","properties","prop","keys","child","item"],"sources":["../../../src/worklets/autoworklet.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
const JS_GLOBALS = /* @__PURE__ */new Set([
|
|
2
|
+
// Value properties
|
|
3
|
+
"globalThis", "Infinity", "NaN", "undefined",
|
|
4
|
+
// Function properties
|
|
5
|
+
"eval", "isFinite", "isNaN", "parseFloat", "parseInt", "decodeURI", "decodeURIComponent", "encodeURI", "encodeURIComponent", "escape", "unescape",
|
|
6
|
+
// Fundamental objects
|
|
7
|
+
"Object", "Function", "Boolean", "Symbol",
|
|
8
|
+
// Error objects
|
|
9
|
+
"Error", "AggregateError", "EvalError", "RangeError", "ReferenceError", "SyntaxError", "TypeError", "URIError", "InternalError",
|
|
10
|
+
// Numbers and dates
|
|
11
|
+
"Number", "BigInt", "Math", "Date",
|
|
12
|
+
// Text processing
|
|
13
|
+
"String", "RegExp",
|
|
14
|
+
// Indexed collections
|
|
15
|
+
"Array", "Int8Array", "Uint8Array", "Uint8ClampedArray", "Int16Array", "Uint16Array", "Int32Array", "Uint32Array", "BigInt64Array", "BigUint64Array", "Float32Array", "Float64Array",
|
|
16
|
+
// Keyed collections
|
|
17
|
+
"Map", "Set", "WeakMap", "WeakSet",
|
|
18
|
+
// Structured data
|
|
19
|
+
"ArrayBuffer", "SharedArrayBuffer", "DataView", "Atomics", "JSON",
|
|
20
|
+
// Managing memory
|
|
21
|
+
"WeakRef", "FinalizationRegistry",
|
|
22
|
+
// Control abstraction objects
|
|
23
|
+
"Iterator", "AsyncIterator", "Promise", "GeneratorFunction", "AsyncGeneratorFunction", "Generator", "AsyncGenerator", "AsyncFunction",
|
|
24
|
+
// Reflection
|
|
25
|
+
"Reflect", "Proxy",
|
|
26
|
+
// Internationalization
|
|
27
|
+
"Intl"]);
|
|
28
|
+
const DEFAULT_GLOBALS = /* @__PURE__ */new Set([...JS_GLOBALS,
|
|
29
|
+
// Environment / Runtime
|
|
30
|
+
"null", "this", "global", "window", "self", "console", "performance", "arguments", "require", "fetch", "XMLHttpRequest", "WebSocket", "queueMicrotask", "requestAnimationFrame", "cancelAnimationFrame", "setTimeout", "clearTimeout", "setImmediate", "clearImmediate", "setInterval", "clearInterval", "HermesInternal", "_WORKLET"]);
|
|
31
|
+
function createGlobalsSet(customGlobals, strictGlobal) {
|
|
32
|
+
const set = /* @__PURE__ */new Set();
|
|
33
|
+
if (!strictGlobal) {
|
|
34
|
+
for (const g of DEFAULT_GLOBALS) {
|
|
35
|
+
set.add(g);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
if (customGlobals) {
|
|
39
|
+
for (const g of customGlobals) {
|
|
40
|
+
set.add(g);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return set;
|
|
44
|
+
}
|
|
45
|
+
export { DEFAULT_GLOBALS, JS_GLOBALS, createGlobalsSet };
|
|
46
|
+
//# sourceMappingURL=globals.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["JS_GLOBALS","Set","DEFAULT_GLOBALS","createGlobalsSet","customGlobals","strictGlobal","set","g","add"],"sources":["../../../src/worklets/globals.ts"],"sourcesContent":[null],"mappings":"AAAO,MAAMA,UAAA,GAAa,mBAAIC,GAAA,CAAI;AAAA;AAEhC,cACA,YACA,OACA;AAAA;AAEA,QACA,YACA,SACA,cACA,YACA,aACA,sBACA,aACA,sBACA,UACA;AAAA;AAEA,UACA,YACA,WACA;AAAA;AAEA,SACA,kBACA,aACA,cACA,kBACA,eACA,aACA,YACA;AAAA;AAEA,UACA,UACA,QACA;AAAA;AAEA,UACA;AAAA;AAEA,SACA,aACA,cACA,qBACA,cACA,eACA,cACA,eACA,iBACA,kBACA,gBACA;AAAA;AAEA,OACA,OACA,WACA;AAAA;AAEA,eACA,qBACA,YACA,WACA;AAAA;AAEA,WACA;AAAA;AAEA,YACA,iBACA,WACA,qBACA,0BACA,aACA,kBACA;AAAA;AAEA,WACA;AAAA;AAEA,OACD;AAEM,MAAMC,eAAA,GAAkB,mBAAID,GAAA,CAAI,CACrC,GAAGD,UAAA;AAAA;AAEH,QACA,QACA,UACA,UACA,QACA,WACA,eACA,aACA,WACA,SACA,kBACA,aACA,kBACA,yBACA,wBACA,cACA,gBACA,gBACA,kBACA,eACA,iBACA,kBACA,WACD;AAEM,SAASG,iBACdC,aAAA,EACAC,YAAA,EACa;EACb,MAAMC,GAAA,GAAM,mBAAIL,GAAA,CAAY;EAC5B,IAAI,CAACI,YAAA,EAAc;IACjB,WAAWE,CAAA,IAAKL,eAAA,EAAiB;MAC/BI,GAAA,CAAIE,GAAA,CAAID,CAAC;IACX;EACF;EACA,IAAIH,aAAA,EAAe;IACjB,WAAWG,CAAA,IAAKH,aAAA,EAAe;MAC7BE,GAAA,CAAIE,GAAA,CAAID,CAAC;IACX;EACF;EACA,OAAOD,GAAA;AACT","ignoreList":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
function calculateWorkletHash(str) {
|
|
2
|
+
let i = str.length;
|
|
3
|
+
let hash1 = 5381;
|
|
4
|
+
let hash2 = 52711;
|
|
5
|
+
while (i--) {
|
|
6
|
+
const char = str.charCodeAt(i);
|
|
7
|
+
hash1 = hash1 * 33 ^ char;
|
|
8
|
+
hash2 = hash2 * 33 ^ char;
|
|
9
|
+
}
|
|
10
|
+
return (hash1 >>> 0) * 4096 + (hash2 >>> 0);
|
|
11
|
+
}
|
|
12
|
+
export { calculateWorkletHash };
|
|
13
|
+
//# sourceMappingURL=hash.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["calculateWorkletHash","str","i","length","hash1","hash2","char","charCodeAt"],"sources":["../../../src/worklets/hash.ts"],"sourcesContent":[null],"mappings":"AAGO,SAASA,qBAAqBC,GAAA,EAAqB;EACxD,IAAIC,CAAA,GAAID,GAAA,CAAIE,MAAA;EACZ,IAAIC,KAAA,GAAQ;EACZ,IAAIC,KAAA,GAAQ;EACZ,OAAOH,CAAA,IAAK;IACV,MAAMI,IAAA,GAAOL,GAAA,CAAIM,UAAA,CAAWL,CAAC;IAC7BE,KAAA,GAASA,KAAA,GAAQ,KAAME,IAAA;IACvBD,KAAA,GAASA,KAAA,GAAQ,KAAMC,IAAA;EACzB;EACA,QAAQF,KAAA,KAAU,KAAK,QAAQC,KAAA,KAAU;AAC3C","ignoreList":[]}
|
|
@@ -0,0 +1,345 @@
|
|
|
1
|
+
function getClosureVariables(fnNode, globals) {
|
|
2
|
+
const rootScope = {
|
|
3
|
+
parent: null,
|
|
4
|
+
isFunction: true,
|
|
5
|
+
bindings: /* @__PURE__ */new Set(),
|
|
6
|
+
varBindings: /* @__PURE__ */new Set()
|
|
7
|
+
};
|
|
8
|
+
let currentScope = rootScope;
|
|
9
|
+
const freeVariables = /* @__PURE__ */new Set();
|
|
10
|
+
if (fnNode.id && fnNode.id.name) {
|
|
11
|
+
rootScope.bindings.add(fnNode.id.name);
|
|
12
|
+
}
|
|
13
|
+
function pushScope(isFunction) {
|
|
14
|
+
const newScope = {
|
|
15
|
+
parent: currentScope,
|
|
16
|
+
isFunction,
|
|
17
|
+
bindings: /* @__PURE__ */new Set(),
|
|
18
|
+
varBindings: isFunction ? /* @__PURE__ */new Set() : currentScope.varBindings
|
|
19
|
+
};
|
|
20
|
+
currentScope = newScope;
|
|
21
|
+
return newScope;
|
|
22
|
+
}
|
|
23
|
+
function popScope() {
|
|
24
|
+
if (currentScope.parent) {
|
|
25
|
+
currentScope = currentScope.parent;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
function addBindings(pattern, targetSet) {
|
|
29
|
+
if (!pattern) return;
|
|
30
|
+
switch (pattern.type) {
|
|
31
|
+
case "Identifier":
|
|
32
|
+
targetSet.add(pattern.name);
|
|
33
|
+
break;
|
|
34
|
+
case "AssignmentPattern":
|
|
35
|
+
addBindings(pattern.left, targetSet);
|
|
36
|
+
walk(pattern.right);
|
|
37
|
+
break;
|
|
38
|
+
case "RestElement":
|
|
39
|
+
addBindings(pattern.argument, targetSet);
|
|
40
|
+
break;
|
|
41
|
+
case "ArrayPattern":
|
|
42
|
+
for (const el of pattern.elements) {
|
|
43
|
+
if (el) addBindings(el, targetSet);
|
|
44
|
+
}
|
|
45
|
+
break;
|
|
46
|
+
case "ObjectPattern":
|
|
47
|
+
for (const prop of pattern.properties) {
|
|
48
|
+
if (prop.type === "Property") {
|
|
49
|
+
if (prop.computed) walk(prop.key);
|
|
50
|
+
addBindings(prop.value, targetSet);
|
|
51
|
+
} else if (prop.type === "RestElement") {
|
|
52
|
+
addBindings(prop.argument, targetSet);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
break;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
function addBindingsOnly(pattern, targetSet) {
|
|
59
|
+
if (!pattern) return;
|
|
60
|
+
switch (pattern.type) {
|
|
61
|
+
case "Identifier":
|
|
62
|
+
targetSet.add(pattern.name);
|
|
63
|
+
break;
|
|
64
|
+
case "AssignmentPattern":
|
|
65
|
+
addBindingsOnly(pattern.left, targetSet);
|
|
66
|
+
break;
|
|
67
|
+
case "RestElement":
|
|
68
|
+
addBindingsOnly(pattern.argument, targetSet);
|
|
69
|
+
break;
|
|
70
|
+
case "ArrayPattern":
|
|
71
|
+
for (const el of pattern.elements) {
|
|
72
|
+
if (el) addBindingsOnly(el, targetSet);
|
|
73
|
+
}
|
|
74
|
+
break;
|
|
75
|
+
case "ObjectPattern":
|
|
76
|
+
for (const prop of pattern.properties) {
|
|
77
|
+
if (prop.type === "Property") {
|
|
78
|
+
addBindingsOnly(prop.value, targetSet);
|
|
79
|
+
} else if (prop.type === "RestElement") {
|
|
80
|
+
addBindingsOnly(prop.argument, targetSet);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
break;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
function hoistDeclarations(node, direct) {
|
|
87
|
+
if (!node || typeof node !== "object" || typeof node.type !== "string") return;
|
|
88
|
+
switch (node.type) {
|
|
89
|
+
case "FunctionDeclaration":
|
|
90
|
+
if (node.id?.name) {
|
|
91
|
+
currentScope.bindings.add(node.id.name);
|
|
92
|
+
currentScope.varBindings.add(node.id.name);
|
|
93
|
+
}
|
|
94
|
+
return;
|
|
95
|
+
case "FunctionExpression":
|
|
96
|
+
case "ArrowFunctionExpression":
|
|
97
|
+
return;
|
|
98
|
+
case "ClassDeclaration":
|
|
99
|
+
if (direct && node.id?.name) currentScope.bindings.add(node.id.name);
|
|
100
|
+
return;
|
|
101
|
+
case "VariableDeclaration":
|
|
102
|
+
if (node.kind === "var") {
|
|
103
|
+
for (const d of node.declarations) addBindingsOnly(d.id, currentScope.varBindings);
|
|
104
|
+
} else if (direct) {
|
|
105
|
+
for (const d of node.declarations) addBindingsOnly(d.id, currentScope.bindings);
|
|
106
|
+
}
|
|
107
|
+
return;
|
|
108
|
+
case "ExportNamedDeclaration":
|
|
109
|
+
case "ExportDefaultDeclaration":
|
|
110
|
+
hoistDeclarations(node.declaration, direct);
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
for (const key of Object.keys(node)) {
|
|
114
|
+
if (key === "start" || key === "end" || key === "loc" || key === "range") continue;
|
|
115
|
+
const child = node[key];
|
|
116
|
+
if (Array.isArray(child)) {
|
|
117
|
+
for (const item of child) hoistDeclarations(item, false);
|
|
118
|
+
} else if (child && typeof child === "object") {
|
|
119
|
+
hoistDeclarations(child, false);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
if (fnNode.params) {
|
|
124
|
+
for (const param of fnNode.params) {
|
|
125
|
+
addBindings(param, rootScope.bindings);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
function isDeclaredInScopes(name, fromScope) {
|
|
129
|
+
let s = fromScope;
|
|
130
|
+
while (s) {
|
|
131
|
+
if (s.bindings.has(name) || s.varBindings.has(name)) {
|
|
132
|
+
return true;
|
|
133
|
+
}
|
|
134
|
+
s = s.parent;
|
|
135
|
+
}
|
|
136
|
+
return false;
|
|
137
|
+
}
|
|
138
|
+
function resolveIdentifier(name) {
|
|
139
|
+
if (!isDeclaredInScopes(name, currentScope) && !globals.has(name)) {
|
|
140
|
+
freeVariables.add(name);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
function walk(node) {
|
|
144
|
+
if (!node || typeof node !== "object") return;
|
|
145
|
+
if (node.type === "TSTypeAnnotation" || node.type === "TSTypeReference" || node.type === "TSTypeAliasDeclaration" || node.type === "TSInterfaceDeclaration" || node.type === "TSTypeParameterDeclaration" || node.type === "TSTypeParameterInstantiation" || node.type === "TSTypeQuery" || node.type === "TSQualifiedName") {
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
if (node.type === "TSAsExpression" || node.type === "TSSatisfiesExpression" || node.type === "TSTypeAssertion" || node.type === "TSNonNullExpression" || node.type === "TSInstantiationExpression") {
|
|
149
|
+
walk(node.expression);
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
switch (node.type) {
|
|
153
|
+
case "BlockStatement":
|
|
154
|
+
{
|
|
155
|
+
const isRootBody = node === fnNode.body;
|
|
156
|
+
if (!isRootBody) {
|
|
157
|
+
pushScope(false);
|
|
158
|
+
}
|
|
159
|
+
for (const stmt of node.body) {
|
|
160
|
+
hoistDeclarations(stmt, true);
|
|
161
|
+
}
|
|
162
|
+
for (const stmt of node.body) {
|
|
163
|
+
walk(stmt);
|
|
164
|
+
}
|
|
165
|
+
if (!isRootBody) {
|
|
166
|
+
popScope();
|
|
167
|
+
}
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
case "VariableDeclaration":
|
|
171
|
+
{
|
|
172
|
+
const isVar = node.kind === "var";
|
|
173
|
+
const targetSet = isVar ? currentScope.varBindings : currentScope.bindings;
|
|
174
|
+
for (const decl of node.declarations) {
|
|
175
|
+
addBindings(decl.id, targetSet);
|
|
176
|
+
if (decl.init) walk(decl.init);
|
|
177
|
+
}
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
case "FunctionDeclaration":
|
|
181
|
+
case "FunctionExpression":
|
|
182
|
+
{
|
|
183
|
+
if (node.id && node.id.name) {
|
|
184
|
+
currentScope.bindings.add(node.id.name);
|
|
185
|
+
}
|
|
186
|
+
pushScope(true);
|
|
187
|
+
if (node.params) {
|
|
188
|
+
for (const param of node.params) {
|
|
189
|
+
addBindings(param, currentScope.bindings);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
walk(node.body);
|
|
193
|
+
popScope();
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
case "ArrowFunctionExpression":
|
|
197
|
+
{
|
|
198
|
+
pushScope(true);
|
|
199
|
+
if (node.params) {
|
|
200
|
+
for (const param of node.params) {
|
|
201
|
+
addBindings(param, currentScope.bindings);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
walk(node.body);
|
|
205
|
+
popScope();
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
case "CatchClause":
|
|
209
|
+
{
|
|
210
|
+
pushScope(false);
|
|
211
|
+
if (node.param) {
|
|
212
|
+
addBindings(node.param, currentScope.bindings);
|
|
213
|
+
}
|
|
214
|
+
walk(node.body);
|
|
215
|
+
popScope();
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
case "ForStatement":
|
|
219
|
+
{
|
|
220
|
+
pushScope(false);
|
|
221
|
+
if (node.init) walk(node.init);
|
|
222
|
+
if (node.test) walk(node.test);
|
|
223
|
+
if (node.update) walk(node.update);
|
|
224
|
+
walk(node.body);
|
|
225
|
+
popScope();
|
|
226
|
+
return;
|
|
227
|
+
}
|
|
228
|
+
case "ForInStatement":
|
|
229
|
+
case "ForOfStatement":
|
|
230
|
+
{
|
|
231
|
+
pushScope(false);
|
|
232
|
+
walk(node.left);
|
|
233
|
+
walk(node.right);
|
|
234
|
+
walk(node.body);
|
|
235
|
+
popScope();
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
case "ClassDeclaration":
|
|
239
|
+
case "ClassExpression":
|
|
240
|
+
{
|
|
241
|
+
if (node.id && node.id.name) {
|
|
242
|
+
currentScope.bindings.add(node.id.name);
|
|
243
|
+
}
|
|
244
|
+
if (node.superClass) walk(node.superClass);
|
|
245
|
+
pushScope(false);
|
|
246
|
+
walk(node.body);
|
|
247
|
+
popScope();
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
250
|
+
case "MemberExpression":
|
|
251
|
+
{
|
|
252
|
+
walk(node.object);
|
|
253
|
+
if (node.computed) {
|
|
254
|
+
walk(node.property);
|
|
255
|
+
}
|
|
256
|
+
return;
|
|
257
|
+
}
|
|
258
|
+
case "Property":
|
|
259
|
+
{
|
|
260
|
+
if (node.computed) {
|
|
261
|
+
walk(node.key);
|
|
262
|
+
}
|
|
263
|
+
walk(node.value);
|
|
264
|
+
return;
|
|
265
|
+
}
|
|
266
|
+
case "MethodDefinition":
|
|
267
|
+
{
|
|
268
|
+
if (node.computed) {
|
|
269
|
+
walk(node.key);
|
|
270
|
+
}
|
|
271
|
+
walk(node.value);
|
|
272
|
+
return;
|
|
273
|
+
}
|
|
274
|
+
case "Identifier":
|
|
275
|
+
{
|
|
276
|
+
resolveIdentifier(node.name);
|
|
277
|
+
return;
|
|
278
|
+
}
|
|
279
|
+
case "JSXElement":
|
|
280
|
+
{
|
|
281
|
+
if (node.openingElement) {
|
|
282
|
+
const nameNode = node.openingElement.name;
|
|
283
|
+
if (nameNode.type === "JSXIdentifier") {
|
|
284
|
+
if (/^[A-Z]/.test(nameNode.name)) {
|
|
285
|
+
resolveIdentifier(nameNode.name);
|
|
286
|
+
}
|
|
287
|
+
} else if (nameNode.type === "JSXMemberExpression") {
|
|
288
|
+
let root = nameNode.object;
|
|
289
|
+
while (root.type === "JSXMemberExpression") {
|
|
290
|
+
root = root.object;
|
|
291
|
+
}
|
|
292
|
+
if (root.type === "JSXIdentifier") {
|
|
293
|
+
resolveIdentifier(root.name);
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
if (node.openingElement.attributes) {
|
|
297
|
+
for (const attr of node.openingElement.attributes) {
|
|
298
|
+
walk(attr);
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
if (node.children) {
|
|
303
|
+
for (const child of node.children) {
|
|
304
|
+
walk(child);
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
return;
|
|
308
|
+
}
|
|
309
|
+
case "JSXAttribute":
|
|
310
|
+
{
|
|
311
|
+
if (node.value) {
|
|
312
|
+
walk(node.value);
|
|
313
|
+
}
|
|
314
|
+
return;
|
|
315
|
+
}
|
|
316
|
+
case "JSXExpressionContainer":
|
|
317
|
+
{
|
|
318
|
+
walk(node.expression);
|
|
319
|
+
return;
|
|
320
|
+
}
|
|
321
|
+
case "BreakStatement":
|
|
322
|
+
case "ContinueStatement":
|
|
323
|
+
case "LabeledStatement":
|
|
324
|
+
{
|
|
325
|
+
if (node.body) walk(node.body);
|
|
326
|
+
return;
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
for (const key of Object.keys(node)) {
|
|
330
|
+
if (key === "start" || key === "end" || key === "loc" || key === "range") continue;
|
|
331
|
+
const child = node[key];
|
|
332
|
+
if (Array.isArray(child)) {
|
|
333
|
+
for (const item of child) {
|
|
334
|
+
walk(item);
|
|
335
|
+
}
|
|
336
|
+
} else if (child && typeof child === "object") {
|
|
337
|
+
walk(child);
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
walk(fnNode.body);
|
|
342
|
+
return Array.from(freeVariables).sort();
|
|
343
|
+
}
|
|
344
|
+
export { getClosureVariables };
|
|
345
|
+
//# sourceMappingURL=scope.mjs.map
|