summaryrefslogtreecommitdiff
path: root/node_modules/babel-plugin-minify-simplify/lib/assignment-expression.js
diff options
context:
space:
mode:
authorlittleblack111 <littleblack11111@gmail.com>2026-05-18 23:10:59 +0800
committerlittleblack111 <littleblack11111@gmail.com>2026-05-18 23:41:44 +0800
commitfc87c009806dcc98867f6b58efe29b042aa01dee (patch)
tree8f59b3f4a5b66e9dfef2d40c8d318e258a521228 /node_modules/babel-plugin-minify-simplify/lib/assignment-expression.js
parent3336b2356ee6152d9c6ae59bd9b87ccbc0958407 (diff)
node: updatemain
Diffstat (limited to 'node_modules/babel-plugin-minify-simplify/lib/assignment-expression.js')
-rw-r--r--node_modules/babel-plugin-minify-simplify/lib/assignment-expression.js96
1 files changed, 0 insertions, 96 deletions
diff --git a/node_modules/babel-plugin-minify-simplify/lib/assignment-expression.js b/node_modules/babel-plugin-minify-simplify/lib/assignment-expression.js
deleted file mode 100644
index 3f9b0ce4..00000000
--- a/node_modules/babel-plugin-minify-simplify/lib/assignment-expression.js
+++ /dev/null
@@ -1,96 +0,0 @@
-"use strict";
-
-const operators = new Set(["+", "-", "*", "%", "<<", ">>", ">>>", "&", "|", "^", "/", "**"]);
-const updateOperators = new Set(["+", "-"]);
-
-module.exports = t => {
- function simplify(path) {
- const rightExpr = path.get("right");
- const leftExpr = path.get("left");
-
- if (path.node.operator !== "=") {
- return;
- }
-
- const canBeUpdateExpression = rightExpr.get("right").isNumericLiteral() && rightExpr.get("right").node.value === 1 && updateOperators.has(rightExpr.node.operator);
-
- if (leftExpr.isMemberExpression()) {
- const leftPropNames = getPropNames(leftExpr);
- const rightPropNames = getPropNames(rightExpr.get("left"));
-
- if (!leftPropNames || leftPropNames.indexOf(undefined) > -1 || !rightPropNames || rightPropNames.indexOf(undefined) > -1 || !operators.has(rightExpr.node.operator) || !areArraysEqual(leftPropNames, rightPropNames)) {
- return;
- }
- } else {
- if (!rightExpr.isBinaryExpression() || !operators.has(rightExpr.node.operator) || leftExpr.node.name !== rightExpr.node.left.name) {
- return;
- }
- }
-
- let newExpression; // special case x=x+1 --> ++x
-
- if (canBeUpdateExpression) {
- newExpression = t.updateExpression(rightExpr.node.operator + rightExpr.node.operator, t.clone(leftExpr.node), true
- /* prefix */
- );
- } else {
- newExpression = t.assignmentExpression(rightExpr.node.operator + "=", t.clone(leftExpr.node), t.clone(rightExpr.node.right));
- }
-
- path.replaceWith(newExpression);
- }
-
- return {
- simplify
- };
-};
-
-function areArraysEqual(arr1, arr2) {
- return arr1.every((value, index) => {
- return String(value) === String(arr2[index]);
- });
-}
-
-function getPropNames(path) {
- if (!path.isMemberExpression()) {
- return;
- }
-
- let obj = path.get("object");
- const prop = path.get("property");
- const propNames = [getName(prop.node)];
-
- while (obj.type === "MemberExpression") {
- const node = obj.get("property").node;
-
- if (node) {
- propNames.push(getName(node));
- }
-
- obj = obj.get("object");
- }
-
- propNames.push(getName(obj.node));
- return propNames;
-}
-
-function getName(node) {
- if (node.type === "ThisExpression") {
- return "this";
- }
-
- if (node.type === "Super") {
- return "super";
- }
-
- if (node.type === "NullLiteral") {
- return "null";
- } // augment identifiers so that they don't match
- // string/number literals
- // but still match against each other
-
-
- return node.name ? node.name + "_" : node.value
- /* Literal */
- ;
-} \ No newline at end of file