summaryrefslogtreecommitdiff
path: root/node_modules/@babel/plugin-transform-computed-properties/lib/index.js
diff options
context:
space:
mode:
authorlittleblack111 <littleblack11111@gmail.com>2023-12-21 22:46:53 +0800
committerlittleblack111 <littleblack11111@gmail.com>2023-12-21 22:46:53 +0800
commitf06956efd2dc4bf77244a9fcce2b883a00b925af (patch)
tree0123cb73ce67f1f4b17e1d6cbabff076ee44e31b /node_modules/@babel/plugin-transform-computed-properties/lib/index.js
parent8d980c13970c15b6d2312b6fc4ac51698dd0d220 (diff)
updated node modules
Diffstat (limited to 'node_modules/@babel/plugin-transform-computed-properties/lib/index.js')
-rw-r--r--node_modules/@babel/plugin-transform-computed-properties/lib/index.js73
1 files changed, 40 insertions, 33 deletions
diff --git a/node_modules/@babel/plugin-transform-computed-properties/lib/index.js b/node_modules/@babel/plugin-transform-computed-properties/lib/index.js
index 8b5d93a3..08676e2a 100644
--- a/node_modules/@babel/plugin-transform-computed-properties/lib/index.js
+++ b/node_modules/@babel/plugin-transform-computed-properties/lib/index.js
@@ -17,12 +17,15 @@ var _template = require("@babel/template");
`;
DefineAccessorHelper._compact = true;
}
-var _default = (0, _helperPluginUtils.declare)((api, options) => {
+var _default = exports.default = (0, _helperPluginUtils.declare)((api, options) => {
var _api$assumption;
api.assertVersion(7);
const setComputedProperties = (_api$assumption = api.assumption("setComputedProperties")) != null ? _api$assumption : options.loose;
const pushComputedProps = setComputedProperties ? pushComputedPropsLoose : pushComputedPropsSpec;
- function buildDefineAccessor(state, type, obj, key, fn) {
+ function buildDefineAccessor(state, obj, prop) {
+ const type = prop.kind;
+ const key = !prop.computed && _core.types.isIdentifier(prop.key) ? _core.types.stringLiteral(prop.key.name) : prop.key;
+ const fn = getValue(prop);
{
let helper;
if (state.availableHelper("defineAccessor")) {
@@ -53,29 +56,23 @@ var _default = (0, _helperPluginUtils.declare)((api, options) => {
function pushAssign(objId, prop, body) {
body.push(_core.types.expressionStatement(_core.types.assignmentExpression("=", _core.types.memberExpression(_core.types.cloneNode(objId), prop.key, prop.computed || _core.types.isLiteral(prop.key)), getValue(prop))));
}
- function pushAccessorDefine({
- body,
- computedProps,
- initPropExpression,
- objId,
- state
- }, prop) {
- const kind = prop.kind;
- const key = !prop.computed && _core.types.isIdentifier(prop.key) ? _core.types.stringLiteral(prop.key.name) : prop.key;
- const value = getValue(prop);
- if (computedProps.length === 1) {
- return buildDefineAccessor(state, kind, initPropExpression, key, value);
- } else {
- body.push(_core.types.expressionStatement(buildDefineAccessor(state, kind, _core.types.cloneNode(objId), key, value)));
- }
- }
function pushComputedPropsLoose(info) {
- for (const prop of info.computedProps) {
+ const {
+ computedProps,
+ state,
+ initPropExpression,
+ objId,
+ body
+ } = info;
+ for (const prop of computedProps) {
if (_core.types.isObjectMethod(prop) && (prop.kind === "get" || prop.kind === "set")) {
- const single = pushAccessorDefine(info, prop);
- if (single) return single;
+ if (computedProps.length === 1) {
+ return buildDefineAccessor(state, initPropExpression, prop);
+ } else {
+ body.push(_core.types.expressionStatement(buildDefineAccessor(state, _core.types.cloneNode(objId), prop)));
+ }
} else {
- pushAssign(_core.types.cloneNode(info.objId), prop, info.body);
+ pushAssign(_core.types.cloneNode(objId), prop, body);
}
}
}
@@ -86,19 +83,28 @@ var _default = (0, _helperPluginUtils.declare)((api, options) => {
computedProps,
state
} = info;
+ const CHUNK_LENGTH_CAP = 10;
+ let currentChunk = null;
+ const computedPropsChunks = [];
for (const prop of computedProps) {
- const key = _core.types.toComputedKey(prop);
- if (_core.types.isObjectMethod(prop) && (prop.kind === "get" || prop.kind === "set")) {
- const single = pushAccessorDefine(info, prop);
- if (single) return single;
- } else {
- const value = getValue(prop);
- if (computedProps.length === 1) {
- return _core.types.callExpression(state.addHelper("defineProperty"), [info.initPropExpression, key, value]);
+ if (!currentChunk || currentChunk.length === CHUNK_LENGTH_CAP) {
+ currentChunk = [];
+ computedPropsChunks.push(currentChunk);
+ }
+ currentChunk.push(prop);
+ }
+ for (const chunk of computedPropsChunks) {
+ const single = computedPropsChunks.length === 1;
+ let node = single ? info.initPropExpression : _core.types.cloneNode(objId);
+ for (const prop of chunk) {
+ if (_core.types.isObjectMethod(prop) && (prop.kind === "get" || prop.kind === "set")) {
+ node = buildDefineAccessor(info.state, node, prop);
} else {
- body.push(_core.types.expressionStatement(_core.types.callExpression(state.addHelper("defineProperty"), [_core.types.cloneNode(objId), key, value])));
+ node = _core.types.callExpression(state.addHelper("defineProperty"), [node, _core.types.toComputedKey(prop), getValue(prop)]);
}
}
+ if (single) return node;
+ body.push(_core.types.expressionStatement(node));
}
}
return {
@@ -148,7 +154,9 @@ var _default = (0, _helperPluginUtils.declare)((api, options) => {
if (single) {
path.replaceWith(single);
} else {
- body.push(_core.types.expressionStatement(_core.types.cloneNode(objId)));
+ if (setComputedProperties) {
+ body.push(_core.types.expressionStatement(_core.types.cloneNode(objId)));
+ }
path.replaceWithMultiple(body);
}
}
@@ -156,6 +164,5 @@ var _default = (0, _helperPluginUtils.declare)((api, options) => {
}
};
});
-exports.default = _default;
//# sourceMappingURL=index.js.map