aboutsummaryrefslogtreecommitdiff
path: root/bin
AgeCommit message (Collapse)Author
2015-11-11Rework has_directiveMihai Bazon
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
2015-11-01Fixed RegExp literal in mozilla AST generation/output and added a ↵kzc
--dump-spidermonkey-ast flag
2015-10-13add `--pure-funcs` optionDamian Krzeminski
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
2015-10-07get rid of SCOPE_IS_NEEDED as it was always truekzc
2015-10-07Fix handling of "use asm" when no command line flags are passed to uglifyjs. ↵kzc
SCOPE_IS_NEEDED is unconditionally true now. Refactored floating point literal parsing to be more in keeping with the AST class design.
2015-10-07Add proper support for "use asm"; blocks. Disable -c optimization within ↵kzc
"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.
2015-09-24No longer use `vm` to load code.Mihai Bazon
Improves performance 2x on node > 0.10. Ref #636
2015-06-09Change --mangle-regex to accept a full regexJoao Carlos
2015-06-09Show descriptive error when --mangle-regex is invalidJoao Carlos
2015-06-09Add --mangle-regex optionJoao Carlos
2015-05-04Remove deprecated calls to utils.print/utils.errorMihai Bazon
Close #542, #641, #647
2015-04-22If name_cache is specified, do rename cached propertiesMihai Bazon
(even if --mangle-props is not there)
2015-04-05More fixes for the breaking changes in yargsMihai Bazon
Close #670
2015-03-29Fix long optionsなつき
2015-03-29Add tool to extract property namesMihai Bazon
2015-03-22Export readDefaultReservedFileMihai Bazon
2015-03-18Add --reserve-domprops along with a default exclusion list in ↵Mihai Bazon
tools/domprops.json
2015-03-18Support multiple --reserved-file argsMihai Bazon
2015-03-17Export readNameCache / writeNameCacheMihai Bazon
2015-03-16rename --prop-cache to --name-cacheMihai Bazon
... and support storing there variable names as well, to help with multiple invocations when mangling toplevel.
2015-03-14Fix --reserved-fileMihai Bazon
2015-03-14Add property name manglerMihai Bazon
We only touch properties that are present in an object literal, or which are assigned to. Example: x = { foo: 1 }; x.bar = 2; x["baz"] = 3; x[cond ? "qwe" : "asd"] = 4; console.log(x.stuff); The names "foo", "bar", "baz", "qwe" and "asd" will be mangled, and the resulting mangled names will be used for the same properties throughout the code. The "stuff" will not be, since it's just referenced but never assigned to. This *will* break most of the code out there, but could work on carefully written code: do not use eval, do not define methods or properties by walking an array of names, etc. Also, a comprehensive list of exclusions needs to be passed, to avoid mangling properties that are standard in JavaScript, DOM, used in external libraries etc.
2015-02-11Parse regexes properlyAnthony Van de Gejuchte
2015-01-27Add option to preserve/enforce string quote styleMihai Bazon
`-q 0` (default) use single or double quotes such as to minimize the number of bytes (prefers double quotes when both will do); this is the previous behavior. `-q 1` -- always use single quotes `-q 2` -- always use double quotes `-q 3` or just `-q` -- always use the original quotes. Related codegen option: `quote_style`. Close #495 Close #460 Some `yargs` guru please tell me why `uglifyjs --help` doesn't display the help string for `-q` / `--quotes`, and why it doesn't output the expected argument types anymore, like good old `optimist` did.
2015-01-05Declare boolean type for --keep-fnamesMihai Bazon
2015-01-05Support keep_fnames in compressor, and --keep-fnames. #552Mihai Bazon
Passing `--keep-fnames` will enable it both for compressor/mangler, so that function names will not be dropped (when unused) nor mangled.
2015-01-04Fix backslashes in source-map paths on WindowsDerek Wickern
2015-01-01Use yargs instead of optimist.Kenneth Powers
2014-10-20Add option to allow return outside of functions.Mihai Bazon
Close #288
2014-01-09Added support for sourcesContent property of source mapArtemy Tregubenko
2014-01-07Fix #392Mihai Bazon
2013-11-28Add --noerr to turn off argument name checkingMihai Bazon
for now only used for keys passed to `-c` or `-b`.
2013-10-29Fix reading argumentsMihai Bazon
i.e. read `-c unsafe,unsafe-comps` as `-c unsafe=true,unsafe_comps=true`
2013-10-29Add "preamble" output optionMihai Bazon
Close #335
2013-10-28Fix codegen for when comments_before is undefined.Mihai Bazon
Fix #333
2013-09-02Better reporting of parse errorsMihai Bazon
2013-08-18fixes #259: don't unnecessarily quote object properties when --screw-ie8Michael Ficarra
2013-08-07Support `-p relative`. Fix #256Mihai Bazon
2013-07-30Fix #251Mihai Bazon
2013-07-28Don't require arguments to --encloseMihai Bazon
2013-05-21The extra /* */ isn't needed nowMatt Robenolt
2013-05-21SourceMapping pragma has changed to //#Matt Robenolt
See: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit The spec was updated on May 16th since `//@` was causing some issues with IE.
2013-05-15Add `--expr`, an option to parse a single expression (suitable for JSON)Mihai Bazon
2013-05-02Fix typo in bin and readmeKim Joar Bekkelund
2013-04-21Make compress/mangle disabled by default, as before ↵Mihai Bazon
5af144522a6fea302abdd0b63d48864de0664207
2013-04-20fixes #189: use dotted member access when --screw-ie8 option givenMichael Ficarra
2013-03-31uglifyjs binary: Make read_whole_file async and don't attempt to read STDIN ↵Andreas Lind Petersen
synchronously.
2013-03-25renamed --screw-ie to --screw-ie8, documented it in README.md, indicated it ↵Michał Gołębiowski
doesn't break IE9+
2013-03-24Add support for enclose option. Closes #139.Jake Harding
2013-03-22Keep legit code working even when --screw-ie is not passed.Mihai Bazon
Previously: Without `--screw-ie`, UglifyJS would always leak names of function expressions into the containing scope, as if they were function declarations. That was to emulate IE<9 behavior. Code relying on this IE bug would continue to work properly after mangling, although it would only work in IE (since other engines don't share the bug). Sometimes this broke legitimage code (see #153 and #155). With `--screw-ie` the names would not be leaked into the current scope, working properly in legit cases; but still it broke legit code when running in IE<9 (see #24). Currently: Regardless of the `--screw-ie` setting, the names will not be leaked. Code relying on the IE bug will not work properly after mangling. <evil laughter here> Without `--screw-ie`: a hack has been added to the mangler to avoid using the same name for a function expression and some other variable in the same scope. This keeps legit code working, at the (negligible, indeed) cost of one more identifier. With `--screw-ie` you allow the mangler to name function expressions with the same identifier as another variable in scope. After mangling code might break in IE<9. Oh man, the commit message is longer than the patch. Fix #153, #155