Age | Commit message (Expand) | Author |
2017-02-21 | drop unused: toplevel, assign-only...- assign statement does not count towards variable usage by default
- only works with assignments on the same scope level as declaration
- can be disabled with `unused` set to "keep_assign"
- `toplevel` to drop unused top-level variables and/or functions
- `top_retain` to whitelist top-level exceptions
closes #1450
| alexlamsl |
2017-02-21 | fix stray else in compress with conditionals=false...closes #1449
| kzc |
2017-02-18 | enable typeof "undefined" for general use...move out of unsafe, guard corner case with screw_id8 instead
closes #1446
| alexlamsl |
2017-02-18 | fix corner case in keep_fnames...happens when inner function:
- just below top level
- not referenced
- `unused` is disabled
closes #1445
| alexlamsl |
2017-02-18 | remove unused AST_Scope.nesting & AST_SymbolRef.frame...they are computed but never used
closes #1444
| alexlamsl |
2017-02-18 | fix crash in unsafe replacement of undefined...remove extraneous call to AST_SymbolRef.reference()
closes #1443
| alexlamsl |
2017-02-18 | Improve optimizing `function() { if(c){return foo} bar();}`...closes #1437
| Anthony Van de Gejuchte |
2017-02-10 | in mangle_names there is a check that the variable name is legal and that it ... | Anat Dagan |
2017-01-26 | fix mangling collision with keep_fnames (#1431)...* fix mangling collision with keep_fnames
fixes #1423
* pass mangle options to figure_out_scope()
bring command-line in line with minify()
| Alex Lam S.L |
2017-01-26 | optimise binary operands with evaluate() (#1427)...- remove call to evaluate() in is_constant() and let nested optimize() does its job instead
- reject RegExp in is_constant() and remove special case logic under collapse_vars
- operands to conditionals optimisation are now always evaluate()-ed
- throw error in constant_value() instead of returning undefined to catch possible bugs, similar to make_node_from_constant()
- optimise binary boolean operators under `evaluate` instead of `conditionals` | Alex Lam S.L |
2017-01-26 | augment evaluate to extract within objects (#1425)...- gated by `unsafe`
- replaces previous optimisation specific to String.length
- "123"[0] => 1
- [1, 2, 3][0] => 1
- [1, 2, 3].length => 3
- does not apply to objects with overridden prototype functions | Alex Lam S.L |
2017-01-19 | add missing LHS cases which global_defs should avoid | alexlamsl |
2016-11-29 | Generate source map data from normalized files...If using `inSourceMap` this fix will ensure the copying of `sourcesContent` is based on potentially normalized `sources` values (https://github.com/mozilla/source-map/blob/master/lib/source-map-consumer.js#L304-L309).
For example `normalize` (https://github.com/mozilla/source-map/blob/master/lib/util.js#L80-L123) will rewrite `./dist/mySource.js` to `dist/mySource.js` in the target `_sources` of the `SourceMapConsumer`. As a result `orig_map.sourceContentFor(source, true);` would return `null` since the orginal `source` was no longer available in the consumer. By using the keys generating from the `SourceMapConsumer.constructor` consistency is ensured.
| Martijn Swaagman |
2016-11-29 | Add --mangle-props-debug and fix --mangle-props=unquoted collision...Patch by @AshleyScirra
Based on: PR #1316
Renamed the CLI debug option to --mangle-props-debug
Fixes: #1321 name collision in --mangle-props=unquoted
| Ashley (Scirra) |
2016-11-29 | Do not overwrite options.comments + cleanup | Anthony Van de Gejuchte |
2016-10-23 | Don't filter shebangs when using the 'some' comment filter...Also clarify documentation a bit more about using regexp as filter
| Anthony Van de Gejuchte |
2016-10-23 | fix uses_arguments handling (broken since 6605d1578351)...Using the symbol declaration tracking of UglifyJS doesn't make sense here
anyway, `arguments` always comes from something in the current scope.
fixes #1299
| Jann Horn |
2016-10-06 | Remove console.log and add extra test case | Richard van Velzen |
2016-10-06 | Add an option to wrap IIFEs in parenthesis...For #1307.
| Richard van Velzen |
2016-10-06 | Fix (typeof side_effect()) in boolean context...Fixes #1289 with suggestion by @rvanvelzen
| kzc |
2016-10-01 | Optimize unmodified variables | alexlamsl |
2016-09-06 | Make all comment options in cli available in js api...Also removing more code within "loop" while at it.
| Anthony Van de Gejuchte |
2016-09-01 | Account for side effects in `string + expr` optimization | kzc |
2016-08-30 | implement optimization: (x = 2 * x) ---> (x *= 2) | kzc |
2016-08-17 | Fix negate_iife transform to return a correct tree for nested IIFEs...Fix for #1256, partially reverts d854523783b4
| Richard van Velzen |
2016-08-17 | Fix negate_iife regression #1254 | kzc |
2016-08-14 | Fix --mangle-props and --mangle-props=unquoted...Fixes: #1247
Fix --mangle-props and --name-cache inconsistency.
AST_Dot and AST_Sub properties are now mangled by --mangle-props
without regard to being used in an assignment statement.
Note: if --mangle-props is used then *all* javascript files used must
be uglified with the same mangle options.
Fix the ignore_quoted=true mangle option, also known as
`--mangle-props=unquoted`. If a given property is quoted anywhere
it will not be mangled in any quoted or non-quoted context.
| kzc |
2016-08-14 | Fix unneeded parens around unary args in new expression. | kzc |
2016-07-21 | Legacy octal integer strict mode fixes | Anthony Van de Gejuchte |
2016-07-17 | lib/sourcemap.js: Copy sourceContent from old souce-map to the new source-map... | Lauri Pokka |
2016-07-15 | Keep const in own scope while compressing...- Fixes #1205
- Fix provided by @kzc
| Anthony Van de Gejuchte |
2016-07-15 | Fix mangle with option keep_fnames=true for Safari....Fixes: #1202
| kzc |
2016-07-15 | Fix error style for regex errors | Anthony Van de Gejuchte |
2016-07-03 | Don't convert all strings to directives from moz-ast | Anthony Van de Gejuchte |
2016-07-01 | Change the default sequences limit to 200 to speed up compress....Has little or no impact on minification size in the majority of
cases but can speed up rollup builds significantly.
This sequences change also has the beneficial side effect of avoiding
"stack size exceeded" errors on very large input files.
The user is free to alter the sequences limit if they are so inclined.
The previous sequences limit was 2000. 20 is often sufficient.
| kzc |
2016-07-01 | Allow sequences maximum length to be user configurable. | kzc |
2016-06-30 | Various LineTerminator changes...* Escaped newlines should also produce SyntaxError
* Fix multiline comment parsing and add tests
* Adapt makePredicate to handle \u2028 and \u2029
* Move up nlb check in regex so it's checked before any escape handling
* Change error messages to conform ecma standard
* Find_eol not recornizing \u2028 and \u2029 as line terminator
* Remove \u180e as it is removed in unicode 6.3.0 from the category zs
| Anthony Van de Gejuchte |
2016-06-30 | Enable --screw-ie8 by default....catch identifier is mangled correctly for ES5 standards-compliant JS engines by default.
Unconditionally use the ie8 if/do-while workaround whether or not --screw-ie8 is enabled.
To support non-standard ie8 javascript use: uglifyjs --support-ie8
| kzc |
2016-06-30 | Fix spidermonkey AST (ESTree) export and import, Array holes...Fixes: #1156 #1161
Also add test to exercise Uglify after spidermonkey export/import of itself.
| kzc |
2016-06-30 | Move OctalEscapeSequence to read_escape_char...This should simplify and improve implementation, make it easier to
implement template strings, and keep master a bit more in sync with
harmony.
Previous implementation wasn't broken, though the loop gave me the
impression it could read infinite numbers and annoyed me a bit. It was
also slightly unnecessary because the lookup involved only 3 characters.
| Anthony Van de Gejuchte |
2016-06-21 | Fix conditional expressions of form (x ? -1 : -1)...Fixes #1154, #1153
| kzc |
2016-06-21 | Don't replace undefined, NaN and Infinity within with scope | kzc |
2016-06-20 | Keep master in sync with harmony... * Do not mangle when no mangle is required
* Improve use_asm reset while printing code
| Anthony Van de Gejuchte |
2016-06-19 | Respect quote style in object literals...The option added in fbbaa42ee55a7f753f7cab9b1a905ccf73cf26d5 wasn't
being respected inside object literals, so quoted property names would
still be stripped out with this option.
This is mostly a corner-case, but useful when the output is passed to
something like the Closure compiler, where quoted property names can be
used to prevent mangling.
| Shrey Banga |
2016-06-19 | Normalize error messages | Anthony Van de Gejuchte |
2016-06-19 | Don't mix strings with directives in output... * Don't interpret strings with escaped content as directive
* Don't interpret strings after empty statement as directive
* Adapt output to prevent strings being represent as directive
* Introduce UGLIFY_DEBUG to allow internal testing like EXPECT_DIRECTIVE
| Anthony Van de Gejuchte |
2016-06-15 | Fix test262 failures related to <, <=, in and instanceof...Fixed-by: @kzc
| Anthony Van de Gejuchte |
2016-06-12 | Re-add parens after new expression in beautify mode | Anthony Van de Gejuchte |
2016-06-12 | Don't allow with statements in strict mode | Anthony Van de Gejuchte |
2016-06-12 | Stop dropping args in new expressions | Anthony Van de Gejuchte |