diff options
Diffstat (limited to 'node_modules/terser/lib/size.js')
| -rw-r--r-- | node_modules/terser/lib/size.js | 495 |
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; |
