diff options
| author | littleblack111 <littleblack11111@gmail.com> | 2023-12-21 22:46:53 +0800 |
|---|---|---|
| committer | littleblack111 <littleblack11111@gmail.com> | 2023-12-21 22:46:53 +0800 |
| commit | f06956efd2dc4bf77244a9fcce2b883a00b925af (patch) | |
| tree | 0123cb73ce67f1f4b17e1d6cbabff076ee44e31b /node_modules/@babel/plugin-transform-computed-properties/lib/index.js | |
| parent | 8d980c13970c15b6d2312b6fc4ac51698dd0d220 (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.js | 73 |
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 |
