uglify-es
Advanced tools
Comparing version 3.1.3 to 3.1.4
@@ -7,3 +7,3 @@ { | ||
"license": "BSD-2-Clause", | ||
"version": "3.1.3", | ||
"version": "3.1.4", | ||
"engines": { | ||
@@ -31,3 +31,3 @@ "node": ">=0.8.0" | ||
"commander": "~2.11.0", | ||
"source-map": "~0.5.1" | ||
"source-map": "~0.6.1" | ||
}, | ||
@@ -34,0 +34,0 @@ "devDependencies": { |
285
README.md
@@ -154,7 +154,7 @@ uglify-es | ||
- `--source-map "root='<URL>'"` to pass the URL where the original files can be found. | ||
- `--source-map "url='<URL>'"` to specify the URL where the source map can be found. | ||
Otherwise UglifyJS assumes HTTP `X-SourceMap` is being used and will omit the | ||
`//# sourceMappingURL=` directive. | ||
- `--source-map "url='<URL>'"` to specify the URL where the source map can be found. | ||
For example: | ||
@@ -205,7 +205,5 @@ | ||
- `toplevel` — mangle names declared in the top level scope (disabled by | ||
default). | ||
- `toplevel` (default `false`) -- mangle names declared in the top level scope. | ||
- `eval` — mangle names visible in scopes where `eval` or `with` are used | ||
(disabled by default). | ||
- `eval` (default `false`) -- mangle names visible in scopes where `eval` or `with` are used. | ||
@@ -516,2 +514,5 @@ When mangling is enabled but you want to prevent certain names from being | ||
- `keep_fnames` (default: `false`) - pass `true` to prevent discarding or mangling | ||
of function names. Useful for code relying on `Function.prototype.name`. | ||
## Minify options structure | ||
@@ -598,6 +599,9 @@ | ||
- `bare_returns` (default `false`) -- support top level `return` statements | ||
- `ecma` (default: `8`) -- specify one of `5`, `6`, `7` or `8`. Note: this setting | ||
is not presently enforced except for ES8 optional trailing commas in function | ||
parameter lists and calls with `ecma` `8`. | ||
- `html5_comments` (default `true`) | ||
- `shebang` (default `true`) -- support `#!command` as the first line | ||
@@ -607,120 +611,78 @@ | ||
- `sequences` (default: true) -- join consecutive simple statements using the | ||
comma operator. May be set to a positive integer to specify the maximum number | ||
of consecutive comma sequences that will be generated. If this option is set to | ||
`true` then the default `sequences` limit is `200`. Set option to `false` or `0` | ||
to disable. The smallest `sequences` length is `2`. A `sequences` value of `1` | ||
is grandfathered to be equivalent to `true` and as such means `200`. On rare | ||
occasions the default sequences limit leads to very slow compress times in which | ||
case a value of `20` or less is recommended. | ||
- `arrows` (default `true`) -- Converts `()=>{return x}` to `()=>x`. Class | ||
and object literal methods will also be converted to arrow expressions if | ||
the resultant code is shorter: `m(){return x}` becomes `m:()=>x`. | ||
This transform requires that the `ecma` compress option is set to `6` or greater. | ||
- `properties` -- rewrite property access using the dot notation, for | ||
example `foo["bar"] → foo.bar` | ||
- `booleans` (default: `true`) -- various optimizations for boolean context, for example `!!a | ||
? b : c → a ? b : c` | ||
- `dead_code` -- remove unreachable code | ||
- `cascade` (default: `true`) -- small optimization for sequences, transform `x, x` into `x` | ||
and `x = something(), x` into `x = something()` | ||
- `drop_debugger` -- remove `debugger;` statements | ||
- `collapse_vars` (default: `true`) -- Collapse single-use non-constant variables - side | ||
effects permitting. | ||
- `unsafe` (default: false) -- apply "unsafe" transformations (discussion below) | ||
- `unsafe_comps` (default: false) -- Reverse `<` and `<=` to `>` and `>=` to | ||
allow improved compression. This might be unsafe when an at least one of two | ||
operands is an object with computed values due the use of methods like `get`, | ||
or `valueOf`. This could cause change in execution order after operands in the | ||
comparison are switching. Compression only works if both `comparisons` and | ||
`unsafe_comps` are both set to true. | ||
- `unsafe_Func` (default: false) -- compress and mangle `Function(args, code)` | ||
when both `args` and `code` are string literals. | ||
- `unsafe_math` (default: false) -- optimize numerical expressions like | ||
`2 * x * 3` into `6 * x`, which may give imprecise floating point results. | ||
- `unsafe_methods` (default: false) -- Converts `{ m: function(){} }` to | ||
`{ m(){} }`. `ecma` must be set to `6` or greater to enable this transform. | ||
If `unsafe_methods` is a RegExp then key/value pairs with keys matching the | ||
RegExp will be converted to concise methods. | ||
Note: if enabled there is a risk of getting a "`<method name>` is not a | ||
constructor" TypeError should any code try to `new` the former function. | ||
- `unsafe_proto` (default: false) -- optimize expressions like | ||
`Array.prototype.slice.call(a)` into `[].slice.call(a)` | ||
- `unsafe_regexp` (default: false) -- enable substitutions of variables with | ||
`RegExp` values the same way as if they are constants. | ||
- `conditionals` -- apply optimizations for `if`-s and conditional | ||
expressions | ||
- `comparisons` -- apply certain optimizations to binary nodes, for example: | ||
- `comparisons` (default: `true`) -- apply certain optimizations to binary nodes, for example: | ||
`!(a <= b) → a > b` (only when `unsafe_comps`), attempts to negate binary | ||
nodes, e.g. `a = !b && !c && !d && !e → a=!(b||c||d||e)` etc. | ||
- `evaluate` -- attempt to evaluate constant expressions | ||
- `computed_props` -- default `true`. Transforms constant computed properties | ||
into regular ones: `{["computed"]: 1}` is converted into `{computed: 1}`. | ||
- `arrows` (default `true`) -- Converts `()=>{return x}` to `()=>x`. Class | ||
and object literal methods will also be converted to arrow expressions if | ||
the resultant code is shorter: `m(){return x}` becomes `m:()=>x`. | ||
This transform requires that the `ecma` compress option is set to `6` or greater. | ||
- `conditionals` (default: `true`) -- apply optimizations for `if`-s and conditional | ||
expressions | ||
- `unsafe_arrows` (default `false`) -- Convert ES5 style anonymous function | ||
expressions to arrow functions if the function body does not reference `this`. | ||
Note: it is not always safe to perform this conversion if code relies on the | ||
the function having a `prototype`, which arrow functions lack. | ||
This transform requires that the `ecma` compress option is set to `6` or greater. | ||
- `dead_code` (default: `true`) -- remove unreachable code | ||
- `booleans` -- various optimizations for boolean context, for example `!!a | ||
? b : c → a ? b : c` | ||
- `drop_console` (default: `false`) -- default `false`. Pass `true` to discard calls to | ||
`console.*` functions. If you wish to drop a specific function call | ||
such as `console.info` and/or retain side effects from function arguments | ||
after dropping the function call then use `pure_funcs` instead. | ||
- `typeofs` -- default `true`. Transforms `typeof foo == "undefined"` into | ||
`foo === void 0`. Note: recommend to set this value to `false` for IE10 and | ||
earlier versions due to known issues. | ||
- `drop_debugger` (default: `true`) -- remove `debugger;` statements | ||
- `loops` -- optimizations for `do`, `while` and `for` loops when we can | ||
statically determine the condition | ||
- `ecma` -- default `5`. Pass `6` or greater to enable `compress` options that | ||
will transform ES5 code into smaller ES6+ equivalent forms. | ||
- `unused` -- drop unreferenced functions and variables (simple direct variable | ||
assignments do not count as references unless set to `"keep_assign"`) | ||
- `evaluate` (default: `true`) -- attempt to evaluate constant expressions | ||
- `toplevel` -- drop unreferenced functions (`"funcs"`) and/or variables (`"vars"`) | ||
in the top level scope (`false` by default, `true` to drop both unreferenced | ||
functions and variables) | ||
- `expression` (default: `false`) -- default `false`. Pass `true` to preserve completion values | ||
from terminal statements without `return`, e.g. in bookmarklets. | ||
- `top_retain` -- prevent specific toplevel functions and variables from `unused` | ||
removal (can be array, comma-separated, RegExp or function. Implies `toplevel`) | ||
- `global_defs` (default: `{}`) -- see [conditional compilation](#conditional-compilation) | ||
- `hoist_funs` -- hoist function declarations | ||
- `hoist_funs` (default: `true`) -- hoist function declarations | ||
- `hoist_vars` (default: false) -- hoist `var` declarations (this is `false` | ||
- `hoist_vars` (default: `false`) -- hoist `var` declarations (this is `false` | ||
by default because it seems to increase the size of the output in general) | ||
- `if_return` -- optimizations for if/return and if/continue | ||
- `if_return` (default: `true`) -- optimizations for if/return and if/continue | ||
- `inline` -- embed simple functions | ||
- `inline` (default: `true`) -- embed simple functions | ||
- `join_vars` -- join consecutive `var` statements | ||
- `join_vars` (default: `true`) -- join consecutive `var` statements | ||
- `cascade` -- small optimization for sequences, transform `x, x` into `x` | ||
and `x = something(), x` into `x = something()` | ||
- `keep_fargs` (default: `true`) -- default `true`. Prevents the | ||
compressor from discarding unused function arguments. You need this | ||
for code which relies on `Function.length`. | ||
- `collapse_vars` -- Collapse single-use non-constant variables - side | ||
effects permitting. | ||
- `keep_infinity` (default: `false`) -- default `false`. Pass `true` to prevent `Infinity` from | ||
being compressed into `1/0`, which may cause performance issues on Chrome. | ||
- `reduce_vars` -- Improve optimization on variables assigned with and | ||
used as constant values. | ||
- `loops` (default: `true`) -- optimizations for `do`, `while` and `for` loops when we can | ||
statically determine the condition | ||
- `warnings` -- display warnings when dropping unreachable code or unused | ||
declarations etc. | ||
- `negate_iife` -- negate "Immediately-Called Function Expressions" | ||
- `negate_iife` (default: `true`) -- negate "Immediately-Called Function Expressions" | ||
where the return value is discarded, to avoid the parens that the | ||
code generator would insert. | ||
- `pure_getters` -- the default is `false`. If you pass `true` for | ||
this, UglifyJS will assume that object property access | ||
(e.g. `foo.bar` or `foo["bar"]`) doesn't have any side effects. | ||
Specify `"strict"` to treat `foo.bar` as side-effect-free only when | ||
`foo` is certain to not throw, i.e. not `null` or `undefined`. | ||
- `passes` (default: `1`) -- The maximum number of times to run compress. | ||
In some cases more than one pass leads to further compressed code. Keep in | ||
mind more passes will take more time. | ||
- `pure_funcs` -- default `null`. You can pass an array of names and | ||
- `properties` (default: `true`) -- rewrite property access using the dot notation, for | ||
example `foo["bar"] → foo.bar` | ||
- `pure_funcs` (default: `null`) -- You can pass an array of names and | ||
UglifyJS will assume that those functions do not produce side | ||
@@ -736,26 +698,21 @@ effects. DANGER: will not check if the name is redefined in scope. | ||
- `drop_console` -- default `false`. Pass `true` to discard calls to | ||
`console.*` functions. If you wish to drop a specific function call | ||
such as `console.info` and/or retain side effects from function arguments | ||
after dropping the function call then use `pure_funcs` instead. | ||
- `pure_getters` (default: `"strict"`) -- If you pass `true` for | ||
this, UglifyJS will assume that object property access | ||
(e.g. `foo.bar` or `foo["bar"]`) doesn't have any side effects. | ||
Specify `"strict"` to treat `foo.bar` as side-effect-free only when | ||
`foo` is certain to not throw, i.e. not `null` or `undefined`. | ||
- `expression` -- default `false`. Pass `true` to preserve completion values | ||
from terminal statements without `return`, e.g. in bookmarklets. | ||
- `reduce_vars` (default: `true`) -- Improve optimization on variables assigned with and | ||
used as constant values. | ||
- `keep_fargs` -- default `true`. Prevents the | ||
compressor from discarding unused function arguments. You need this | ||
for code which relies on `Function.length`. | ||
- `sequences` (default: `true`) -- join consecutive simple statements using the | ||
comma operator. May be set to a positive integer to specify the maximum number | ||
of consecutive comma sequences that will be generated. If this option is set to | ||
`true` then the default `sequences` limit is `200`. Set option to `false` or `0` | ||
to disable. The smallest `sequences` length is `2`. A `sequences` value of `1` | ||
is grandfathered to be equivalent to `true` and as such means `200`. On rare | ||
occasions the default sequences limit leads to very slow compress times in which | ||
case a value of `20` or less is recommended. | ||
- `keep_fnames` -- default `false`. Pass `true` to prevent the | ||
compressor from discarding function names. Useful for code relying on | ||
`Function.prototype.name`. See also: the `keep_fnames` [mangle option](#mangle). | ||
- `passes` -- default `1`. The maximum number of times to run compress. | ||
In some cases more than one pass leads to further compressed code. Keep in | ||
mind more passes will take more time. | ||
- `keep_infinity` -- default `false`. Pass `true` to prevent `Infinity` from | ||
being compressed into `1/0`, which may cause performance issues on Chrome. | ||
- `side_effects` -- default `true`. Pass `false` to disable potentially dropping | ||
- `side_effects` (default: `true`) -- default `true`. Pass `false` to disable potentially dropping | ||
functions marked as "pure". A function call is marked as "pure" if a comment | ||
@@ -765,7 +722,52 @@ annotation `/*@__PURE__*/` or `/*#__PURE__*/` immediately precedes the call. For | ||
- `ecma` -- default `5`. Pass `6` or greater to enable `compress` options that | ||
will transform ES5 code into smaller ES6+ equivalent forms. | ||
- `switches` (default: `true`) -- de-duplicate and remove unreachable `switch` branches | ||
- `toplevel` (default: `false`) -- drop unreferenced functions (`"funcs"`) and/or variables (`"vars"`) | ||
in the top level scope (`false` by default, `true` to drop both unreferenced | ||
functions and variables) | ||
- `top_retain` (default: `null`) -- prevent specific toplevel functions and variables from `unused` | ||
removal (can be array, comma-separated, RegExp or function. Implies `toplevel`) | ||
- `typeofs` (default: `true`) -- default `true`. Transforms `typeof foo == "undefined"` into | ||
`foo === void 0`. Note: recommend to set this value to `false` for IE10 and | ||
earlier versions due to known issues. | ||
- `unsafe_arrows` (default `false`) -- Convert ES5 style anonymous function | ||
expressions to arrow functions if the function body does not reference `this`. | ||
Note: it is not always safe to perform this conversion if code relies on the | ||
the function having a `prototype`, which arrow functions lack. | ||
This transform requires that the `ecma` compress option is set to `6` or greater. | ||
- `unsafe_comps` (default: `false`) -- Reverse `<` and `<=` to `>` and `>=` to | ||
allow improved compression. This might be unsafe when an at least one of two | ||
operands is an object with computed values due the use of methods like `get`, | ||
or `valueOf`. This could cause change in execution order after operands in the | ||
comparison are switching. Compression only works if both `comparisons` and | ||
`unsafe_comps` are both set to true. | ||
- `unsafe` (default: `false`) -- apply "unsafe" transformations (discussion below) | ||
- `unsafe_Func` (default: `false`) -- compress and mangle `Function(args, code)` | ||
when both `args` and `code` are string literals. | ||
- `unsafe_math` (default: `false`) -- optimize numerical expressions like | ||
`2 * x * 3` into `6 * x`, which may give imprecise floating point results. | ||
- `unsafe_proto` (default: `false`) -- optimize expressions like | ||
`Array.prototype.slice.call(a)` into `[].slice.call(a)` | ||
- `unsafe_regexp` (default: `false`) -- enable substitutions of variables with | ||
`RegExp` values the same way as if they are constants. | ||
- `unused` (default: `true`) -- drop unreferenced functions and variables (simple direct variable | ||
assignments do not count as references unless set to `"keep_assign"`) | ||
- `warnings` (default: `false`) -- display warnings when dropping unreachable code or unused | ||
declarations etc. | ||
## Mangle options | ||
- `keep_classnames` (default `false`). Pass `true` to not mangle class names. | ||
- `reserved` (default `[]`). Pass an array of identifiers that should be | ||
@@ -777,8 +779,2 @@ excluded from mangling. Example: `["foo", "bar"]`. | ||
- `keep_classnames` (default `false`). Pass `true` to not mangle class names. | ||
- `keep_fnames` (default `false`). Pass `true` to not mangle function names. | ||
Useful for code relying on `Function.prototype.name`. See also: the `keep_fnames` | ||
[compress option](#compress-options). | ||
- `eval` (default `false`). Pass `true` to mangle names visible in scopes | ||
@@ -815,12 +811,16 @@ where `eval` or `with` are used. | ||
- `reserved` (default: `[]`) -- Do not mangle property names listed in the | ||
`reserved` array. | ||
- `regex` (default: `null`) -— Pass a RegExp literal to only mangle property | ||
names matching the regular expression. | ||
- `keep_quoted` (default: `false`) -— Only mangle unquoted property names. | ||
- `debug` (default: `false`) -— Mangle names with the original name still present. | ||
Pass an empty string `""` to enable, or a non-empty string to set the debug suffix. | ||
- `builtins` (default: `false`) -- Use `true` to allow the mangling of builtin | ||
DOM properties. Not recommended to override this setting. | ||
- `debug` (default: `false`) -— Mangle names with the original name still present. | ||
Pass an empty string `""` to enable, or a non-empty string to set the debug suffix. | ||
- `keep_quoted` (default: `false`) -— Only mangle unquoted property names. | ||
- `regex` (default: `null`) -— Pass a RegExp literal to only mangle property | ||
names matching the regular expression. | ||
- `reserved` (default: `[]`) -- Do not mangle property names listed in the | ||
`reserved` array. | ||
## Output options | ||
@@ -834,2 +834,3 @@ | ||
regexps (affects directives with non-ascii characters becoming invalid) | ||
- `beautify` (default `true`) -- whether to actually beautify the output. | ||
@@ -839,8 +840,11 @@ Passing `-b` will set this to true, but you might need to pass `-b` even | ||
arguments, so you can use `-b beautify=false` to override it. | ||
- `bracketize` (default `false`) -- always insert brackets in `if`, `for`, | ||
`do`, `while` or `with` statements, even if their body is a single | ||
statement. | ||
- `comments` (default `false`) -- pass `true` or `"all"` to preserve all | ||
comments, `"some"` to preserve some comments, a regular expression string | ||
(e.g. `/^!/`) or a function. | ||
- `ecma` (default `5`) -- set output printing mode. Set `ecma` to `6` or | ||
@@ -852,9 +856,15 @@ greater to emit shorthand object properties - i.e.: `{a}` instead of `{a: a}`. | ||
ES6+ code to ES5. | ||
- `indent_level` (default 4) | ||
- `indent_start` (default 0) -- prefix all lines by that many spaces | ||
- `indent_level` (default `4`) | ||
- `indent_start` (default `0`) -- prefix all lines by that many spaces | ||
- `inline_script` (default `false`) -- escape the slash in occurrences of | ||
`</script` in strings | ||
- `keep_quoted_props` (default `false`) -- when turned on, prevents stripping | ||
quotes from property names in object literals. | ||
- `max_line_len` (default `false`) -- maximum line length (for uglified code) | ||
- `preamble` (default `null`) -- when passed it must be a string and | ||
@@ -864,6 +874,9 @@ it will be prepended to the output literally. The source map will | ||
licensing information, for example. | ||
- `preserve_line` (default `false`) -- pass `true` to preserve lines, but it | ||
only works if `beautify` is set to `false`. | ||
- `quote_keys` (default `false`) -- pass `true` to quote all keys in literal | ||
objects | ||
- `quote_style` (default `0`) -- preferred quote style for strings (affects | ||
@@ -876,2 +889,3 @@ quoted property names and directives as well): | ||
- `3` -- always use the original quotes | ||
- `semicolons` (default `true`) -- separate statements with semicolons. If | ||
@@ -881,4 +895,6 @@ you pass `false` then whenever possible we will use a newline instead of a | ||
gzip could be smaller; size after gzip insignificantly larger). | ||
- `shebang` (default `true`) -- preserve shebang `#!` in preamble (bash scripts) | ||
- `width` (default 80) -- only takes effect when beautification is on, this | ||
- `width` (default `80`) -- only takes effect when beautification is on, this | ||
specifies an (orientative) line width that the beautifier will try to | ||
@@ -888,2 +904,3 @@ obey. It refers to the width of the line text (excluding indentation). | ||
by UglifyJS more readable. | ||
- `wrap_iife` (default `false`) -- pass `true` to wrap immediately invoked | ||
@@ -890,0 +907,0 @@ function expressions. See |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
700062
18166
1114
+ Addedsource-map@0.6.1(transitive)
- Removedsource-map@0.5.7(transitive)
Updatedsource-map@~0.6.1