@farm.js/react 0.1.0-beta.10 → 0.1.0-beta.11
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/README.md +20 -8
- package/dist/compiler-runtime.cjs +34 -37
- package/dist/compiler-runtime.cjs.map +1 -1
- package/dist/compiler-runtime.mjs +34 -37
- package/dist/compiler-runtime.mjs.map +1 -1
- package/dist/vite.cjs +19 -8
- package/dist/vite.cjs.map +1 -1
- package/dist/vite.mjs +19 -8
- package/dist/vite.mjs.map +1 -1
- package/package.json +2 -2
package/dist/vite.cjs
CHANGED
|
@@ -1133,6 +1133,18 @@ function rewriteKeyedArrayReorderHints(root, hintedStateIndices, statesBySetter,
|
|
|
1133
1133
|
stateIndices
|
|
1134
1134
|
};
|
|
1135
1135
|
}
|
|
1136
|
+
function normalizeSafeKeyedFilterPredicate(predicate, safeGlobals) {
|
|
1137
|
+
if (!core.types.isArrowFunctionExpression(predicate) || predicate.async || predicate.generator || predicate.params.length !== 1 || !core.types.isIdentifier(predicate.params[0]) || core.types.isBlockStatement(predicate.body) && predicate.body.directives.length > 0) {
|
|
1138
|
+
return void 0;
|
|
1139
|
+
}
|
|
1140
|
+
const returned = returnedExpression(predicate);
|
|
1141
|
+
if (!returned || validateDerivedExpression(returned, safeGlobals) !== void 0) {
|
|
1142
|
+
return void 0;
|
|
1143
|
+
}
|
|
1144
|
+
const normalized = core.types.cloneNode(predicate, true);
|
|
1145
|
+
normalized.body = core.types.cloneNode(returned, true);
|
|
1146
|
+
return normalized;
|
|
1147
|
+
}
|
|
1136
1148
|
function keyedArrayReorderPipeline(expression, parameterName, safeGlobals) {
|
|
1137
1149
|
const outerSteps = [];
|
|
1138
1150
|
let current = expression;
|
|
@@ -1147,10 +1159,8 @@ function keyedArrayReorderPipeline(expression, parameterName, safeGlobals) {
|
|
|
1147
1159
|
outerSteps.push({ callback, kind: "map" });
|
|
1148
1160
|
} else if (methodName === "filter") {
|
|
1149
1161
|
if (current.arguments.length !== 1) return void 0;
|
|
1150
|
-
const predicate = current.arguments[0];
|
|
1151
|
-
if (!
|
|
1152
|
-
return void 0;
|
|
1153
|
-
}
|
|
1162
|
+
const predicate = normalizeSafeKeyedFilterPredicate(current.arguments[0], safeGlobals);
|
|
1163
|
+
if (!predicate) return void 0;
|
|
1154
1164
|
outerSteps.push({ kind: "filter", predicate });
|
|
1155
1165
|
} else if (methodName === "slice") {
|
|
1156
1166
|
if (current.arguments.length < 1 || current.arguments.length > 2) return void 0;
|
|
@@ -2388,10 +2398,11 @@ function rewriteKeyedArrayFilterHints(root, hintedStateIndices, statesBySetter,
|
|
|
2388
2398
|
}) || !core.types.isIdentifier(updateExpression.callee.property, { name: "filter" })) {
|
|
2389
2399
|
return;
|
|
2390
2400
|
}
|
|
2391
|
-
const predicate =
|
|
2392
|
-
|
|
2393
|
-
|
|
2394
|
-
|
|
2401
|
+
const predicate = normalizeSafeKeyedFilterPredicate(
|
|
2402
|
+
updateExpression.arguments[0],
|
|
2403
|
+
safeGlobals
|
|
2404
|
+
);
|
|
2405
|
+
if (!predicate) return;
|
|
2395
2406
|
const previous = core.types.cloneNode(updater.params[0]);
|
|
2396
2407
|
const filterMethod = path.scope.generateUidIdentifier("farmFilter");
|
|
2397
2408
|
path.node.arguments[0] = core.types.arrowFunctionExpression(
|