summaryrefslogtreecommitdiff
path: root/node_modules/terser/lib/size.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/terser/lib/size.js
parent3336b2356ee6152d9c6ae59bd9b87ccbc0958407 (diff)
node: updatemain
Diffstat (limited to 'node_modules/terser/lib/size.js')
-rw-r--r--node_modules/terser/lib/size.js495
1 files changed, 0 insertions, 495 deletions
diff --git a/node_modules/terser/lib/size.js b/node_modules/terser/lib/size.js
deleted file mode 100644
index 3a178c5f..00000000
--- a/node_modules/terser/lib/size.js
+++ /dev/null
@@ -1,495 +0,0 @@
-import {
- AST_Accessor,
- AST_Array,
- AST_Arrow,
- AST_Await,
- AST_BigInt,
- AST_Binary,
- AST_Block,
- AST_Break,
- AST_Call,
- AST_Case,
- AST_Class,
- AST_ClassStaticBlock,
- AST_ClassPrivateProperty,
- AST_ClassProperty,
- AST_ConciseMethod,
- AST_Conditional,
- AST_Const,
- AST_Continue,
- AST_Debugger,
- AST_Default,
- AST_Defun,
- AST_Destructuring,
- AST_Directive,
- AST_Do,
- AST_Dot,
- AST_DotHash,
- AST_EmptyStatement,
- AST_Expansion,
- AST_Export,
- AST_False,
- AST_For,
- AST_ForIn,
- AST_Function,
- AST_Hole,
- AST_If,
- AST_Import,
- AST_ImportMeta,
- AST_Infinity,
- AST_LabeledStatement,
- AST_Let,
- AST_NameMapping,
- AST_NaN,
- AST_New,
- AST_NewTarget,
- AST_Node,
- AST_Null,
- AST_Number,
- AST_Object,
- AST_ObjectKeyVal,
- AST_ObjectGetter,
- AST_ObjectSetter,
- AST_PrivateGetter,
- AST_PrivateMethod,
- AST_PrivateSetter,
- AST_PrivateIn,
- AST_RegExp,
- AST_Return,
- AST_Sequence,
- AST_String,
- AST_Sub,
- AST_Super,
- AST_Switch,
- AST_Symbol,
- AST_SymbolClassProperty,
- AST_SymbolExportForeign,
- AST_SymbolImportForeign,
- AST_SymbolRef,
- AST_SymbolDeclaration,
- AST_TemplateSegment,
- AST_TemplateString,
- AST_This,
- AST_Throw,
- AST_Toplevel,
- AST_True,
- AST_Try,
- AST_Catch,
- AST_Finally,
- AST_Unary,
- AST_Undefined,
- AST_Var,
- AST_VarDef,
- AST_While,
- AST_With,
- AST_Yield,
- walk_parent
-} from "./ast.js";
-import { first_in_statement } from "./utils/first_in_statement.js";
-
-let mangle_options = undefined;
-AST_Node.prototype.size = function (compressor, stack) {
- mangle_options = compressor && compressor._mangle_options;
-
- let size = 0;
- walk_parent(this, (node, info) => {
- size += node._size(info);
-
- // Braceless arrow functions have fake "return" statements
- if (node instanceof AST_Arrow && node.is_braceless()) {
- size += node.body[0].value._size(info);
- return true;
- }
- }, stack || (compressor && compressor.stack));
-
- // just to save a bit of memory
- mangle_options = undefined;
-
- return size;
-};
-
-AST_Node.prototype._size = () => 0;
-
-AST_Debugger.prototype._size = () => 8;
-
-AST_Directive.prototype._size = function () {
- // TODO string encoding stuff
- return 2 + this.value.length;
-};
-
-/** Count commas/semicolons necessary to show a list of expressions/statements */
-const list_overhead = (array) => array.length && array.length - 1;
-
-AST_Block.prototype._size = function () {
- return 2 + list_overhead(this.body);
-};
-
-AST_Toplevel.prototype._size = function() {
- return list_overhead(this.body);
-};
-
-AST_EmptyStatement.prototype._size = () => 1;
-
-AST_LabeledStatement.prototype._size = () => 2; // x:
-
-AST_Do.prototype._size = () => 9;
-
-AST_While.prototype._size = () => 7;
-
-AST_For.prototype._size = () => 8;
-
-AST_ForIn.prototype._size = () => 8;
-// AST_ForOf inherits ^
-
-AST_With.prototype._size = () => 6;
-
-AST_Expansion.prototype._size = () => 3;
-
-const lambda_modifiers = func =>
- (func.is_generator ? 1 : 0) + (func.async ? 6 : 0);
-
-AST_Accessor.prototype._size = function () {
- return lambda_modifiers(this) + 4 + list_overhead(this.argnames) + list_overhead(this.body);
-};
-
-AST_Function.prototype._size = function (info) {
- const first = !!first_in_statement(info);
- return (first * 2) + lambda_modifiers(this) + 12 + list_overhead(this.argnames) + list_overhead(this.body);
-};
-
-AST_Defun.prototype._size = function () {
- return lambda_modifiers(this) + 13 + list_overhead(this.argnames) + list_overhead(this.body);
-};
-
-AST_Arrow.prototype._size = function () {
- let args_and_arrow = 2 + list_overhead(this.argnames);
-
- if (
- !(
- this.argnames.length === 1
- && this.argnames[0] instanceof AST_Symbol
- )
- ) {
- args_and_arrow += 2; // parens around the args
- }
-
- const body_overhead = this.is_braceless() ? 0 : list_overhead(this.body) + 2;
-
- return lambda_modifiers(this) + args_and_arrow + body_overhead;
-};
-
-AST_Destructuring.prototype._size = () => 2;
-
-AST_TemplateString.prototype._size = function () {
- return 2 + (Math.floor(this.segments.length / 2) * 3); /* "${}" */
-};
-
-AST_TemplateSegment.prototype._size = function () {
- return this.value.length;
-};
-
-AST_Return.prototype._size = function () {
- return this.value ? 7 : 6;
-};
-
-AST_Throw.prototype._size = () => 6;
-
-AST_Break.prototype._size = function () {
- return this.label ? 6 : 5;
-};
-
-AST_Continue.prototype._size = function () {
- return this.label ? 9 : 8;
-};
-
-AST_If.prototype._size = () => 4;
-
-AST_Switch.prototype._size = function () {
- return 8 + list_overhead(this.body);
-};
-
-AST_Case.prototype._size = function () {
- return 5 + list_overhead(this.body);
-};
-
-AST_Default.prototype._size = function () {
- return 8 + list_overhead(this.body);
-};
-
-AST_Try.prototype._size = () => 3;
-
-AST_Catch.prototype._size = function () {
- let size = 7 + list_overhead(this.body);
- if (this.argname) {
- size += 2;
- }
- return size;
-};
-
-AST_Finally.prototype._size = function () {
- return 7 + list_overhead(this.body);
-};
-
-AST_Var.prototype._size = function () {
- return 4 + list_overhead(this.definitions);
-};
-
-AST_Let.prototype._size = function () {
- return 4 + list_overhead(this.definitions);
-};
-
-AST_Const.prototype._size = function () {
- return 6 + list_overhead(this.definitions);
-};
-
-AST_VarDef.prototype._size = function () {
- return this.value ? 1 : 0;
-};
-
-AST_NameMapping.prototype._size = function () {
- // foreign name isn't mangled
- return this.name ? 4 : 0;
-};
-
-AST_Import.prototype._size = function () {
- // import
- let size = 6;
-
- if (this.imported_name) size += 1;
-
- // from
- if (this.imported_name || this.imported_names) size += 5;
-
- // braces, and the commas
- if (this.imported_names) {
- size += 2 + list_overhead(this.imported_names);
- }
-
- return size;
-};
-
-AST_ImportMeta.prototype._size = () => 11;
-
-AST_Export.prototype._size = function () {
- let size = 7 + (this.is_default ? 8 : 0);
-
- if (this.exported_value) {
- size += this.exported_value._size();
- }
-
- if (this.exported_names) {
- // Braces and commas
- size += 2 + list_overhead(this.exported_names);
- }
-
- if (this.module_name) {
- // "from "
- size += 5;
- }
-
- return size;
-};
-
-AST_Call.prototype._size = function () {
- if (this.optional) {
- return 4 + list_overhead(this.args);
- }
- return 2 + list_overhead(this.args);
-};
-
-AST_New.prototype._size = function () {
- return 6 + list_overhead(this.args);
-};
-
-AST_Sequence.prototype._size = function () {
- return list_overhead(this.expressions);
-};
-
-AST_Dot.prototype._size = function () {
- if (this.optional) {
- return this.property.length + 2;
- }
- return this.property.length + 1;
-};
-
-AST_DotHash.prototype._size = function () {
- if (this.optional) {
- return this.property.length + 3;
- }
- return this.property.length + 2;
-};
-
-AST_Sub.prototype._size = function () {
- return this.optional ? 4 : 2;
-};
-
-AST_Unary.prototype._size = function () {
- if (this.operator === "typeof") return 7;
- if (this.operator === "void") return 5;
- return this.operator.length;
-};
-
-AST_Binary.prototype._size = function (info) {
- if (this.operator === "in") return 4;
-
- let size = this.operator.length;
-
- if (
- (this.operator === "+" || this.operator === "-")
- && this.right instanceof AST_Unary && this.right.operator === this.operator
- ) {
- // 1+ +a > needs space between the +
- size += 1;
- }
-
- if (this.needs_parens(info)) {
- size += 2;
- }
-
- return size;
-};
-
-AST_Conditional.prototype._size = () => 3;
-
-AST_Array.prototype._size = function () {
- return 2 + list_overhead(this.elements);
-};
-
-AST_Object.prototype._size = function (info) {
- let base = 2;
- if (first_in_statement(info)) {
- base += 2; // parens
- }
- return base + list_overhead(this.properties);
-};
-
-/*#__INLINE__*/
-const key_size = key =>
- typeof key === "string" ? key.length : 0;
-
-AST_ObjectKeyVal.prototype._size = function () {
- return key_size(this.key) + 1;
-};
-
-/*#__INLINE__*/
-const static_size = is_static => is_static ? 7 : 0;
-
-AST_ObjectGetter.prototype._size = function () {
- return 5 + static_size(this.static) + key_size(this.key);
-};
-
-AST_ObjectSetter.prototype._size = function () {
- return 5 + static_size(this.static) + key_size(this.key);
-};
-
-AST_ConciseMethod.prototype._size = function () {
- return static_size(this.static) + key_size(this.key) + lambda_modifiers(this);
-};
-
-AST_PrivateMethod.prototype._size = function () {
- return AST_ConciseMethod.prototype._size.call(this) + 1;
-};
-
-AST_PrivateGetter.prototype._size = AST_PrivateSetter.prototype._size = function () {
- return AST_ConciseMethod.prototype._size.call(this) + 4;
-};
-
-AST_PrivateIn.prototype._size = function () {
- return 5; // "#", and " in "
-};
-
-AST_Class.prototype._size = function () {
- return (
- (this.name ? 8 : 7)
- + (this.extends ? 8 : 0)
- );
-};
-
-AST_ClassStaticBlock.prototype._size = function () {
- // "static{}" + semicolons
- return 8 + list_overhead(this.body);
-};
-
-AST_ClassProperty.prototype._size = function () {
- return (
- static_size(this.static)
- + (typeof this.key === "string" ? this.key.length + 2 : 0)
- + (this.value ? 1 : 0)
- );
-};
-
-AST_ClassPrivateProperty.prototype._size = function () {
- return AST_ClassProperty.prototype._size.call(this) + 1;
-};
-
-AST_Symbol.prototype._size = function () {
- if (!(mangle_options && this.thedef && !this.thedef.unmangleable(mangle_options))) {
- return this.name.length;
- } else {
- return 1;
- }
-};
-
-// TODO take propmangle into account
-AST_SymbolClassProperty.prototype._size = function () {
- return this.name.length;
-};
-
-AST_SymbolRef.prototype._size = AST_SymbolDeclaration.prototype._size = function () {
- if (this.name === "arguments") return 9;
-
- return AST_Symbol.prototype._size.call(this);
-};
-
-AST_NewTarget.prototype._size = () => 10;
-
-AST_SymbolImportForeign.prototype._size = function () {
- return this.name.length;
-};
-
-AST_SymbolExportForeign.prototype._size = function () {
- return this.name.length;
-};
-
-AST_This.prototype._size = () => 4;
-
-AST_Super.prototype._size = () => 5;
-
-AST_String.prototype._size = function () {
- return this.value.length + 2;
-};
-
-AST_Number.prototype._size = function () {
- const { value } = this;
- if (value === 0) return 1;
- if (value > 0 && Math.floor(value) === value) {
- return Math.floor(Math.log10(value) + 1);
- }
- return value.toString().length;
-};
-
-AST_BigInt.prototype._size = function () {
- return this.value.length;
-};
-
-AST_RegExp.prototype._size = function () {
- return this.value.toString().length;
-};
-
-AST_Null.prototype._size = () => 4;
-
-AST_NaN.prototype._size = () => 3;
-
-AST_Undefined.prototype._size = () => 6; // "void 0"
-
-AST_Hole.prototype._size = () => 0; // comma is taken into account by list_overhead()
-
-AST_Infinity.prototype._size = () => 8;
-
-AST_True.prototype._size = () => 4;
-
-AST_False.prototype._size = () => 5;
-
-AST_Await.prototype._size = () => 6;
-
-AST_Yield.prototype._size = () => 6;