UglifyJS.git
8 years agocollapse_vars: fix if/else and ternary operator side effects
kzc [Thu, 28 Jan 2016 17:17:06 +0000 (12:17 -0500)]
collapse_vars: fix if/else and ternary operator side effects

8 years agocollapse_vars: fix bug in repeated var defs of same name
kzc [Wed, 27 Jan 2016 23:35:49 +0000 (18:35 -0500)]
collapse_vars: fix bug in repeated var defs of same name

8 years agoAdd mangleProperties documentation to README
Bryan Rayner [Wed, 27 Jan 2016 20:24:32 +0000 (14:24 -0600)]
Add mangleProperties documentation to README

Add additional documentation to mangleProperties.

8 years agofix bug in collapse_vars for right side of "||" and "&&"
kzc [Wed, 27 Jan 2016 19:18:46 +0000 (14:18 -0500)]
fix bug in collapse_vars for right side of "||" and "&&"

8 years agoCollapse single use var definitions
kzc [Wed, 27 Jan 2016 07:17:06 +0000 (02:17 -0500)]
Collapse single use var definitions

Fix #721

8 years agoAdd start/end in the `arguments` definition
Mihai Bazon [Wed, 27 Jan 2016 09:36:03 +0000 (11:36 +0200)]
Add start/end in the `arguments` definition

(keeps my https://github.com/mishoo/jsinfo.el working)

8 years agoAdded a mangle properties option
Jeremy Marzka [Mon, 18 Jan 2016 02:54:09 +0000 (21:54 -0500)]
Added a mangle properties option

8 years agoMerge pull request #928 from STRML/constPragma
Richard van Velzen [Wed, 20 Jan 2016 18:04:36 +0000 (19:04 +0100)]
Merge pull request #928 from STRML/constPragma

Mark vars with /** @const */ pragma as consts so they can be eliminated.

8 years agoTighten up @const regex.
Samuel Reed [Wed, 20 Jan 2016 17:35:45 +0000 (11:35 -0600)]
Tighten up @const regex.

8 years agoSimplify by skipping extra tree walk.
Samuel Reed [Wed, 20 Jan 2016 17:03:41 +0000 (11:03 -0600)]
Simplify by skipping extra tree walk.

8 years agoUse TreeWalker for more accurate @const results and update tests
Samuel Reed [Wed, 20 Jan 2016 16:52:48 +0000 (10:52 -0600)]
Use TreeWalker for more accurate @const results and update tests

8 years agoUpdate README for /** @const */
Samuel Reed [Tue, 19 Jan 2016 19:24:36 +0000 (13:24 -0600)]
Update README for /** @const */

8 years agoMark vars with /** @const */ pragma as consts so they can be eliminated.
Samuel Reed [Tue, 19 Jan 2016 19:12:32 +0000 (13:12 -0600)]
Mark vars with /** @const */ pragma as consts so they can be eliminated.

Fixes older browser support for consts and allows more flexibility
in dead code removal.

8 years agoAllow operator names as getters/setters
Anthony Van de Gejuchte [Fri, 15 Jan 2016 14:58:15 +0000 (15:58 +0100)]
Allow operator names as getters/setters

Fixes #919

Fix provided by @kzc

8 years agoAdd keywords to package.json
Anthony Van de Gejuchte [Sat, 16 Jan 2016 20:35:39 +0000 (21:35 +0100)]
Add keywords to package.json

Should hopefully bump up on the results of the npm site when searching `uglify`

8 years agoAdd some tests for comment-filters through api
Anthony Van de Gejuchte [Tue, 19 Jan 2016 13:00:22 +0000 (14:00 +0100)]
Add some tests for comment-filters through api

Also never bother comment options to filter comment5/shebang comments
as they have their custom filter.

8 years agoMerge pull request #918 from avdg/fix-arguments-handling
Richard van Velzen [Mon, 18 Jan 2016 17:35:48 +0000 (18:35 +0100)]
Merge pull request #918 from avdg/fix-arguments-handling

Never mangle arguments and keep them in their scope

8 years agoMake arguments test slightly more strict
Anthony Van de Gejuchte [Thu, 14 Jan 2016 23:04:05 +0000 (00:04 +0100)]
Make arguments test slightly more strict

8 years agoAdd scope test for arguments
Anthony Van de Gejuchte [Thu, 14 Jan 2016 21:32:46 +0000 (22:32 +0100)]
Add scope test for arguments

8 years agoNever mangle arguments and keep them in their scope
Anthony Van de Gejuchte [Sun, 10 Jan 2016 22:33:54 +0000 (23:33 +0100)]
Never mangle arguments and keep them in their scope

Fixes #892

Helped-by: kzc
8 years agoMerge pull request #905 from avdg/unit-tests
Richard van Velzen [Thu, 14 Jan 2016 07:54:40 +0000 (08:54 +0100)]
Merge pull request #905 from avdg/unit-tests

Add unit tests

8 years agoAdd test case for line continuation
Anthony Van de Gejuchte [Tue, 12 Jan 2016 23:30:32 +0000 (00:30 +0100)]
Add test case for line continuation

8 years agoFix hoisting the var in ForIn
Mihai Bazon [Tue, 5 Jan 2016 11:56:52 +0000 (13:56 +0200)]
Fix hoisting the var in ForIn

Close #913

8 years agoAdd mocha tests
Anthony Van de Gejuchte [Sun, 27 Dec 2015 21:28:03 +0000 (22:28 +0100)]
Add mocha tests

8 years agoFix ch that could contain other newline characters
Anthony Van de Gejuchte [Sun, 27 Dec 2015 21:24:37 +0000 (22:24 +0100)]
Fix ch that could contain other newline characters

8 years agoDo not allow newlines in string literals
Anthony Van de Gejuchte [Sat, 26 Dec 2015 14:08:37 +0000 (15:08 +0100)]
Do not allow newlines in string literals

8 years agoMerge pull request #874 from kzc/fix-conditionals
Richard van Velzen [Sat, 26 Dec 2015 13:28:33 +0000 (14:28 +0100)]
Merge pull request #874 from kzc/fix-conditionals

#873 Fix `conditionals` optimizations with default compress options

8 years agoMerge pull request #896 from avdg/do-while-semicolon
Richard van Velzen [Sat, 26 Dec 2015 13:26:22 +0000 (14:26 +0100)]
Merge pull request #896 from avdg/do-while-semicolon

Semicolon after do...while statement is optional

8 years agoDisable loop optimization for parse-only tests
Anthony Van de Gejuchte [Fri, 18 Dec 2015 14:25:24 +0000 (15:25 +0100)]
Disable loop optimization for parse-only tests

8 years agoAdd tests
Anthony Van de Gejuchte [Fri, 18 Dec 2015 13:39:48 +0000 (14:39 +0100)]
Add tests

8 years agoSemicolon after do...while statement is optional
Anthony Van de Gejuchte [Thu, 17 Dec 2015 22:02:35 +0000 (23:02 +0100)]
Semicolon after do...while statement is optional

8 years agoMerge pull request #879 from ReadmeCritic/master
Richard van Velzen [Mon, 7 Dec 2015 18:04:56 +0000 (19:04 +0100)]
Merge pull request #879 from ReadmeCritic/master

Update README URLs based on HTTP redirects

8 years agoUpdate README URLs based on HTTP redirects
ReadmeCritic [Fri, 27 Nov 2015 16:46:55 +0000 (08:46 -0800)]
Update README URLs based on HTTP redirects

8 years ago#873 Fix `conditionals` optimizations with default compress options
kzc [Tue, 24 Nov 2015 18:27:50 +0000 (13:27 -0500)]
#873 Fix `conditionals` optimizations with default compress options

8 years agov2.6.1
Mihai Bazon [Mon, 16 Nov 2015 10:10:47 +0000 (12:10 +0200)]
v2.6.1

8 years agoFix endless loop
Mihai Bazon [Mon, 16 Nov 2015 10:07:15 +0000 (12:07 +0200)]
Fix endless loop

Close #866

8 years agoLimit max iterations for tighten_body
Mihai Bazon [Mon, 16 Nov 2015 10:06:12 +0000 (12:06 +0200)]
Limit max iterations for tighten_body

Ref #866

8 years agoMerge pull request #864 from plievone/patch-1
Richard van Velzen [Sat, 14 Nov 2015 11:04:49 +0000 (12:04 +0100)]
Merge pull request #864 from plievone/patch-1

Fix docs for keep_fargs

8 years agoFix docs for keep_fargs
plievone [Sat, 14 Nov 2015 09:38:00 +0000 (11:38 +0200)]
Fix docs for keep_fargs

Compression options `keep_fargs` and `unsafe` were decoupled in v.2.5.0 (commit 5fd1245), so document actual keep_fargs default.

8 years agov2.6.0
Mihai Bazon [Thu, 12 Nov 2015 10:46:28 +0000 (12:46 +0200)]
v2.6.0

8 years agoFix output for "use asm" code from SpiderMonkey AST
Mihai Bazon [Thu, 12 Nov 2015 10:18:25 +0000 (12:18 +0200)]
Fix output for "use asm" code from SpiderMonkey AST

(will only work properly if the SM tree contains "raw" properties for
Literal number nodes)

8 years agoBuild label def/refs info when figuring out scope
Mihai Bazon [Thu, 12 Nov 2015 09:48:06 +0000 (11:48 +0200)]
Build label def/refs info when figuring out scope

Fix #862

8 years agoReplace util.error with console.log
Mihai Bazon [Thu, 12 Nov 2015 09:47:37 +0000 (11:47 +0200)]
Replace util.error with console.log

8 years agoRework has_directive
Mihai Bazon [Wed, 11 Nov 2015 20:15:25 +0000 (22:15 +0200)]
Rework has_directive

It's now available during tree walking, i.e. walker.has_directive("use
asm"), rather than as part of the scope.  It's thus no longer necessary
to call `figure_out_scope` before codegen.  Added special bits in the
code generator to overcome the fact that it doesn't inherit from
TreeWalker.

Fix #861

8 years agoMerge pull request #854 from kzc/moz-regexp-2
Mihai Bazon [Tue, 10 Nov 2015 08:12:30 +0000 (10:12 +0200)]
Merge pull request #854 from kzc/moz-regexp-2

Have mozilla AST RegExpLiteral parser use regex.pattern and regex.flags

8 years agoFix parsing invalid input
Mihai Bazon [Mon, 9 Nov 2015 11:15:20 +0000 (13:15 +0200)]
Fix parsing invalid input

i.e. `x = 1.xe` â€” because parseFloat("1.xe") returns 1, this parsed as
`x = 1`.

Ref #857

8 years agoPrevent ReDoS by not using a regexp to verify floating point numbers
Richard van Velzen [Mon, 9 Nov 2015 10:28:27 +0000 (11:28 +0100)]
Prevent ReDoS by not using a regexp to verify floating point numbers

`parseFloat` will return `NaN` for invalid numbers anyway, which is the check used to throw the parse error.

Fixes #857

8 years agosimplify mozilla AST RegExpLiteral token parse and handle corner cases of regex.patte...
kzc [Mon, 2 Nov 2015 18:10:37 +0000 (13:10 -0500)]
simplify mozilla AST RegExpLiteral token parse and handle corner cases of regex.pattern better

8 years agoHave mozilla AST RegExpLiteral parser use regex.pattern and regex.flags rather than...
kzc [Mon, 2 Nov 2015 17:24:09 +0000 (12:24 -0500)]
Have mozilla AST RegExpLiteral parser use regex.pattern and regex.flags rather than non-standard `raw` property.

8 years agorename To_Moz_Literal to To_Moz_RegExp
kzc [Sun, 1 Nov 2015 15:20:42 +0000 (10:20 -0500)]
rename To_Moz_Literal to To_Moz_RegExp

8 years agoFixed RegExp literal in mozilla AST generation/output and added a --dump-spidermonkey...
kzc [Sun, 1 Nov 2015 05:02:52 +0000 (01:02 -0400)]
Fixed RegExp literal in mozilla AST generation/output and added a --dump-spidermonkey-ast flag

8 years ago`return undefined` optimization no longer uses `return_void_0` option
kzc [Wed, 28 Oct 2015 21:51:46 +0000 (17:51 -0400)]
`return undefined` optimization no longer uses `return_void_0` option

8 years agomore tests for `return undefined` optimization
kzc [Wed, 28 Oct 2015 17:41:41 +0000 (13:41 -0400)]
more tests for `return undefined` optimization

8 years agooptimize `return undefined` and `return void 0`
kzc [Wed, 28 Oct 2015 17:25:27 +0000 (13:25 -0400)]
optimize `return undefined` and `return void 0`

8 years agoAllow specification beautify options in tests
Richard van Velzen [Wed, 28 Oct 2015 19:50:01 +0000 (20:50 +0100)]
Allow specification beautify options in tests

Caught an error in #847 as well - `output` wasn't passed anywhere which led to an exception. `options` was available though.

8 years agoStop building for io.js
Richard van Velzen [Wed, 28 Oct 2015 19:36:03 +0000 (20:36 +0100)]
Stop building for io.js

8 years agofixes #845: \v escaping should be restricted to "screw_ie8" mode
Michael Ficarra [Tue, 27 Oct 2015 16:05:21 +0000 (09:05 -0700)]
fixes #845: \v escaping should be restricted to "screw_ie8" mode

8 years agoFix #836
Fábio Santos [Tue, 20 Oct 2015 18:48:56 +0000 (19:48 +0100)]
Fix #836

8 years agoMake_string was missing \v and wasnt reversing vertical tabs even though read_escaped...
startswithaj [Thu, 15 Oct 2015 06:50:53 +0000 (16:50 +1000)]
Make_string was missing \v and wasnt reversing vertical tabs even though read_escaped_char coverts them

8 years agoadd `--pure-funcs` option
Damian Krzeminski [Wed, 14 Oct 2015 01:05:37 +0000 (21:05 -0400)]
add `--pure-funcs` option

it has the same effect as specifying `pure_funcs` in `--compressor`
option, however it's much easier to use

instead of:

    --compressor 'pure_func=["Math.floor","debug","console.logTime"]'

it's now possible:

    --compressor --pure-funcs Math.floor debug console.logTime

fixes #684

8 years agoupgrade yargs 3.5.4 -> 3.10.0
Damian Krzeminski [Wed, 14 Oct 2015 01:01:36 +0000 (21:01 -0400)]
upgrade yargs 3.5.4 -> 3.10.0

we need a version with better support for 'array' params
see: https://github.com/bcoe/yargs/pull/164

8 years agoMerge pull request #829 from kzc/html_comment_ops
Mihai Bazon [Tue, 13 Oct 2015 06:59:40 +0000 (09:59 +0300)]
Merge pull request #829 from kzc/html_comment_ops

Fix other operator output producing <!-- or -->

8 years agoFix other operator output related to <!-- or -->
kzc [Tue, 13 Oct 2015 05:17:10 +0000 (01:17 -0400)]
Fix other operator output related to <!-- or -->

8 years agoFix tests
Mihai Bazon [Mon, 12 Oct 2015 07:27:00 +0000 (10:27 +0300)]
Fix tests

8 years agoOnly encode <!-- and --> in strings when inline_script
Mihai Bazon [Mon, 12 Oct 2015 07:21:22 +0000 (10:21 +0300)]
Only encode <!-- and --> in strings when inline_script

8 years agoOutput `-- >` instead of `-->` in expressions. Escape `<!--` and `-->` within string...
kzc [Mon, 12 Oct 2015 04:20:42 +0000 (00:20 -0400)]
Output `-- >` instead of `-->` in expressions. Escape `<!--` and `-->` within string literals.

8 years agov2.5.0
Mihai Bazon [Sun, 11 Oct 2015 15:24:38 +0000 (18:24 +0300)]
v2.5.0

8 years agohave minify() call figure_out_scope() if needed to produce well formed "use asm"...
kzc [Wed, 7 Oct 2015 20:31:57 +0000 (16:31 -0400)]
have minify() call figure_out_scope() if needed to produce well formed "use asm" code

8 years agoget rid of SCOPE_IS_NEEDED as it was always true
kzc [Wed, 7 Oct 2015 19:33:24 +0000 (15:33 -0400)]
get rid of SCOPE_IS_NEEDED as it was always true

8 years agoFix handling of "use asm" when no command line flags are passed to uglifyjs. SCOPE_IS...
kzc [Wed, 7 Oct 2015 17:10:53 +0000 (13:10 -0400)]
Fix handling of "use asm" when no command line flags are passed to uglifyjs. SCOPE_IS_NEEDED is unconditionally true now. Refactored floating point literal parsing to be more in keeping with the AST class design.

8 years agoPin dependencies with npm shrinkwrap
SpainTrain [Thu, 24 Sep 2015 20:24:50 +0000 (16:24 -0400)]
Pin dependencies with npm shrinkwrap

* Use `npm run shrinkwrap` to create a shrinkwrap file with all dependencies pinned
* Update dependency `source-map` to latest (Closes #738)

8 years agoadd asm.js test
kzc [Tue, 6 Oct 2015 21:05:36 +0000 (17:05 -0400)]
add asm.js test

8 years agoAdd proper support for "use asm"; blocks. Disable -c optimization within "use asm...
kzc [Mon, 5 Oct 2015 23:51:09 +0000 (19:51 -0400)]
Add proper support for "use asm"; blocks. Disable -c optimization within "use asm"; sections and preserve floating point literals in their original form. Non-asm.js sections are optimized as before. Asm.js sections can still be mangled and minified of whitespace. No special command line flags are required.

8 years agoImplement shebang support
Anthony Van de Gejuchte [Fri, 20 Feb 2015 15:08:01 +0000 (16:08 +0100)]
Implement shebang support

8 years agoMerge pull request #808 from avdg/travis
Mihai Bazon [Thu, 24 Sep 2015 16:27:54 +0000 (19:27 +0300)]
Merge pull request #808 from avdg/travis

Add node 4.x in Travis

8 years agoAdd node 4.x in Travis
Anthony Van de Gejuchte [Thu, 24 Sep 2015 15:41:52 +0000 (17:41 +0200)]
Add node 4.x in Travis

8 years agoDisable node 0.8 in Travis
Mihai Bazon [Thu, 24 Sep 2015 15:26:23 +0000 (18:26 +0300)]
Disable node 0.8 in Travis

8 years agoFix mozilla-ast after module loading changes
Mihai Bazon [Thu, 24 Sep 2015 15:12:06 +0000 (18:12 +0300)]
Fix mozilla-ast after module loading changes

Need to explicitly qualify stuff now, since it's not evaluated in some
global scope.

Ref #636

8 years agoNo longer use `vm` to load code.
Mihai Bazon [Thu, 24 Sep 2015 14:57:47 +0000 (17:57 +0300)]
No longer use `vm` to load code.

Improves performance 2x on node > 0.10.

Ref #636

8 years agoFix wrap_commonjs to include code first
Mihai Bazon [Thu, 24 Sep 2015 14:55:37 +0000 (17:55 +0300)]
Fix wrap_commonjs to include code first

(code could have directives, i.e. "use strict")

9 years agouse a valid SPDX license identifier
Kyle Mitchell [Mon, 4 May 2015 23:33:09 +0000 (23:33 +0000)]
use a valid SPDX license identifier

9 years agoControl keeping function arguments with a single option
Ville Lautanala [Fri, 22 May 2015 22:46:08 +0000 (01:46 +0300)]
Control keeping function arguments with a single option

9 years agoMerge pull request #786 from istr/anonymous-source-map
Richard van Velzen [Sun, 6 Sep 2015 15:06:14 +0000 (17:06 +0200)]
Merge pull request #786 from istr/anonymous-source-map

Allow for anonymous map generation using string type check

9 years agoallow for anonymous map generation using string type check
Ingo Struck [Thu, 27 Aug 2015 17:38:33 +0000 (19:38 +0200)]
allow for anonymous map generation using string type check

9 years agoFix bad parsing of `new new x()()` constructs
Richard van Velzen [Thu, 6 Aug 2015 19:27:46 +0000 (21:27 +0200)]
Fix bad parsing of `new new x()()` constructs

Fixes #739

9 years agoDon't change sequences that influence lexical binding in calls
Richard van Velzen [Tue, 25 Aug 2015 08:53:35 +0000 (10:53 +0200)]
Don't change sequences that influence lexical binding in calls

Fixes #782

9 years agoMerge pull request #767 from vjeux/208
Richard van Velzen [Mon, 10 Aug 2015 18:29:37 +0000 (20:29 +0200)]
Merge pull request #767 from vjeux/208

[Fix] --define replaces SymbolRefs in LHS of assignments

9 years ago[Fix] --define replaces SymbolRefs in LHS of assignments
Christopher Chedeau [Mon, 10 Aug 2015 18:22:36 +0000 (11:22 -0700)]
[Fix] --define replaces SymbolRefs in LHS of assignments

See #208 for context

9 years agoMerge pull request #736 from AlbertoGP/master
Richard van Velzen [Fri, 7 Aug 2015 12:12:41 +0000 (14:12 +0200)]
Merge pull request #736 from AlbertoGP/master

fromString option, use index from argument array for filename instead of "?"

9 years agoMerge pull request #729 from DrewML/keep_fnames_docs
Richard van Velzen [Fri, 7 Aug 2015 12:11:50 +0000 (14:11 +0200)]
Merge pull request #729 from DrewML/keep_fnames_docs

Add keep_fnames compressor option to README.md

9 years agoFix mangling of property names which overwrite unmangleable properties
Richard van Velzen [Fri, 31 Jul 2015 13:56:33 +0000 (15:56 +0200)]
Fix mangling of property names which overwrite unmangleable properties

Fixes #747.

9 years agoMerge pull request #753 from Surgo/master
Richard van Velzen [Wed, 5 Aug 2015 19:17:42 +0000 (21:17 +0200)]
Merge pull request #753 from Surgo/master

Support wrap and exportAll options for node.js tools.

9 years agoMerge pull request #757 from rvanvelzen/semicolon-fix
Mihai Bazon [Thu, 30 Jul 2015 14:25:13 +0000 (17:25 +0300)]
Merge pull request #757 from rvanvelzen/semicolon-fix

Fix semicolon printing when restricting max line length

9 years agoFix semicolon printing when restricting max line length
Richard van Velzen [Wed, 29 Jul 2015 15:57:18 +0000 (17:57 +0200)]
Fix semicolon printing when restricting max line length

Fixes #755

9 years agoRevert "Fix semicolon printing when restricting max line length"
Richard van Velzen [Thu, 30 Jul 2015 13:57:18 +0000 (15:57 +0200)]
Revert "Fix semicolon printing when restricting max line length"

This reverts commit 170e8b519e64463a39d293480e52f97b64d8ab89.

9 years agoFix semicolon printing when restricting max line length
Richard van Velzen [Wed, 29 Jul 2015 15:57:18 +0000 (17:57 +0200)]
Fix semicolon printing when restricting max line length

Fixes #755

9 years agoReplace util.puts in run-tests with console.log
Richard van Velzen [Wed, 29 Jul 2015 13:24:45 +0000 (15:24 +0200)]
Replace util.puts in run-tests with console.log

See d2dda34b2a8de310f26a26e58ed28275ba5ecc7f

9 years agoMake node.js 0.8 the minimum supported version.
XhmikosR [Tue, 14 Apr 2015 20:17:41 +0000 (23:17 +0300)]
Make node.js 0.8 the minimum supported version.

Node.js 0.4 and 0.6 are ancient; things don't work there.
Update Travis CI configuration accordingly.

Note, that the npm update in Travis is needed for 0.8 only at the moment.

9 years agoRe-use the caught exception's error message in the parse error call.
Chris Cowan [Thu, 14 May 2015 19:27:56 +0000 (12:27 -0700)]
Re-use the caught exception's error message in the parse error call.

9 years agoGive a good error message if an invalid regular expression is found.
Chris Cowan [Thu, 14 May 2015 19:03:54 +0000 (12:03 -0700)]
Give a good error message if an invalid regular expression is found.