[Pkg-javascript-commits] [uglifyjs] branch master-experimental updated (18129c1 -> 84cc8af)
Jonas Smedegaard
js at moszumanska.debian.org
Wed Apr 30 00:04:05 UTC 2014
This is an automated email from the git hooks/post-receive script.
js pushed a change to branch master-experimental
in repository uglifyjs.
from 18129c1 Update README.source to emphasize control.in file as *not* a show-stopper for contributions.
new 66e0f2c Bump standards-version to 3.9.5.
new 7d562ca Update copyright file: Add alternate git URL.
adds 9b6b3df Bump standards-version to 3.9.5.
adds 43222a8 Update copyright file: Add alternate git URL.
adds e419cdd Fix drop upstream parts of git-ignore file.
adds c6a4f61 Update changelog, control file and copyright hints.
adds 7004741 Strip .gitignore file.
adds f59061d git init (moved from a mercurial repo, but I don't care about previous history)
adds d3fd47d minor
adds 0f5aef0 fixed some issues with code generation; it's now hopefully complete.
adds 141b5f2 added process_ast which mangles variable names and will eventually apply some optimizations to the AST to produce compressed/mangled output.
adds f22f0d1 resolve simple binary ops on constants
adds 2e4f5da mangling/compression finally works fine (compress itself, run the compressed version and we get identical output).
adds 388277d fix parsing problem (only allow minus as part of the number when it's the first character)
adds ff518bf allow function(){return} (no semicolon after return) when not in strict-semicolons
adds c585bdb "new Foo;" should still insert an empty argument list
adds b060d6a added "with" and "atom" generators for codegen
adds 9e80e0e handle return with no arguments in codegen
adds 1643ec1 fixed parsing conditionals (thanks Marijn!)
adds 70a9e9b support "with" and "atom" in process_ast
adds 315e128 minor
adds 5a89d13 disorganized tests
adds c1b1aa5 always add space between consecutive [+-] operators (handles "i + ++j").
adds be26a86 add parens around called expression if not "name" or "dot" (should cover all cases)
adds 4558de4 display empty blocks as "{}"
adds 6fc4f36 minor
adds 9cb7821 Better fix from the master programmer for some issues that I identified: http://marijn.haverbeke.nl/git/?p=parse-js;a=commit;h=2e09d491179be4a838e9435cdacfd7f1e84e9646
adds 78eb4e6 better fix for "{return}" case (http://marijn.haverbeke.nl/git/?p=parse-js;a=blobdiff;f=src/parse.lisp;h=da8409d1e7078dea43c5c5de7ce5afcf1caf6562;hp=80438c39afad5ca5d5fc3fca35a13d3daae63de3;hb=732969c989144e56a74b51dea6b9e227a7e9d031;hpb=2e09d491179be4a838e9435cdacfd7f1e84e9646)
adds 96c47bd fix for parsing ".1" (discard the dot from punc. chars)
adds 99d4b8b minor
adds ce318ce minor
adds ce18e54 minor style changes
adds bae53cf rewrote proper mangler/compressor (in process.js); revised code generator. It's now beating YUI compressor by 2.4KB (and by many long seconds :-p) on the DynarchLIB code.
adds 3860ab8 some reorganization, some fixes (moved gen_code to process.js, handle consecutive var decls in switch blocks)
adds 3a99226 minor
adds b98d07a Fixed bug that showed up when processing jQuery: I was using the "token in KEYWORDS" construct everywhere, and it doesn't work well because jQuery defines a lot of variables using names that have some standard meaning in JS, such as "toString". "toString" in OBJECT will always evaluate to true, since all objects have a "toString" method, but it's not what we expect.
adds 169da62 lots of other fixes while testing on jQuery:
adds c9a7efa another fix: don't shadow a name that is referenced but not defined -- it's possibly a global defined elsewhere
adds 5675154 dropping spurious brackets got back, but this time it's safer
adds e6c1859 further optimizations for IFs:
adds 2167f4f more optimization for IF statements
adds ed0f081 comments + small cleanups
adds 9026e22 minor
adds 299ae5c added some documentation
adds 5a1a2f0 README.org for github
adds 8705783 symlink not good enough for github.
adds c50512b README for github, take 3
adds 6cb0104 fixed doc rendering for github
adds d034913 minor doc changes (link to the Google Group)
adds ee4ae7b links
adds 190cf6f links
adds 8806318 squeeze a few more bytes: if (!foo) bar(); else baz(); ==> foo ? baz() : bar();
adds dbfa880 minor: transform !foo?bar():baz() ==> foo?baz():bar() for all conditionals (16 less bytes on DL and 3 on jQ :-p)
adds c4a966a Fix for: http://github.com/mishoo/UglifyJS/issues#issue/2 --
adds e3ccaf9 Allow unescaped slash character in literal regexps, when inside a character class.
adds 8e77cfe we must add semicolon after do{...}while()
adds 97ca763 newline after return shouldn't cause the next token to become the returned value: http://marijn.haverbeke.nl/git/?p=parse-js;a=commitdiff;h=894cf114437fbe23cb796a42be69e13cc0de6129;hp=bfddd819c0801ea66f375b3626d397849a71cffb
adds 0188ecc maybe_before_semicolon no longer in use
adds e3d3d1d add parens to "seq" in conditionals; fixed typo that caused this to break in "binary" as well.
adds ba5bbe2 support for '2e-3' (http://github.com/mishoo/UglifyJS/issues#issue/4)
adds 7f49791 newline normalization (http://github.com/mishoo/UglifyJS/issues#issue/7)
adds a9e88c6 small fix (content of line comment tokens had the last char cut)
adds f24fdf6 Multiline comments that contain a newline will trigger semicolon insertion (http://github.com/mishoo/UglifyJS/issues#issue/8)
adds a3ba8ef when not in "strict semicolons", allow trailing comma in hash and array literals (http://github.com/mishoo/UglifyJS/issues#issue/9)
adds 17cf220 add parens around "assign" when it's used as condition in the ?/: operator. (http://github.com/mishoo/UglifyJS/issues#issue/10)
adds 4df9759 add parens around "seq" when used as constructor. (http://github.com/mishoo/UglifyJS/issues#issue/11)
adds 436eba4 fixed again http://github.com/mishoo/UglifyJS/issues/issue/11/#comment_361674
adds d910805 `new (X ? A : B)` → `new X?A:B` --- now fixed.
adds 3cff513 Fixed parsing [^[ ... ] in regexp.
adds 8201ca2 adding space before the colon in literal objects is now optional (beautify.space_colon, by default false)
adds 577f7e0 minor cleanup
adds 1398a9a some cleanups
adds 3da76f9 removed old/unused files
adds 81c6038 no more JSON.stringify to output strings
adds 79a4c80 small script to call the uglifier/beautifier
adds a554a69 add parens around "seq" when used as condition in the ?/: operator
adds 496d35c minor improvement: if (!foo) bar(); else baz(); ==> if (foo) baz(); else bar();
adds c05c1db minor: don't add parens around "binary" when used in combination with an operator of the same precedence that is: a+(b+(c+d)) ==> a+b+c+d
adds 3db2083 reverted previous commit [ a-(b-c) was translated to a-b-c which is wrong ]
adds 6ccdbc7 minor
adds b99aefa block brackets are required in try/catch/finally (AST change: try/catch/finally now receive an array of statements, like "function")
adds 80e4320 small cleanup
adds a362966 add package.json for installation via npm
adds 98176f7 some cleanups regarding "block" nodes -- and gained a few more bytes by properly adding the brackets *only* when really needed.
adds 192096b Fixed bug when adding blocks to THEN clause:
adds 45e86a2 fix: don't add a mangled name to anonymous functions
adds f0da40a minor optimizations/experiments:
adds 73898b1 minor fix gains another few hundred bytes on DL, Ymacs and jQuery. --seqs seems safe, so it's now default; use --no-seqs to disable it.
adds 1c5ca3c default make_seqs => true
adds 7ffacdb update docs
adds fcafb26 fixed links
adds 57ef537 no need to escape slashes in regexp, since we store the backslash as well
adds 1a7834e fixed parsing for x++ / 5
adds b3bddef minor
adds 605fb8e escape \r and \f when in output strings
adds 60ee8b2 parenthesize "dot" in "new" calls; sometimes this can add unnecessary parens, but it's safer (TODO: only add parens when necessary). Fixes:
adds 92bc04c back to using JSON.stringify to output strings (still the safest variant)
adds b8ad92d support "const"
adds 284b919 fixed parsing 0xC1BDCEEE
adds 6570252 fixed issue with mangling: http://github.com/mishoo/UglifyJS/issues#issue/17
adds be3ab72 added option to mangle toplevel scope
adds b5f7a12 minor improvements:
adds 3ebf1a0 Handle EOF when reading blocks. http://github.com/mishoo/UglifyJS/issues#issue/19
adds d7333fe minor fix for numbers
adds dd0d3bf fixed again parsing unterminated blocks (handle EOF)
adds f1aebc3 don't enforce for/do/while/switch in label_statement http://github.com/mishoo/UglifyJS/issues/closed#issue/20
adds da2ca9a in fact, do check for do/for/while/switch after label, but only in "strict_mode"
adds b4471e1 croak on try{} without catch{} and finally{}
adds 4ff60e4 added --ast
adds 33cdf4b when --ast is specified we should still go through all the requested tree processing
adds 299bad6 "case" and "default" nodes no longer appear in the tree; instead, since they can only be branches in a switch, the AST for switch blocks now looks like this:
adds 786a1d8 removed unused code
adds ec41f0a added --overwrite to overwrite the original file
adds a0582a3 Merge branch 'master' into macros
adds ca5b39e remove final "break" statement in switch (only when unlabelled)
adds 923ec5a some doc updates
adds 1307ce5 allow regexp immediately after else
adds ad34b71 allow a literal regexp to start a statement
adds 315230b looks like comma-expressions should be explicitly forbidden in expressions of the "conditional" (?) operator. (cherry picked from commit c7b83e1be7628eac31ac4b289ee3cbc7d4122f30)
adds aa0ba96 don't die on byte order mark at the beginning of files
adds 7c40517 Accept operator &= http://github.com/marijnh/parse-js/commit/4cdced09ab375ad81f85dcaa5cf82b362a762b41
adds 630237d disallow assignment to 'this' http://github.com/marijnh/parse-js/commit/77d1fa4694cb555431291000cc22db3498ad6ea1
adds 9b8282b NaN is not a keyword http://github.com/marijnh/parse-js/commit/63f6632bcc9134ecad6bb0b18273e28f892dcb9b
adds c10ea3f when parsing a function, reset in_loop to disallow break/continue
adds 1a71081 mark 'i' as referenced in the current scope on "for (i in foo)"
adds 77f2827 tighten try/catch/finally blocks
adds c41857f ability to remove some dead code, and warn about it (ON by default):
adds 19a5540 updated doc
adds 9f2dd89 update doc
adds 51b9627 fix for http://github.com/mishoo/UglifyJS/issues#issue/25
adds 99ccc27 some cleanups/fixes that were figure out in the Lisp version [1]. Big speed improvement.
adds c618ed6 when the condition in a conditional is a conditional, should add the parens (http://github.com/mishoo/UglifyJS/issues#issue/72)
adds a206f93 don't quote object keys when they are integers
adds 0111230 cut off a few more bytes by being a bit smarter about adding parens around function literals http://github.com/mishoo/UglifyJS/issues#issue/29
adds 533d18d more cases to handle before discarding parens around function literals
adds d4357e8 skip literal functions when detecting calls in "new" expression
adds 4e01991 handle <<, >> and >>> when resolving binary operations
adds 7bdccef should be safe not to force numbers in evaluating <<, >>, >>>
adds 568da4f more accurately support numbers as keys in literal objects
adds 48116b3 fixed regression (we always quoted object props)
adds 26b651d fixed another regression (we always added parens in unary-prefix/postfix)
adds a9770ea discarded other unnecessary parens -- before, !!b used to turn into !(!b)
adds 862268a convert string properties to numbers where possible in literal objects
adds 6757bc8 reverted previous commit (not such a good idea, as it changes semantics)
adds ea2b579 fix parsing for 1e+2
adds 72a8ffa in Node-0.3 "sys" has been renamed "util"
adds 09b4201 minor
adds fd629c8 version test for node was missing a leading `v` and was not compatible for all versions <0.3
adds 1b010dc Merge branch 'master' of http://github.com/michaelficarra/UglifyJS
adds 62f5950 make sure *this* is quoted
adds ac7a4db reimplemented #28 in a sane way
adds df702bb Merge branch 'master' of http://github.com/satyr/UglifyJS
adds d59a614 sys = require("util") for node 0.3+
adds bb3071c some cleanup
adds 6bd7983 squeeze a few more bytes with an apparently safe transformation:
adds 831bc79 Small note: we beat GCL on jQuery ;-) Should update the stats in the documentation.
adds 3be3851 Added an easy way to create unittests and created units test for 16 of the fixed issues on github
adds b513489 small change in handling the first comment (only keep the first X comments of the same style)
adds 2c05d52 small change in the way the lib is loaded (officially named "uglify-js"; uglify-js.js should be symlinked in ~/.node_libraries/ and someone get this patch into node: http://groups.google.com/group/nodejs-dev/browse_thread/thread/fee52df63d3a1201/7da4897463cfbc9c#7da4897463cfbc9c)
adds c76ac1a renamed uglify-js.js to index.js since it appears to be too complicated to get a simple bugfix into node (http://groups.google.com/group/nodejs-dev/browse_thread/thread/fee52df63d3a1201).
adds 38f691e Add support for compressing 'a + "str1" + "str2" + b' to 'a+"str1str2"+b'
adds 6c9936b Merge commit '38f691e'
adds 899c9e1 minor optimization for if (foo) { ... return }
adds 97f964a compress assignments more
adds 01f9d66 Be even better with assignments
adds 0ade80e Merge branch 'assignment' of http://github.com/WizKid/UglifyJS into wizkid-master
adds 5f79498 compress assignments more
adds 2d28aa7 Be even better with assignments
adds 3de6acb Treat the first statement in a for-loop the same as a normal statement. So do seq with previous statements. Put together var and const declarations. And if it is empty move the last statement there
adds 2b67f12 Add some more types to find_first_execute. Gives a few bytes on jquery and processingjs
adds 5b093e1 whatever I'm commiting right now should just be a merge operation
adds 230f452 Add a decompress step first so we don't have to add a lot of code to handle special cases around sequences and first statement in for-loops. But if you turn of make stuff in to sequences this can make the result be bigger. But it is so much easier to do stuff
adds fda56da Move i++, ++i, i+=1 forward into the next statement if possible
adds 891f0f5 Merge https://github.com/WizKid/UglifyJS into wizkid-master
adds 1cbd34a Merge branch 'wizkid-master'
adds 808a69c fixes issue #43 (restore regex_allowed after skipping a comment)
adds 85a5d74 minor
adds c93432b removed unused code
adds 5c552d7 Make the package.json work when npm linking again
adds 5451159 added --extra option, which will enable optimizations that we're not yet fully sure about (i.e. might alter code logic)
adds 3fb2a84 fixed issue #50 and added test case. also:
adds 831b1de Fix issue 48 where 0 and "" was treated as same and wrongful optimizations where done
adds e41d6d0 Merge remote branch 'wizkid/master'
adds ba1962a oops, fixed regression (var joining is safe, should be enabled by default)
adds 62cd070 true => !0, false => !1 -- seems safe; this cuts 1K on DynarchLIB
adds 831c2ab be smarter about negation: !(a == b) => a != b !(a && b) => !a || !b !(!a || !b) => a && b etc.
adds dc3870b fixed issue #53: x = (y, z) should not discard the parens
adds 43c585a foo.toString() ==> foo.""
adds 6261a50 removed useless check
adds 4d45bc8 disabled foo.toString() ==> foo+""; it's still available if you pass --unsafe to uglifyjs (or call ast_squeeze_more if you're using the JS API).
adds d36abb0 Fixes printing printing small floating point numbers.
adds 3865b73 minor (got rid of try/finally)
adds ca9388d fix for issue #58
adds e2e4d8b fixed issue #57 -- add block brackets around do/while in code like this:
adds 2b802ab fixed issue #59 ("!--x" incorrectly yield "--x")
adds 1f9c172 fixed issue #61: f((a, b)) was incorrectly rendered f(a, b)
adds 54d46bb removed Node dependency from process.js (issue #60)
adds 3184a1a fixed issue #62: properly handle negation such that:
adds 9b619d1 got rid of JSON.stringify for writing strings; having our own function now, which counts the " or ' characters in the string and generates the smallest output.
adds cd42c68 compress new Array(1, 2, 3) into [1,2,3]
adds f98c5eb fixed regression: new Array(x) should be left as is.
adds 8b7599d properly handle the case where Array exists in current scope:
adds d0d0808 updated expected test result (broken since we added support for quoting with either " or ' depending on which one requires fewer backslashes)
adds 2beccfd but then indeed, "new Array(x)" can be safely written "Array(x)" if we're talking about the global Array function.
adds 145317b compress Array(1,2,3) into [1,2,3] too
adds bd7780d updated doc to point out the potentially unsafe Array transformations
adds e69bf38 doc fix
adds 3f9b302 added an array mapping utility that allows us to push stuff at the top
adds 4824f90 fixed issue #68: push function definitions to the top of the current scope block, when they are not inside some other block like a conditional. This is done in ast_mangle, so it's only available if mangling is enabled.
adds d643f2a updated "expected" version for tests affected by the last change
adds cd78ff5 fixed issue #69
adds 4764baa fixed issue #70: for reasons unknown to humanity, you can have an unparenthesized literal regexp as a "case" expression.
adds a21c720 switched to the simplified BSD license
adds 617a3e7 support parsing getter/setter declarations in object literals (patch by Pavel Podivilov)
adds 0cbd088 support mangling/squeezing/gen_code for getter/setters in object literals
adds 9baf991 fixed comment
adds cc2d15b issue #71 -- increment line count in multiline comments
adds 50005c4 issue #72: (0).toString -> 0..toString
adds a44d50d fixed parsing "5..toString()"
adds 8e814c8 support [1,,3] (an array with 3 elements)
adds 7248295 Added the ability to insert some newlines in the generated code (--max-line-len, default 32K). I've seen both FF and Chrome croak with weird errors when all code was on a single line of 670K (funnily enough, IE didn't complain)
adds cc8bdc3 moved split_lines into the library code and exported it
adds 5b2c91b Extend name mangling from base54 to base64 after first character. Provides better compression on libraries with a large number of variables. Example: DynarchLib compresses 571 bytes smaller (non-gzipped) or 212 bytes smaller (gzipped).
adds ae50289 reversed the previous patch; the ideea was good, but implementation seems to be incorrect
adds 30a0b41 fixed issue #77 -- endless recursion if the stream ends with ++/--
adds d9e1783 remove bogus ~= operator and extra %= mention http://marijnhaverbeke.nl/git/?p=parse-js;a=commit;h=eb75e7e7f48fd317727229a23616bdf71a23c1fe
adds 50a7d80 fixes #78 -- quote numeric property names when they're negative
adds 5579816 don't call output.end() when we're writing to standard output
adds 7951d98 semicolon removal less aggresive: {while();} must keep the semicolon, otherwise it introduces a syntax error
adds 5ff30fe Employ the full parser, rather than just the tokenizer, for splitting lines (which is the only way we can deal with the "regexp starting a statement" syntax). Comments are now attached to the next token (.comments_before) rather than reported separately, which also simplified some code.
adds a014e9e read --max-line-len argument as an integer
adds bcc976f fixes #83 -- show a cleaner error when the input file isn't found
adds 3c616d0 fixes #84 -- safer dealing with boolean expressions, at the expense of a few extra bytes :-(
adds 2840c0a refs #84 -- consider a = !b a boolean expression too
adds 7bb084c transform !(a?b:c) ==> !a?c:b
adds 664e0cc minor optimizations:
adds fa6626e oops, fixed regression: !(a?b:c) can't convert to !a?c:b
adds c2a4319 fixed negating conditionals again :-\
adds 37b4d56 fixes #86 -- dropped unsafe transformation
adds fb2e980 mostly cosmetic change
adds 02d7a2f - Removed --extra because of bugs in the optimizations. After the bugs are fixed I will move them into --unsafe so they get some testing. - Updated tests so all everything are green now
adds 99560d1 removed unused code
adds 8f78189 removed more unused code
adds c1cfc3d fixes #65 -- moved the following transformations under --unsafe:
adds ff1fea4 keep the first token in ast_walker, ast_add_scope and ast_mangle (useful for the case where we include the original token in the AST, see parse())
adds 219f0c8 more embed_tokens: do lambdas too
adds 234ced3 fixes #87 -- transform while(true){...} into for(;;){...}. Drop the block if it's empty.
adds b32b6a1 but don't try to warn when the "unreachable code" is empty
adds bf2cbf5 unstrict equals operator when operands share the same type
adds 56c62d9 resolved conflict
adds 5319c1b don't display warnings unless --verbose
adds b02f2d0 fixes #94 -- drop names of inline functions when they aren't referenced anywhere
adds 15604c4 slightly better fix, in case your inline function is named toString, hasOwnProperty or whatever.. :)
adds 4ec73d3 More ignore rules
adds 5eaa12f Reserved variable names option
adds 57ee9e7 Merge branch 'master' of https://github.com/cadorn/uglify-js into cadorn-master
adds 8638ae8 fixes #92 -- added --reserved-names command line argument (pass one or more names separated by a comma to exclude them from compression)
adds 1cdb981 updated doc of ast_mangle (there was a small API change)
adds a06a492 issue #96 -- added parser test suite, thanks to Peter van der Zee
adds b876199 issue #96 (regular expression flags) -- accept any identifier character for regular expression flags (ES-262, 7.8.5)
adds 7cdfabc support unicode chars in identifiers
adds 687382e disabled some checks by default (they're enabled in strict_mode): - continue/break outside loop/switch - return outside of function - continue/break label not defined
adds 4b29a26 treat ZWSP (zero-width space, U+200B) as whitespace
adds 4c4f5af issue #96 -- support UnicodeEscapeSequence in names
adds 4d23891 fixed some regexps
adds 68ae5c3 minor
adds d221da0 allow new Date++
adds 7f9ddd4 allow call expressions to be lvalues too
adds 3114abe don't check whether the left side is assignable, unless strict_mode == true
adds aeccb64 support funny cases of for-in:
adds 9760b79 renamed variable "strict_mode" to "exigent_mode", to avoid confusion with ES5's "use strict;" (which, for the time being, we don't care about).
adds f378f63 reverted 687382e4d2f55401483e6823cb814d7c9cab5dbc and updated testparser.js to use valid code.
adds a908752 fixes #99
adds cc9e94d warn when "conditional comments" are encountered
adds de80c97 add an ascii_only option to gen_code
adds bb033d4 added --ascii option, useful to encode non-ASCII characters as \uXXXX. apply this to literal object property names and identifiers too.
adds 3d10686 updated gen_code API description
adds a55ed6f transform a["123"] into a[123] (fixes #107)
adds 3b1eee2 only add a second dot in forms like (5).toFixed() if the number is integer. That is, the correct transformation for (0.9).toFixed() is .9.toFixed() (fixes #109)
adds a1e5e94 fixed parsing for stuff like 0x12.toFixed() (when we have 0x, the dot cannot be part of the number)
adds 9357003 removed duplicated operator
adds 361951f fixes #117 -- don't parenthesize literal objects
adds ca2bcfd add parens around object literal when used as first thing in a statement
adds bf46f2b fix more pathological cases of parens around literal object
adds 1eecae3 again: it can be first thing in a statement when in unary-prefix too...
adds 55ddee9 more parens around literal objects/functions when first thing in a statement [ will this end? :-) ]
adds 175b4cb handle conditional operator too
adds 852122c NPM changes
adds 9c4fbf4 comments (fixes #120)
adds 4a99084 Support unicode newlines in make_string (make uglifyjs work for the Dragonfly project).
adds 0fa93d2 Merge branch 'master' of https://github.com/chriskr/UglifyJS into chriskr-master
adds 317d2bb fixes issue #129 -- initializers in var/const cannot be seq-s (parens needed)
adds 56972f9 only defuns define a new name in the current scope; named lambdas seem that should not affect it. (fixes #128)
adds 84b85fa better fix for issue #128:
adds 6e751ef support "splice" node, which is like "block" but doesn't add the brackets in gen_code
adds 6e89f5b added a sample on how to use the parser/walker to instrument some code
adds e83767e embed tokens in expr_atom and expression parsers too
adds b5d994a add brackets around splice nodes when they're directly under "for", "for-in", "if", "while", "do" or "with" nodes
adds f0e1ec2 make the module exports a convenience function so minifying src with the defaults is just a one-lininer: min = require('uglify-js')(src);
adds 8f4fe4c Merged pull request #133 from aaronblohowiak/master.
adds d469517 Added option to define symbols for replacement (cf #define) and improved constant folding for shortcut operators ('&&', '||' and ternary conditional operator)
adds df17381 Implemented --define-from-module constant substitution.
adds 70cb9ee Merged pull request #137 from tav/master.
adds 5bedabe can't optimize away do{ ... }while(false) - fixes #150
adds a303476 options.defines is optional..
adds d021ad8 Adds missing whitespace characters to WHITESPACE_CHARS
adds 86a1d8d Merge pull request #149 from killdream/master
adds 7c535e6 simple "make" utility. ideas welcome.
adds d03ac93 v1.0.2 -- fixes #152
adds b01fa40 newline after continue/break ends the statement (fixes #154)
adds 068454a minor
adds ae88177 mangled name of a function expression should not clash with a name in the parent scope, in order to deal with a 15 years-old IE bug. (fixes #161)
adds 4473b36 version 1.0.3
adds 9472f4f More sane unit testing script
adds b3ed515 Merge commit '9472f4ff19e0daf3adb7fdb0304ab77f19d3cc52'
adds 9053435 Compress ifs further
adds b17d1b6 small cleanup
adds e0926ab Failing test cases for name mangling
adds 6217aab fixed mangling of lambda names (regressed as of ae88177)
adds 440d08f version 1.0.4
adds 6a873a7 fixed regression after ae88177fde6a7e54b047: mangling the name of function expressions might clash with an identifier that's already in scope if eval/when is in use.
adds 59233a3 give unary postfix ops the right precedence (fixes #173)
adds 8337656 added --inline-script option to escape `</script`, by popular demand
adds d8435a4 updated doc
adds 11566e7 version 1.0.5
adds 8207ba9 minor (`</script` needs escape only if followed by `>` or whitespace)
adds 8b2afcb Only a subset of whitespace characters is problematic after `</script`, so use `[\t\n\f\r ]` instead of `\s`.
adds b763f4a `</script/` is problematic, too.
adds 9d2fcbb Merge pull request #177 from mathiasbynens/master
adds 4d5d1bb support deprecated OctalEscapeSequence in strings (fixes #178)
adds 5a75e1e Added a failing test for with statements.
adds f5c6f63 Merge pull request #179 from eirikurn/master
adds 968c804 fixed compression of `with` statements (regressed at 9053435497e6ab53b100ead72aa399e48f3df8c3)
adds 89f1330 version 1.0.6
adds 9210f7e parenthesize seq values in object literals (fixes #180)
adds 941c845 discard backslashed literal newlines in strings (fixes #183)
adds 5221a35 Added ast_lift_variables, which does a little more than its name says:
adds 115abc6 attempt to group assignments into the var declaration added --lift-vars to bin/uglifyjs options
adds 4cfe602 minor
adds db495a3 more solid check need of semicolons after the last statement of a block. small cleanup in gen_code (using ast_walker now).
adds 5ee3b60 Easy yet safe optimization. Saves 119b on jQuery.
adds 48cc9be Updated readme. Follow @UglifyJS on Twitter. ;-)
adds 90ac6dd no point to keep initialization values in var/const in unreachable code
adds 80afe6f mangle label names (fixes #151)
adds 3cd9829 more fixes:
adds 7f89bab Compatibility with the JScript engine, which doesn't support the \v escape sequence
adds b5d9e39 Merge pull request #199 from thorn0/patch-1
adds 0c67f57 moved Array ==> [] transforms in squeeze-more (so they now apply on `--unsafe`)
adds 01a83b4 parameter start arrives 'undefined' or 'null', any falsy value should be zero
adds a3c14f7 Merge pull request #200 from johnjbarton/01a83b461f541898cb4b2f9ef033245c1a7ee18b
adds 8fff849 Fix tests broken after 3cd9829a
adds b6575ef Merge pull request #202 from lautis/fix-broken-tests
adds 43c21c7 Merge branch 'master' of github.com:mishoo/UglifyJS
adds 25d02fb updated doc
adds 5f2528a exit with code 1 in case of error (fixes #204)
adds 6c4a19f version 1.0.7
adds fce7830 fixed parsing in exigent_mode + embed_tokens (fixes #208)
adds cd41e5a merged cade4f252e5f4db715d9 from @schmerg, other minor doc updates
adds d891e2d fixed codegen for `(function(){...}()) && bar()`.
adds d823384 Added an utility that allows walking depth-first easily. For example:
adds 42bbd03 fixed rendering of extremely "large" negative numbers (fixes #214)
adds b6de527 err, fixed again negative numbers. (#214)
adds 71f32c4 Constant fold modulo operator.
adds 07041f7 Merge pull request #220 from proxv/master
adds 87d8f58 Fix sparse array literals e.g. [,]
adds 1e7cd25 Merge pull request #216 from jasondavies/sparse-arrays
adds 39093f4 compile `a=a+b` to `a+=b` and so on
adds 83d1c85 put the assignment types into an array literal instead of stringsplit
adds 7677944 Merge pull request #230 from thejh/assign-to-modifyassign
adds dda958a support empty "then" IF branch in codegen
adds ff46b80 fix for parsing regexps like /=/ where statement is expected
adds 1b94161 Add syntax error on newline after 'throw'
adds f12f00e add parens around literal object as statement (fixes #234)
adds a46a85b Parenthesize sequences in constructor calls.
adds 4481a82 Merge pull request #232 from proxv/master
adds de91bd2 Merge branch 'master' of github.com:mishoo/UglifyJS
adds 4c3d5b9 fixed removal of `if (false) { ... }`
adds 3e5f5b4 Added null as a constant.
adds 2d3e317 Merge pull request #235 from josephg/patch-1
adds e967213 fixed issue #112: `_ == true` -> `_ == 1` and similar
adds bdf9fe5 Merge branch 'issue112' of https://github.com/michaelficarra/UglifyJS into michaelficarra
adds 8be7668 Parenthesize object literals with no properties.
adds 4158510 Merge pull request #237 from proxv/parenthesize-no-prop-object-literals
adds 926331b Merge branch 'master' of github.com:mishoo/UglifyJS
adds 5fce8a3 Better parser error message for node
adds 617353c Merge pull request #172 from 5long/master
adds 0bb798b semicolons
adds bf136c0 in fact, new Error().stack is enough to get a stacktrace
adds 6d79555 Recognize various Unicode whitespace
adds e57aadc Merge pull request #211 from lautis/unicode-whitespace
adds 41c1754 Merge branch 'master' of github.com:mishoo/UglifyJS
adds e82887b try negation in make_conditional (closes #227)
adds a476f45 Encode null characters as '\0'
adds ad7bfc4 Merge branch 'encode-nulls' of https://github.com/lautis/UglifyJS into lautis
adds a02bb16 version 1.1
adds 66506c4 fixed version for NPM
adds 1721863 Parenthesize function expressions.
adds 3dc988b Merge branch 'parenthesize-function-expressions' of https://github.com/proxv/UglifyJS into tmp
adds 48d2fe7 Don't insert semicolons before multi-line strings.
adds 120ed08 Merge pull request #238 from proxv/multiline-strings-semicolons
adds 72ddf7d keep literal newlines in strings as \n
adds 5ba19b3 reverted last patch
adds f896f69 fix parenthesization of anonymous function calls
adds 3a67143 better fix instead of f896f690500f11130435c495a7b1eaf9338c59dd
adds 60fef22 negating >= and <= operators is back to --unsafe (closes #239)
adds 7805e1d add final semicolon (closes #126)
adds 565ee79 version 1.1.1
adds 8459929 use == instead of === in `member` (fixes #244)
adds 4f97733 escaped slash character in regexp
adds e751e36 String(a) => a+"" (with --unsafe)
adds 8c50b79 at most one ';' at EOF
adds 662e846 some cleanup
adds 1b81b9b Unsafe Object constructor transformations:
adds 8bdc996 Merge pull request #263 from ikokostya/object
adds dd7f9b8 Use a different scope for labels than for variables.
adds 2ee365b Fixed parse error position: start line number and column number from 1.
adds 9d4d768 Merge pull request #258 from ikokostya/fix-error-pos
adds f74e6bc Keep end position of each token
adds 00a7beb Merge pull request #248 from WolfgangKluge/endpos-in-tokens
adds 7decebf fixes embed_tokens for functions (#260)
adds 311c590 new RegExp() => RegExp() (with --unsafe)
adds 4987ee3 new Error() => Error() (with --unsafe)
adds b9cd98a Unsafe: new Function() => Function()
adds 03f2a85 option to prevent mangling or dropping of function names (#267)
adds 58d3600 updated doc
adds 4b71a9e version 1.2
adds 3800c29 made npm happy
adds 28ceb22 don't walk label statements twice (closes #272)
adds 29815b0 version 1.2.1
adds 1ab6d41 walk label statement *after* mangling it (really fixes #272)
adds 4675bca v1.2.2
adds e51d1e4 support `debugger` statement (closes #278)
adds a0dcd85 improved redo_if (closes #283)
adds 08f6e1a v1.2.3
adds 84553e7 Fixed #286: Only one variable declaration allowed in for..in loop
adds dc5a7d1 Check abort else statement in make_real_if() when t[0] is "stat"
adds 186aba5 Remove whitespace in #! line
adds 0f8e7b8 Merge pull request #291 from isaacs/patch-1
adds a60a831 v1.2.4
adds 5a0095f Merge branch 'master' into abort-else
adds fb1ba80 Test the local instead of the installed version.
adds c963cf4 Merge pull request #295 from WolfgangKluge/master
adds 0c84b2c handle null constant (closes #299)
adds f5f3870 v1.2.5
adds b8c7715 avoid parens for getter/setters (closes #301)
adds 82a8934 make 2 symbol variable names range bigger (from 2862 to 3402)
adds 08a8fcb avoid double-parens on calls on function expressions (fixes #313)
adds dbd3a4c output literal TABs in strings (fixes #318)
adds cab739c fix parsing `x = {}/1` (closes #320)
adds dfb9a63 Consolidate null, Boolean, and String values
adds de93f64 Merge pull request #327 from RGustBardon/master
adds a967161 Fix issues #162 and #271
adds 09680f7 Merge pull request #328 from RGustBardon/fix-162-and-271
adds 51cda54 Implement the idea from issue #325
adds cd8e0c7 Merge pull request #329 from RGustBardon/implement-325
adds b969f45 v1.2.6
adds 1f5949c support "use-strict" as a statement (refs #339)
adds ec9d1be Improved strict mode support
adds 5ae3187 Don't bother save/restoring in_directives
adds 37aed3a Merge pull request #345 from mal/master
adds 666a915 add semicolon after debugger statements if necessary (closes #353)
adds 5d05477 add tests for issue 353
adds e4ca86b Merge pull request #355 from proxv/debugger-semicolon-insertion
adds 1fa8288 fix expected output for issue14 test to have literal tab instead of escaped tab
adds 8ab7275 Merge pull request #356 from proxv/fix-failing-test
adds b0f8876 make note of newlines in comments for ASI purposes (closes #349)
adds f970de7 Merge pull request #357 from proxv/handle-comment-newlines
adds 1f0c34d add nodeunit devDependency and add 'npm test' script to package.json
adds 255c39e require local version of uglify instead of global
adds d7398ac move consolidator tests to test/ dir and run them via 'npm test'
adds b4f2111 add npm-debug.log to .gitignore
adds 51194bf Merge pull request #358 from proxv/package-improvements
adds 66fc6f5 fix consolidator to use new 'directive' AST node
adds 9183ede Merge pull request #359 from proxv/fix-consolidator
adds e635913 Apply ascii only option to regexps
adds 521bb0f Merge pull request #369 from mal/ascii-regex
adds f5419ec Squashable directives
adds f944cbf Adding tests for squeezing directives
adds 45f044f fix parsing 1e5..toFixed(5)
adds 8ec0341 don't generate double-dot for 10000..toFixed(5)
adds 04451f3 Fix make for newer versions of node
adds 14dfd83 Merge pull request #373 from mal/master
adds 24e0108 Merge branch 'master' of github.com:mishoo/UglifyJS
adds 67e6163 avoid some double-parens
adds 50ee352 Allow defines even when not mangling.
adds e06dc6a Merge pull request #342 from int3/master
adds 0040110 Revoke #368 and fix issue #383 to make jQuery tests pass
adds b259613 Merge pull request #384 from RGustBardon/fix-383
adds 133b36f Implement #368 (too many parentheses)
adds 301d37b Merge pull request #385 from RGustBardon/implement-368
adds c37094e Fix for issue #386
adds ef4d776 Merge pull request #387 from rvanvelzen/master
adds 0c936e0 when the statement of a for is not empty, check if it requires semicolon
adds 4072f80 Optimize list of digits for generating identifiers for gzip compression.
adds f834ec6 Merge pull request #397 from rvanvelzen/optimize_gzip
adds 59ce11d Undo commit 133b36f54d0e8f78fc649e99983798bf05445b18
adds b5037ad Fix issues #222 and #324
adds e77ecaa Merge branch 'fix-222-and-324' of https://github.com/RGustBardon/UglifyJS into RGustBardon-fix-222-and-324
adds 4a259ae propagate newline_before for comment tokens (fixes #398)
adds 4e53bf1 when --unsafe, replace "foo".toString() with "foo", rather than "foo"+""
adds 2fe0dc7 Add base54 digits override for unit tests.
adds 8ddc3db Merge pull request #400 from proxv/override-digits-in-tests
adds e520658 Also descend arg AST nodes in ast_squeeze function-call handler
adds d88a799 Merge pull request #401 from proxv/ast-squeeze-call
adds 2adb251 v1.3.0
adds b689d52 ast_mangle should, well, mangle by default. (fixes #404)
adds 5f5e7c2 also don't mangle function names if !options.mangle (#404)
adds e87718e fix options for ast_mangle
adds 5acf636 Remove unnecessary "+" sign in SignedInteger
adds 46f0610 Merge pull request #407 from RGustBardon/1e+21
adds e90dbc9 Remove NOT in IfStatement with EmptyStatement (-s)
adds 4c72a63 Merge pull request #408 from RGustBardon/if-not
adds 0cf0022 Fix representation of infinite values
adds 2679409 Merge pull request #410 from RGustBardon/infinite
adds 7c15135 cleaner fix for 0/0, 1/0, -1/0 (issue #410)
adds a3fcb0d minor --make stuff
adds ad80428 v1.3.1
adds d3473bc add the space in “return λ” and similar cases
adds 20f1dc3 v1.3.2
adds 058748f revert f5419ec2d6b7e341f99a1f09a63ff6b6a0e3fc95 (squashable directives)
adds 8062092 emacs vars
adds 8872e3a added separate step to discard redundant directives
adds 5d401d9 fix for redundant directives in same scope
adds 18b3991 "sys" → "util"
adds 8188f1b be wary of some conditional operators in lift_variables (fixes #435)
adds 81adc84 fix --lift-vars for "for(var i; ...)" (var declared in for but uninitialized)
adds fecadfe Fix issue #431
adds c9aae35 Merge pull request #432 from rvanvelzen/fix-431
adds 09511bd v1.3.3
adds de2c36d I'm officially switching to 4-space indentation.
adds 9b69218 add note about UglifyJS 2.0
adds b3bd55f Fix division with regexp as right generating invalid code.
adds d51853e Merge pull request #458 from rvanvelzen/div-with-regexp
adds 8602447 discard all \uFEFF characters (close #462)
adds 194cd4b disallow newlines in strings (fix #463)
adds 5bec756 Added an example of how to use the `defines` option (see #281)
adds cc1bde2 Fixed syntax
adds 437232e Merge pull request #343 from spadgos/patch-1
adds f34a662 Reverting "discard all \uFEFF characters (close #462)" Revert "discard all \uFEFF characters (close #462)"
adds 25310d5 treat \uFEFF as whitespace
adds a90b334 v1.3.4
adds 7218ffc Fix broken calls of complex binary expressions [#471]
adds 14398af add note about the NPM package, which switched to v2
adds 9501219 drop the pledgie link
adds ef660f1 v1.3.5
adds 222825b Imported Upstream version 1.3.5
adds d643d81 Merge tag 'upstream/1.3.5'
adds f23acbf Stop track md5sum of upstream tarball: Compare tarball against upstream git commits instead.
adds 907742b Relax to depend unversioned on nodejs: Only supported releases exist in Debian now.
adds 5e7bbf2 Prepare for release: Update changelog, control file and copyright hints.
new d52270b Merge branch 'master' into master-experimental
new 1447b1b Update changelog and control file.
new 562b12f init repo
new 46e7507 Fixes some gotchas.
new 22bb5e8 added small node test script
new 861e26a WIP
new c0ba9e2 WIP
new 7f273c3 codegen and dropped the useless walker
new c7c163b lots'o'fixes in the output routines; still a looong way to go.
new 13f7b11 code generator finally seems to work properly
new 4fb6021 fix one more glitch
new 07cbc8d added some comments about the rules governing parens
new 901f770 don't output both space and semicolon when beautify=false
new ef87c9f big speed improvement (observable when beautify = false)
new cd8ae5f minor whitespace issues
new 4488758 some fixes (need testing) in AST_If codegen
new 6c35135 simple visitor API and code to figure out scope and references
new 1fe0ff9 doc (WIP)
new 458e251 added mangler and other stuff
new 99456c6 more fixes:
new 159333f warn about unreferenced symbols
new 92bd53b handle labels properly
new 7ae1c60 some reorganization
new ffe58a9 cleaned up some mess and started the actual compressor
new 1b839eb hint that brackets may be required in AST_BlockStatement
new fb8c9e3 declare some properties in the node constructor so that they're copied in clone
new f53e139 fix output for certain edge cases
new 159a6f0 wrote more of the compressor and added some tests
new 95b18e5 added license
new 8d233c3 fix current_col and force a newline every 32K (support options.max_line_len)
new a8e49f1 added print_to_string helper method
new 4437e7a fix compressing `a,b; return c;` into `return a,b,c;`
new 8dfa9fe minor
new 58a3b5e update (c) years
new bf70205 minor
new ce8e8d5 added README
new 7fcb6bc fix code generator for this case:
new 1b6bcca fix output for arrays containing undefined values
new 86cff20 docstring for AST_StatementWithBody
new 6569e66 update with link to discussion about Esprima vs. UglifyJS speed
new 48440dc don't mangle names of setters/getters
new 52bcca2 started support for generating source maps (WIP)
new 24bfd55 minor perf. improvements
new f2f370c add source mappings for more node types; started CLI utility
new 596af60 add -b
new 1bf5928 Reverting "minor perf. improvements" Revert "minor perf. improvements"
new 66c869c switch branches must be declared `required` so that the compressor doesn't replace nodes with a single statement.
new d6efa8b declare boolean options
new d7c1dc6 a LabeledStatement should be in fact a StatementWithBody
new 6d0db4c an AST_If is too a StatementWithBody
new f702264 jumps, try and definitions are statements too
new f03138d resolve constant expressions
new 37eecc1 more optimizations for ifs/conditionals
new e5f1cec minor
new 86cfb5b boolean and if/exit optimizations
new 3459c40 if present, the `else` in an `if` should always be forced statement
new 376667a more fiddling with boolean expressions, etc.
new 1b5183d checkpoint
new 8633b00 cleaned up usage of AST_BlockStatement
new 0503513 support for hoisting declarations
new c7b484b fix for variable names like `toString`
new 0afafe6 declared `--stats` as boolean
new 9bb1a84 don't duplicate argument names
new b77574e fixed tests (need to drop the toplevel block in "expected" if it's a single statement)
new 919b273 always keep declarations found in unreachable code
new 048d690 fix bug (forgot arg name)
new 43c75c9 checkpoint
new 5a8e6ce fix output for division followed by regexp
new 1c8ba35 minor
new 16b12c6 fix "file" in the source map
new a41e6cf more progress on the compressor (WIP)
new 6b9aeb5 adaptive base54 digits depending on char frequency (WIP)
new 1579c0f hoist_vars is pretty bad, it seems. cancelled it for now.
new da407d4 checkpoint
new 8e82d8d fixed some mess with symbols/scope
new 9a629ab minor
new 2b4093b fixed run-tests and an issue about reversing the condition in AST_If
new 2b1e462 side effect fixes and small optimization for gzip
new a132841 more AST_If optimizations
new f5027ec minor
new d72c1d1 few more optimizations:
new 93b973c added -m and -c options
new 924aa58 more optimizations that v1 does and some cleanups
new 5e83e7e adding an imaginary "return undefined" can sometimes help
new 50d1670 minor
new 43fd451 compress typeof x == "undefined" to x === undefined, which further gets shortened to x === void 0 (or x === [][0] in unsafe mode)
new 86c14d0 join_vars:
new 4e0262b figure out label targets
new 397bf56 other small optimization:
new 7b6a402 rewrite handle_if_return
new 21c34a1 drop unused function
new 0f418d6 more sequencesizing (WIP)
new 5d781ec some cleanup
new 5e60a60 try negating AST_Binary
new 07f1d56 more smallish optimizations
new 14481de empty block to empty statement: {} ==> ;
new 92e22c4 possible optimization for AST_Undefined
new 45a3970 one more test for sequences
new 6ad414e minor
new e370e3b fix .undeclared (it's now a function)
new ee669ba moved `typeof foo == "undefined"` ==> `foo === undefined` under `--unsafe`
new d91613b only do the typeof x == "undefined" optimization if x is a symbol reference and it's declared in scope, or x is not a symbol reference.
new 2196828 added AST_NaN (output as 0/0)
new 3da0ac4 support for directives
new 669874d minor
new a4d2340 fixed label scope/mangling
new d53e1a9 support -c with no arguments to disable compression entirely
new e8da72d drop unused variables
new c4f8c21 more on detecting side effects
new 5491e1d better support for multiple input files:
new ec7f895 log filename in parse errors / compressor warnings
new 76d88b5 tree transformer api (WIP)
new a83b285 properly drop mutually-referring declarations that are not otherwise referenced and have no side effects
new 4f97da9 minor tests fix
new 42038fd Support input source map
new 368ac8f some boolean cleanup
new ea6d1ea it's not safe to assume that property access is side-effect-free
new e836e2a minor
new 4201577 started some refactoring (WIP) -- moving squeezer to TreeTransformer
new 10c7f52 discard all \uFEFF characters (https://github.com/mishoo/UglifyJS/issues/462)
new 9321d41 moving code around (refactoring, WIP)
new 242dd10 more cleanups
new e979d01 minor
new a24e7ee checkpoint (refactoring, WIP)
new 78be8f5 compressor successfully moved to TreeTransformer
new 15d58f5 some speedup and more savings from unused vars that have side effects in initialization
new 13278c6 removed the "squeeze" method (it's now effectively "transform")
new 05e15b1 fix mangling
new 8964444 minor
new 9e5dd81 a shy attempt to obey `width` in the beautifier; added `bracketize` option to always print brackets around if/do/while/for statements; export more options via the CLI
new ff696cd drop more unused names
new 347160c add AST_SymbolConst for names defined with `const`
new 2117927 more constant folding (for names defined with `const`)
new e1098b0 "use strict";
new dde5b22 support defines
new 36be211 option to exclude certain names from mangling
new 2a54562 added option to keep some comments in the output
new 075f93e line numbers start at 1
new cb2e811 discard annoying nodejs warning
new 815abcf support for `--comments` option to keep comments containing @license or @preserve
new 5c151f9 fixed usage string
new 378ed17 disable `hoist_vars` by default and change `comparations` to `comparisons`
new 0678ae2 fix for `a = !b && !c && !d && !e → a=!(b||c||d||e)`
new 7e8880b document the CLI tool
new bd94eeb drop tmp. files
new e0f5075 fix endless loop in tests
new c11de17 added option for side-effect-free statements, fix test
new 9221ad6 added package.json
new 3412498 AST cleanup (dropped AST_StatementBase)
new 11863d6 more cleanup (dropped AST_SwitchBlock)
new 42ce7ed ignore tmp/
new 2bd8a11 define AST_Node.from_mozilla_ast(ast)
new f20c251 moving code around
new 682a58a removed some unused variables
new 708ec04 minor
new a9b6f99 use the appropriate constructor for symbols
new ecd9f21 fixed import of locations from SpiderMonkey AST
new e88dcc3 added --acorn and --spidermonkey options
new 42c25d9 add note about installation
new 7ae0912 prevent mangling only when eval is *called*, not when it's just referenced
new a1e0885 replace `(function(){ ...no side effects ... })()` with `undefined`.
new 4a2b912 minor
new 455ac54 remove unused code
new fe1411b fix typo
new 80a18fe for certain nodes that we invent we might not have a original source file to map from, so just use "?". and in any case, don't fail hard when addMapping throws.
new 093a903 eliminate redundant directives in the same scope
new dd8286b added --self to easily get a browser-runnable version of UglifyJS
new d4970b3 should not expose base54.sort() in the API docs, I think
new 42ea3c9 added some basic API doc
new dfc04e6 add simple API wrapper: UglifyJS.minify
new c967f0b fix `inSourceMap` in `minify` (should read the file)
new 203ecaf Fix nodejs minify without inSourceMap exception
new 9dfcd47 Merge pull request #8 from SevInf/master
new 2c025f2 fix detecting symbols in use
new e1862cd add `--ast-help`
new 9ead496 minor AST cleanup (AST_BlockStatement may inherit from AST_Block)
new 1b0aab2 added $propdoc to AST nodes and some cleanups
new 88beddf make `--comments` keep @cc_on too
new a84d07e add AST_Infinity node
new 4807c6e update on @cc_on
new 86182af minor
new 3799ac8 add `--lint` and display {file} in scope_warnings
new c5ecbfc drop unused variable
new f26f3b4 small improvements in wrap_commonjs:
new dacce1b seems cleaner if AST_Label doesn't inherit from AST_SymbolDeclaration
new 9cdaed9 fix node name
new f322b32 disable warnings by default in `minify` (pass warnings: true to enable)
new 5053a29 fix propagation of symbol references
new 172aa7a cleanup
new f4584af using makeComparator from acorn to generate functions that tests whether a string is keyword, reserved etc.
new fb5c01c stealing more hacks from acorn in the name of speed
new d9d6731 fix pos in syntax error exception
new fc39553 use AST_Lambda for object setters/getters
new 72cb532 fix in_boolean_context() (two tests were broken)
new 731fa9c add test for issue #12
new 1b6f8d4 remove the $self hack
new ba3df64 actually enable the option that drops unused names in the test of issue #12
new 8149be5 minor
new 70d205c update for acorn
new b51fe0d fix end tokens in spidermonkey ast import
new 370d3e0 fix regression from fb5c01c073d06034815d5f3b782fd11cbdf6d6f5
new 708abb1 minor
new 851b48e fix compressing benchmark.js (it tried to evaluate a statement)
new b071c9d add parens to AST_Seq whose parent is AST_Unary
new fcc0229 drop unused function arguments
new 1ffd526 disable warnings in the test suite
new 8957b3a fix small glitches in source map generation
new 6472f94 add `semicolons` option in the code generator (default: `true`)
new 8f66458 the `sort` option is broken anyway, removed it
new a21f3c6 employ a better parser for command-line arguments
new 6a099fb define aborts on AST_If: true if both branches abort
new 253bd85 more small optimizations
new 4482fdd added note about API docs and online demo
new a5e75c5 v2.1.0
new 4fe4257 fix `--comments` (close #16)
new 6aa56f9 v2.1.1
new afb7faa more optimizations for some break/continue cases
new 6f45928 add fromString argument to `UglifyJS.minify` (allows to pass the source code, instead of file names, as first argument).
new fc8314e minor fix for dropping unused definitions.
new 12f71e0 alternate hack to disable deprecation warning
new 11dffe9 Add sourceRoot option to minify
new 3a72dea Merge pull request #19 from SevInf/master
new bee01dc Merge branch 'master' of github.com:mishoo/UglifyJS2
new 41be863 v2.1.2
new 30faaf1 more sequence optimizations (lift some sequences above binary/unary expressions so that we can avoid parens)
new 70fd2b1 fix for `if (...) return; else return ...;`
new 7b87d2e v2.1.3
new 202fb93 test for fs.existsSync
new cb3cafa cripple scope to make IE happy :-(
new 0852f55 v2.1.4
new abe0ebb don't move expressions containing the binary `in` operator into the `for` initializer
new 5248b79 v2.1.5
new d4c25c5 fix compressing UnaryPrefix
new 18270dd added unsafe_comps for negating `<=` with `>`
new cf40980 it's safe to negate expression in !EXP only in boolean context
new dde5745 v2.1.6
new 8413787 use a Dictionary object instead of plain object for hashes
new 85af942 print final semicolon
new 774f2de minor optimization
new fba0c1a minor
new ffccb23 convert `while` into `for`
new 7f5f4d6 discard the hack that worked around the deprecation warning
new a4f6d46 add option to mangle names even if eval/with is in use
new 5346fb9 add proper parens around unary expressions
new ff388a8 parenthesize a Call expression when its parent is New
new a90c1ae further fix for parens around New (refs #35)
new a1ae0c8 parenthesize property access when it's the expression in New
new 5276a4a add AST_Accessor and AST_SymbolAccessor node types
new bb0e4d7 v2.1.7
new 80da21d fix regression from 5346fb94 (shouldn't parenthesize i++ in x[i++])
new 258b46f v2.1.8
new 46be3f2 fix another small regression
new 39f8a62 v2.1.9
new 5a7e54c ignore node_modules/
new 1a5fd3e optimization for if/break as first statement in a loop body
new e312c5c fix API breakage
new 64270b9 v2.1.10
new 1e5e13e AST_LabelRef no longer inherits from AST_SymbolRef
new 78856a3 declare dependency versions
new b49230a convert x.toString() to ""+x instead of x+""
new f05c99d Merge pull request #41 from Skalman/toString-patch
new 53355bd fix invalid AST produced by dropping unused variable
new a9fa178 v2.1.11
new e02771a don't change order in binary expressions if both operands have side effects
new f96f796 Add simple optimization for empty-string concats.
new 60c0f40 Merge branch 'optimize_concat' of https://github.com/rvanvelzen/UglifyJS2 into rvanvelzen-optimize_concat
new dba8da4 optimize constant switch blocks
new bdfcbf4 better solution for the last test in constant switch folding
new e981194 Add support for somewhat preserving line numbers.
new 0d3fd2e retain (1,eval) as is when it's the expression of an AST_Call
new 089ac90 fix #51
new 642ba2e rename the npm package to "uglify-js" and cli tool to "uglifyjs"
new 4f555e2 fix for https://github.com/mishoo/UglifyJS/issues/474
new 1abde9c v2.2.1
new 13c4dfc fix #55
new e48802a Fixed reading from STDIN.
new f427e5e Merge pull request #58 from roxeteer/master
new 5cc90db Don't messup compressor stack while optimizing Switch
new b5c3253 Add test for issue #59
new dbe33bb Revert "Fixed reading from STDIN."
new 320c110 When hoisting variables, try to merge in assignments that follow.
new 16430ac small improvement on merging assignments into hoisted vars
new 98978fc Add proper parens in "NoIn" expressions.
new 6064bea v2.2.2
new c4993e1 Small cleanup
new 08219f0 Fix output when semicolons is off.
new 31c4a37 Optimize new Array(1, 2, 3) → [1, 2, 3]
new 9916d0e Accept string or number as name of an accessor.
new 83a4ebf Implement `-m sort=true`
new e82e89d --version option
new ba40333 Set --version as a boolean #87
new 47c9895 Merge pull request #87 from BenoitZugmeyer/master
new 130c623 Support `output`, `mangle` and `compress` options to `UglifyJS.minify`.
new 6b14f7c Fix handling of labels in nested scopes
new 16953c2 v2.2.3
new 1d8871a Compressor options use underscores rather than hyphens
new c058d8b Merge pull request #90 from jakearchibald/patch-1
new f0909bd Handle String() with no arguments.
new c13e7e6 Update installation instructions re #4
new 605f330 Merge pull request #98 from ForbesLindesay/patch-1
new 1529ab9 Fix output for arrays containing undefined values.
new faa354f [AST_Hole] the print function can be a no-op.
new 297af47 Add --source-map-url option
new 522566e Fix #105: property comparison to undefined is not always safe
new 8bf83f4 Merge pull request #106 from gibson042/105
new ad071f8 Add better fromstring docs.
new e9a571b Merge pull request #94 from paulmillr/patch-1
new a5b2094 Fix end token for Assign nodes
new 31e99ce v2.2.4
new a9af2c9 Wraps sourceMappingURL in a multiline comment. Fixes #108
new 3a22e91 Merge pull request #111 from mattrobenolt/safer-sourcemap
new 719a8fd Ugly hack to print comments before return/throw statements
new 9e8ba27 Fix handling of constants
new 3c8a0bd Fix parens for AST_New
new de7ec7f Fix parens for negative numbers
new fdf8b5e Fix parens for NaN
new f36e4e9 Give up evaluating (unary-prefix '-' 0)
new 916faf0 Force space after literal regexp when used in "instanceof" or "in"
new db66eca v2.2.5
new 3a591c4 Fix compressing `do {...} while (false)`
new cb0c576 Add license
new 8880f48 Compress boolean constants after evaluation
new dac6efb Drop last `default:` if it's the last branch and empty
new 26746ce Add `--screw-ie` option
new aebafad Fix reordering comparisons
new f83aca6 Read the entire STDIN.
new 3bd7ca9 Merge pull request #146 from mbostock/read-all-stdin
new e4b078c Disable `unsafe` by default
new 9b1a40d Support mangling toplevel names
new f276745 Allow inSourceMap to be a generated JSON source map instead of just a file name
new 24e58ee Merge pull request #125 from devongovett/master
new b14d3df Keep legit code working even when --screw-ie is not passed.
new e0f67ba Don't print the warning on parse error, just throw a JS_Parse_Error.
new 478bf4d Add support for enclose option. Closes #139.
new 75f0bbe renamed --screw-ie to --screw-ie8, documented it in README.md, indicated it doesn't break IE9+
new 7628bca Merge pull request #163 from mzgol/screw-oldie
new 69dde04 uglifyjs binary: Make read_whole_file async and don't attempt to read STDIN synchronously.
new 81f5efe Output, to_ascii: Escape non-ascii chars with \xnn instead of \unnnn whenever possible.
new a869b85 Don't use \xYY for identifiers
new 2b8e206 fix package.json
new 37d7cb8 Quote objects with numeric keys
new b956e5f Add tests for typeof evaluation
new 4b81805 Fix typeof evaluation for regex and function
new 483e0ca unbalanced parentheses in readme
new a9c1b9f Merge pull request #190 from michaelficarra/patch-1
new 5af1445 fixes #189: use dotted member access when --screw-ie8 option given
new 753b4b6 Merge pull request #191 from michaelficarra/use-es5-member-access-with-screw-ie
new 68394ee Make compress/mangle disabled by default, as before 5af144522a6fea302abdd0b63d48864de0664207
new 9794ebf Workaround for missing `prefix` in UnaryExpression generated by Esprima
new 5c22a1b v2.3
new 8e62661 Take two. v2.3.0
new a54b670 Add README syntax highlighting
new d6e6458 Merge pull request #194 from ulikoehler/master
new 8227e87 Added scenario in test case where properties shouldn't be accessed with dotted syntax even with screw_ie8 option. Signed-off-by: Justin Lau <justin at tclau.com>
new 1e3bc0c Fixed dot property issue with invlid identifier names. Signed-off-by: Justin Lau <justin at tclau.com>
new fcd544c Added test scenario with unicode in properties name. Signed-off-by: Justin Lau <justin at tclau.com>
new 9af2bbf Fixed dot properties not optimizing unicode identifiers. Signed-off-by: Justin Lau <justin at tclau.com>
new 790b3bc Fix typo in bin and readme
new 645d5bd Merge pull request #195 from kjbekkelund/typo
new 6726996 Added test cases for #104. Signed-off-by: Justin Lau <justin at tclau.com>
new a1958aa Fixed typeof undefined optimization and updated related test case to accomodates the sort behaviour changes made in commit mishoo/UglifyJS2 at aebafad41eab48f43ed649ce8c77e8f1528b50da. Signed-off-by: Justin Lau <justin at tclau.com>
new a6ed2c8 Better fix for equality of typeof ... against "undefined"
new 0f509f8 v2.3.1
new 11e24d5 Fix property names
new 1e9f98a add a test for zero-length string in is_identifier_string, which is used in property compression. Also added a test exercising the change.
new 064e7aa Fix is_assignable
new a9511df Use the negation hack rather than parens for a toplevel function expression call
new 7f77eda v2.3.2
new 4a19802 Add CI build for supported Node versions
new 46814f8 Add Travis build badge to README
new 3edfe7d Merge pull request #202 from nschonni/add-travis-ci
new d56ebd7 Fix a["1_1"]
new f64539f Compress code passed to `new Function` if it's a constant.
new d13aa39 v2.3.3
new caa8896 Only compress code in `new Function` if all arguments are strings.
new ca3388c Add `--expr`, an option to parse a single expression (suitable for JSON)
new 2b40a5a v2.3.4
new ad1fc3b Fix package.json (use `repository` instead of `repositories`)
new f652372 v2.3.5
new 22a038e Fix output of statement: `new function(){...};`
new 9fc8a52 Set "global" on undeclared SymbolDef-s
new 9fc6796 Add `negate_iife` option to the code generator.
new 1dbffd4 SourceMapping pragma has changed to //#
new 3a21861 The extra /* */ isn't needed now
new 2df4892 Merge pull request #213 from mattrobenolt/patch-1
new 188e28e v2.3.6
new f29f07a Escape null characters as \x00
new a4889a0 Merge pull request #220 from lautis/escape-null
new 02a8438 Don't swap binary ops when "use asm" is in effect.
new d0689c8 Reset the base54 counters every time minify is called.
new fc9ba32 Fix typo.
new 9243b0c Apply transformer to AST_VarDef's name
new 4a0bab0 Add "position" option to parser, to specify initial pos/line/col
new 193049a Revert previous patch, it was no good.
new b1febde Fix output for arrays whose last element is a hole: [1,,]
new e54df22 added option for dropping unused params
new 41c6273 Reverting "added option for dropping unused params" Revert "added option for dropping unused params"
new 3435af4 Don't require arguments to --enclose
new b7adbca Fix #251
new 964d5b9 Don't pretend to evaluate lambdas
new 2604aad Add support for browserify
new 4aa4b3e Support `-p relative`. Fix #256
new 4c4dc21 Don't drop unused setter argument.
new 6ea3f7f fix usage
new d9ad3c7 fixes #259: don't unnecessarily quote object properties when --screw-ie8
new 4f09df2 Merge pull request #270 from michaelficarra/GH-259
new ed80b4a Move support for `negate_iife` in the compressor, rather than code generator
new 1a95007 Remove --ie-proof from the readme.
new c28e1a0 v2.4.0
new a89d233 Better reporting of parse errors
new 78a217b Fix parsing regexp after unary-prefix operator
new b0ca896 Fix parsing `a.case /= 1`
new 1c6efda Better fix for #286
new 85b527b Disallow `continue` referring to a non-IterationStatement. Fix #287
new 5d8da86 Fix names.
new cb9d16f minor
new 7c10b25 Support HTML5 comment syntax (enabled by default!)
new 83ba338 Avoid printing <!-- in the output (HTML5 comment)
new 8d14efe Concatenate strings also on the right-hand side of an expression that cannot be evaluated. Fix #126
new 78e98d2 When `unsafe` is set, evaluate [...].join() if possible
new e815827 Evaluate [...].join() if possible: minor bugfix
new 583fac0 More dirty handling of [ ... ].join() in unsafe mode
new 037199b Actually let's move away those monsters from the evaluate function
new afdaeba More attempts to determine when addition is associative
new 95b4507 Fix error in the output minifying `Function("return this")()`
new 88fb83a minor optimization
new 8cc86fe add `clean_getters` compressor option (default `false`)
new bb0a762 Only allow identifier start characters at the beginning of identifiers.
new 253c7c2 Merge pull request #308 from meteor/fix-unicode-keys
new f2348dd Rename clean_getters to pure_getters; add pure_funcs.
new 3a81f60 Don't drop_unused before compression.
new 3fa9265 wrap up
new d09f0ad `arguments` outside of a function is an ordinary variable.
new 8c9cc92 v2.4.1
new 63d04ff Revert #3a81f60 for now
new 118105d Add an exit code to the test suite
new aafe2e1 Merge pull request #322 from rvanvelzen/test-exit-code-1
new 7055af8 Fix #280
new 63e1a8e Merge pull request #323 from rvanvelzen/undefined-drop-vars-fix
new 1a5a4bd Fix #269
new cfd5c61 Merge pull request #325 from rvanvelzen/fix-269
new 582cc55 Display number of failed tests and corresponding files
new e2daee9 Fix RHS concat (raised in #330)
new 0d6e08c Merge pull request #331 from rvanvelzen/rhs-strings-fix
new 9cd118c Add a unit test for issue-126
new 8979579 Merge pull request #330 from markjaquith/master
new b47f7b7 Merge branch 'master' of github.com:mishoo/UglifyJS2
new 0358e37 Fix codegen for when comments_before is undefined.
new f1b7094 Add "preamble" output option
new a14c6b6 Avoid shadowing name of function expression with function argument
new 7cf79c3 Fix reading arguments
new b214d37 Fix typo
new 785c606 Disallow reversal where lhs has higher or equal precedence
new bea3d90 minor
new e4c5302 Fix output for `x = 2 * (a % b / b * c)`
new 9dd9760 indentation
new b70670b Fix regression after e4c530240650535d1cb46569dfb013193471af05
new c5ed229 Fix parsing setters/getters (allow keywords for name).
new 63287c0 Workaround for Safari bug
new 263577d [README] Fix #278
new bb700da v2.4.2
new f4919e3 Do not lift sequence from right-hand side of binary operation. Fix #343
new 19e2fb1 v2.4.3
new eab99a1 Better fix for #343
new 7d11b96 Only descend twice after drop_unused if it's the same node type.
new 50b8d72 Fix faulty compression
new 73d082d v2.4.4
new c16d538 Add --noerr to turn off argument name checking
new 547561a v2.4.5
new ea10642 v2.4.6, because npm is foobar
new d2190c2 Properly scope `catch` identifier when --screw-ie8
new 8f35a36 AST_Catch shouldn't really inherit from AST_Scope. Fix #363
new a790c09 v2.4.7
new df8c562 minor
new dc5f70e Add `drop_console` option to the compressor
new dfa395f Make `DefaultsError` a real `Error` object
new 248f304 Merge pull request #245 from ForbesLindesay/patch-1
new bd0886a semicolons
new fa3300f bugfix #242
new b634018 Merge pull request #371 from colorhook/master
new f65e55d minor
new 428e19f Add option to adjust the src/target line in the source map
new 15a148f v2.4.8
new be55a09 Take out all comments from an AST_Exit's value
new 7a30d82 Better fix for comments in AST_Exit
new 5a083a9 Optimize seq,void 0. Close #377.
new aa9de76 Mark `yield` as reserved word. Close #375.
new b521b4b Conditional/call optimization
new 5e4c7f4 Fix parens for property access -- (foo, bar)["baz"]
new 27142df minor: exp["10"] => exp[10]
new a67e3bf Fix #392
new 2c88eb6 doh.
new b9fac68 Support SpiderMonkey AST in UglifyJS.minify. Fix #393.
new 72e6f64 Disable node 0.6 since the build fails consistently and it's not our fault.
new 2c305af Support @ngInject with `angular` compressor option. Close #395.
new c3087dd Better process_for_angular before other statement reductions. #395
new cad1f9c Unescape Unicode sequences in regexps when ascii_only is false. #54
new 90a330d simplify
new eda540f v2.4.9
new 1ab2fda Fix example
new 4339bd5 Don't unescape \x2f (slash) in regexps. #54
new 75cdbf1 v2.4.10
new 1e31011 Don't unescape byte order marks in regexps
new 2d8fc61 Merge pull request #402 from lautis/bom-regexps
new 1d0127d Fix end token for conditionals. Close #404
new 931862e More chars that cannot be unescaped in regexps.
new 6f9d051 v2.4.11
new ceb200f Move unescaping regexps under a codegen option (`unescape_regexps`)
new f5f8239 Don't unescape \x00 in regexes (it breaks IE8)
new 2eeb640 Merge pull request #408 from danielstutzman/escape-null-in-regex
new e29048b Merge branch 'master' of github.com:mishoo/UglifyJS2
new bf7b122 v2.4.12
new 03cf94e Added support for sourcesContent property of source map
new f6203bd added hasOwnProperty check to avoid warnings
new 1dd05f4 Merge branch 'sourcesContent' of https://github.com/arty-name/UglifyJS2 into arty-name-sourcesContent
new 0007a53 Update source-map
new 5344b7d Fix if_return dropping the alternative. Close #413
new 9b404f9 fix readme typo (when -> with)
new 2494daa Merge pull request #422 from mourner/patch-1
new ac0086a Simplify nested conditionals if possible
new 1a44400 Merge pull request #424 from mattbasta/simplify_conditionals
new ef2ef07 Add option `keep_fargs`.
new bf30dc3 Mangle name of exception when --screw-ie8. Fix #430.
new 014f655 Handle the case when SourceMapConsumer.originalPositionFor returns null source.
new f5c09d0 Merge pull request #439 from Arnavion/null-source-in-sourcemap
new 448a8d3 v2.4.13
new b1ae8cc Imported Upstream version 2.4.13
new a86a595 Merge tag 'upstream/2.4.13' into master-experimental
new 2c9598f Depend on node-uglify-to-browserify and recent node-async.
new eddfe05 Extend copyright coverage for main upstream author.
new 84cc8af Update changelog, control file and copyright hints.
The 533 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.
Summary of changes:
.travis.yml | 6 +
LICENSE | 29 ++
README.md | 378 +++++++++++++--------
bin/uglifyjs | 284 ++++++++++------
debian/changelog | 28 +-
debian/control | 6 +-
debian/control.in | 6 +-
debian/copyright | 3 +-
debian/copyright_hints | 16 +-
lib/ast.js | 72 ++--
lib/compress.js | 732 +++++++++++++++++++++++++++++++---------
lib/mozilla-ast.js | 6 +-
lib/output.js | 184 +++++++---
lib/parse.js | 186 ++++++----
lib/scope.js | 135 ++++----
lib/sourcemap.js | 10 +-
lib/transform.js | 2 +-
lib/utils.js | 16 +-
package.json | 15 +-
test/compress/arrays.js | 62 ++++
test/compress/concat-strings.js | 22 ++
test/compress/conditionals.js | 91 +++++
test/compress/drop-unused.js | 68 ++++
test/compress/issue-105.js | 14 +-
test/compress/issue-126.js | 24 ++
test/compress/issue-143.js | 48 +++
test/compress/issue-267.js | 11 +
test/compress/issue-269.js | 66 ++++
test/compress/negate-iife.js | 76 +++++
test/compress/properties.js | 29 ++
test/compress/sequences.js | 6 +-
test/compress/switch.js | 50 +++
test/compress/typeof.js | 25 ++
test/run-tests.js | 9 +
tools/node.js | 60 ++--
35 files changed, 2102 insertions(+), 673 deletions(-)
create mode 100644 .travis.yml
create mode 100644 LICENSE
create mode 100644 test/compress/concat-strings.js
create mode 100644 test/compress/issue-126.js
create mode 100644 test/compress/issue-143.js
create mode 100644 test/compress/issue-267.js
create mode 100644 test/compress/issue-269.js
create mode 100644 test/compress/negate-iife.js
create mode 100644 test/compress/typeof.js
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/uglifyjs.git
More information about the Pkg-javascript-commits
mailing list