aboutsummaryrefslogtreecommitdiff
AgeCommit message (Expand)Author
2015-03-14Add property name mangler...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. Mihai Bazon
2015-03-11v2.4.17Mihai Bazon
2015-02-11Add filename to the JS_Parse_Error exception....It would be nice to have access to the filename of the file that includes the code that causes a JavaScript error. This is especially handy if uglifying multiple files at once. Only a small change is needed for this to happen as it's already available in the function that throws the error.Edward Casbon
2015-02-11Add .npmignoreRob Loach
2015-02-11Clean up unit test breakage...In 992b6b9fcce47ca67ecb14675f10b172ce7a99b5 unit test broke (which I missed). This was due to undeclared variables not being side-effects free. However, since they're really not side-effect free, just declare them in the test cases. Richard van Velzen
2015-02-11Fix invalid removal of left side in && and || compression...See #637. This does not produce the optimal result, but it does prevent the removal of non-side-effect-free code. Richard van Velzen
2015-02-11Parse regexes properlyAnthony Van de Gejuchte
2015-01-31Drop all `console` statements properly...Because the base reference can be an member expression as well, we have to dig a bit deeper to find the leftmost base reference. Fixes #451 Richard van Velzen
2015-01-27Add option to preserve/enforce string quote style...`-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. Mihai Bazon
2015-01-26Keep single line comments after nlb, after nlb...Fixes #583 Anthony Van de Gejuchte
2015-01-26Make empty source map values more reasonable in .minify()...`"null"` isn't a very usable value. `JSON.parse(null)` also gives `null`, which makes this fully backwards compatible. Closes #616 Richard van Velzen
2015-01-24fixes issue #621 SourceMap toString JSON format...The correct format of a sourcemap is acquired from a mozilla source map generator by calling toJSON on this object. This patch alters the toString function on mozilla generators to print the format that is to spec instead of the generator's internal representation of itself. Bryce Cronkite-Ratcliff
2015-01-20Merge pull request #615 from avdg/unicode...Give parser more unicode supportMihai Bazon
2015-01-20Add testAnthony Van de Gejuchte
2015-01-20Add unicode digit parsing supportAnthony Van de Gejuchte
2015-01-20Update unicode letterAnthony Van de Gejuchte
2015-01-13Optimize conditionals where the consequent and alternative are both booleans ...Tal Ater
2015-01-12Merge pull request #612 from rvanvelzen/issue-611...Replace the correct node when replacing in `void` sequencesMihai Bazon
2015-01-12Replace the correct node when replacing in `void` sequences...Close #611. Richard van Velzen
2015-01-11Merge pull request #482 from arty-name/inline-ng-inject...added @ngInject support for inline functionsMihai Bazon
2015-01-07Merge pull request #606 from rvanvelzen/document-double-dash...Document `--` for usage in CLI classMihai Bazon
2015-01-07Document `--` for usage in CLI class...Close #518 Richard van Velzen
2015-01-07Fix make_node_from_constant for Regexp-s...Close #588 Mihai Bazon
2015-01-06aborts(AST_If) returns the `if` node...Previously it returned the abort node from the alternative branch. This is not much use as it can be different from the one in the body branch (i.e. return vs. throw) and can trick us into issues like #591. Fix #591 Mihai Bazon
2015-01-06Location fix for Mozilla AST start token.Ingvar Stepanyan
2015-01-06Track ending lines/columns; fix end locations in Mozilla AST.Ingvar Stepanyan
2015-01-06AST_Do nodes: walk body before conditionMihai Bazon
2015-01-05Pass mangle options to `figure_out_scope` and `compute_char_frequence`...Fix #219. Because the options were not set and `toplevel` is `false` by default, some toplevel names would sometimes not be mangled correctly. Richard van Velzen
2015-01-05Fix handling \r\n...Close #437 Mihai Bazon
2015-01-05Declare boolean type for --keep-fnamesMihai Bazon
2015-01-05Merge branch 'keep-function-expression-names' of https://github.com/rvanvelze...Mihai Bazon
2015-01-05Support keep_fnames in compressor, and --keep-fnames. #552...Passing `--keep-fnames` will enable it both for compressor/mangler, so that function names will not be dropped (when unused) nor mangled. Mihai Bazon
2015-01-04Add an option to prevent function names from being mangled...See #552. This is mostly useful for having the actual function names in traces. Richard van Velzen
2015-01-04using the original sourcemap as the base...* Creates a new SourceMapGenerator based on a SourceMapConsumer: https://github.com/mozilla/source-map#sourcemapgeneratorfromsourcemapsourcemapconsumer Caridy Patino
2015-01-04Resolve the relative path to lib files last...This allows usage of UglifyJS on build systems which have a flat (or non-matching relative) directory structure for source files.truiken
2015-01-04Add a "keep_fnames" option to the compressor to retain function expression names...See #552. This is useful for stack traces. Richard van Velzen
2015-01-04passes in references to process and Buffer to silence ReferenceErrorsachingbrain
2015-01-04Fix backslashes in source-map paths on WindowsDerek Wickern
2015-01-04Update README.md...otions => optionsAustin Brown
2015-01-04Use svg instead of png to get better image qualityPeter Dave Hello
2015-01-04Fix #556...`\uFEFF` (ZERO WIDTH NO-BREAK SPACE) is removed when parsing, but was un-escaped for the output when `ascii_only` was false. When using UglifyJS multiple times (creating packages from minified sources, for example), this would lead to problems because the byte was removed when parsing for the second time. Richard van Velzen
2015-01-04Merge pull request #570 from rvanvelzen/fix-569...Fix #569Richard van Velzen
2015-01-04Merge pull request #584 from clyfish/fix-base54...fix base54Richard van Velzen
2015-01-04Merge pull request #592 from micschro/patch-1...Fix max_line_len not working for JSON filesRichard van Velzen
2015-01-04Merge pull request #600 from KenPowers/master...Use yargs instead of optimist.Richard van Velzen
2015-01-04Fix #569...When no arguments are given to `new Function()`, it should be treated as a regular anonymous function (http://es5.github.io/#x15.3.2.1) Richard van Velzen
2015-01-01Use yargs instead of optimist.Kenneth Powers
2014-12-31Merge pull request #599 from rvanvelzen/fix-597...Fix #597Mihai Bazon
2014-12-31Fix #597...NaN and Infinity were replaced in the output generation, instead of during compression. This could lead to results where `1/0` was inserted without parens leading to invalid output. The nodes are replaced in the compression step now, and the output generation returns their regular names. This should not be a problem, since they're already only constructed from the original name. Richard van Velzen
2014-12-17Fix max_line_len not working for JSON files...As `maybe_newline()` is only called when `might_need_semicolon` is `true`, the `max_line_len` option has no effect for files without (or with very few) semicolons (like JSON files). A simple for this problem is to use `maybe_newline()` instead of `noop` as the `newline()` function in non-beautify mode.micschro