8f66458 | Mihai Bazon | 17 October 2012, 12:24:47 UTC | the `sort` option is broken anyway, removed it we need to mangle names from outermost to innermost scope; mangling names from inner scopes before we got to the outer scope won't work correctly, therefore sorting doesn't make sense. | 17 October 2012, 12:24:47 UTC |
6472f94 | Mihai Bazon | 17 October 2012, 11:51:27 UTC | add `semicolons` option in the code generator (default: `true`) pass `false` to separate statements with newlines instead of semicolons | 17 October 2012, 11:52:08 UTC |
8957b3a | Mihai Bazon | 16 October 2012, 12:54:12 UTC | fix small glitches in source map generation | 16 October 2012, 12:54:12 UTC |
1ffd526 | Mihai Bazon | 13 October 2012, 12:18:11 UTC | disable warnings in the test suite | 13 October 2012, 12:18:11 UTC |
fcc0229 | Mihai Bazon | 13 October 2012, 12:04:44 UTC | drop unused function arguments also add test for "drop_unused" (the last one fails for now) | 13 October 2012, 12:04:44 UTC |
b071c9d | Mihai Bazon | 13 October 2012, 11:32:08 UTC | add parens to AST_Seq whose parent is AST_Unary | 13 October 2012, 11:32:08 UTC |
851b48e | Mihai Bazon | 13 October 2012, 09:56:56 UTC | fix compressing benchmark.js (it tried to evaluate a statement) the following code in benchmark.js triggered the issue: support.decompilation = Function( 'return (' + (function(x) { return { 'x': '' + (1 + x) + '', 'y': 0 }; }) + ')' )()(0).x === '1'; technically that could be resolved into a constant expression, but seems it's being used here for browser bugs detection :-\ | 13 October 2012, 09:57:10 UTC |
708abb1 | Mihai Bazon | 13 October 2012, 09:42:01 UTC | minor | 13 October 2012, 09:42:01 UTC |
370d3e0 | Mihai Bazon | 13 October 2012, 09:24:27 UTC | fix regression from fb5c01c073d06034815d5f3b782fd11cbdf6d6f5 is_digit takes a char code now, not a string | 13 October 2012, 09:24:27 UTC |
b51fe0d | Mihai Bazon | 13 October 2012, 08:37:58 UTC | fix end tokens in spidermonkey ast import | 13 October 2012, 08:37:58 UTC |
70d205c | Mihai Bazon | 12 October 2012, 21:35:24 UTC | update for acorn | 12 October 2012, 21:35:24 UTC |
8149be5 | Mihai Bazon | 12 October 2012, 11:55:54 UTC | minor | 12 October 2012, 11:55:54 UTC |
ba3df64 | Mihai Bazon | 12 October 2012, 08:41:48 UTC | actually enable the option that drops unused names in the test of issue #12 | 12 October 2012, 08:41:48 UTC |
1b6f8d4 | Mihai Bazon | 12 October 2012, 08:07:35 UTC | remove the $self hack operations are destructive anyway, so there's no point to clone the nodes in the transformer. speed++ | 12 October 2012, 08:07:35 UTC |
731fa9c | Mihai Bazon | 12 October 2012, 07:49:48 UTC | add test for issue #12 | 12 October 2012, 07:49:48 UTC |
72cb532 | Mihai Bazon | 12 October 2012, 07:49:41 UTC | fix in_boolean_context() (two tests were broken) | 12 October 2012, 07:49:41 UTC |
fc39553 | Mihai Bazon | 12 October 2012, 07:11:01 UTC | use AST_Lambda for object setters/getters so that the optimization that drops the name if unused doesn't apply. close #12 | 12 October 2012, 07:11:01 UTC |
d9d6731 | Mihai Bazon | 11 October 2012, 12:25:38 UTC | fix pos in syntax error exception | 11 October 2012, 12:25:38 UTC |
fb5c01c | Mihai Bazon | 11 October 2012, 10:00:58 UTC | stealing more hacks from acorn in the name of speed | 11 October 2012, 12:17:42 UTC |
f4584af | Mihai Bazon | 11 October 2012, 08:52:05 UTC | using makeComparator from acorn to generate functions that tests whether a string is keyword, reserved etc. speeds up the parser a bit, though not spectacular.. still far from acorn. | 11 October 2012, 08:52:05 UTC |
172aa7a | Mihai Bazon | 11 October 2012, 08:07:42 UTC | cleanup - use prototype-less objects where feasible (minor speed improvement) - get rid of HOP | 11 October 2012, 08:07:42 UTC |
5053a29 | Mihai Bazon | 11 October 2012, 07:28:48 UTC | fix propagation of symbol references | 11 October 2012, 07:28:48 UTC |
f322b32 | Mihai Bazon | 11 October 2012, 06:30:22 UTC | disable warnings by default in `minify` (pass warnings: true to enable) close #11 | 11 October 2012, 06:31:17 UTC |
9cdaed9 | Mihai Bazon | 10 October 2012, 20:16:40 UTC | fix node name | 10 October 2012, 20:16:40 UTC |
dacce1b | Mihai Bazon | 10 October 2012, 08:37:51 UTC | seems cleaner if AST_Label doesn't inherit from AST_SymbolDeclaration | 10 October 2012, 08:37:51 UTC |
f26f3b4 | Mihai Bazon | 10 October 2012, 08:28:05 UTC | small improvements in wrap_commonjs: - use MAP.splice instead of a BlockStatement to inject code (avoids some warnings in the linter) - use the original symbol in exports, so that we get the proper source mapping | 10 October 2012, 08:28:05 UTC |
c5ecbfc | Mihai Bazon | 10 October 2012, 08:27:06 UTC | drop unused variable | 10 October 2012, 08:27:06 UTC |
3799ac8 | Mihai Bazon | 10 October 2012, 08:26:59 UTC | add `--lint` and display {file} in scope_warnings | 10 October 2012, 08:26:59 UTC |
86182af | Mihai Bazon | 09 October 2012, 19:56:59 UTC | minor | 09 October 2012, 19:56:59 UTC |
4807c6e | Mihai Bazon | 09 October 2012, 16:09:11 UTC | update on @cc_on | 09 October 2012, 16:09:11 UTC |
a84d07e | Mihai Bazon | 09 October 2012, 15:35:53 UTC | add AST_Infinity node | 09 October 2012, 15:35:53 UTC |
88beddf | Mihai Bazon | 09 October 2012, 15:25:00 UTC | make `--comments` keep @cc_on too | 09 October 2012, 15:25:00 UTC |
1b0aab2 | Mihai Bazon | 09 October 2012, 13:25:45 UTC | added $propdoc to AST nodes and some cleanups hopefully we can make the AST documentation self-generating | 09 October 2012, 15:20:39 UTC |
9ead496 | Mihai Bazon | 09 October 2012, 10:52:32 UTC | minor AST cleanup (AST_BlockStatement may inherit from AST_Block) | 09 October 2012, 10:59:17 UTC |
e1862cd | Mihai Bazon | 09 October 2012, 10:21:21 UTC | add `--ast-help` displays a rather cruel description of the AST classes, derived directly from the node definitions. | 09 October 2012, 10:21:21 UTC |
2c025f2 | Mihai Bazon | 09 October 2012, 10:13:55 UTC | fix detecting symbols in use | 09 October 2012, 10:13:55 UTC |
9dfcd47 | Mihai Bazon | 09 October 2012, 10:04:33 UTC | Merge pull request #8 from SevInf/master Fix crash in minify function | 09 October 2012, 10:04:33 UTC |
203ecaf | Sergej Tatarincev | 09 October 2012, 09:52:28 UTC | Fix nodejs minify without inSourceMap exception When inSourceMap is omitted fs.readFile throws exception. Fixed version calls fs.readFile only when inSourceMap argument is present | 09 October 2012, 09:52:28 UTC |
c967f0b | Mihai Bazon | 08 October 2012, 18:22:20 UTC | fix `inSourceMap` in `minify` (should read the file) | 08 October 2012, 18:22:20 UTC |
dfc04e6 | Mihai Bazon | 08 October 2012, 18:15:47 UTC | add simple API wrapper: UglifyJS.minify (refs #7) | 08 October 2012, 18:15:59 UTC |
42ea3c9 | Mihai Bazon | 08 October 2012, 11:30:34 UTC | added some basic API doc | 08 October 2012, 11:30:34 UTC |
d4970b3 | Mihai Bazon | 08 October 2012, 10:37:27 UTC | should not expose base54.sort() in the API docs, I think | 08 October 2012, 10:37:27 UTC |
dd8286b | Mihai Bazon | 08 October 2012, 09:55:18 UTC | added --self to easily get a browser-runnable version of UglifyJS | 08 October 2012, 09:55:18 UTC |
093a903 | Mihai Bazon | 08 October 2012, 09:53:17 UTC | eliminate redundant directives in the same scope | 08 October 2012, 09:53:17 UTC |
80a18fe | Mihai Bazon | 08 October 2012, 09:52:25 UTC | 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. | 08 October 2012, 09:52:25 UTC |
fe1411b | Mihai Bazon | 05 October 2012, 20:10:52 UTC | fix typo | 05 October 2012, 20:10:52 UTC |
455ac54 | Mihai Bazon | 05 October 2012, 19:59:05 UTC | remove unused code | 05 October 2012, 19:59:05 UTC |
4a2b912 | Mihai Bazon | 05 October 2012, 17:24:56 UTC | minor | 05 October 2012, 17:24:56 UTC |
a1e0885 | Mihai Bazon | 05 October 2012, 13:51:16 UTC | replace `(function(){ ...no side effects ... })()` with `undefined`. | 05 October 2012, 13:51:16 UTC |
7ae0912 | Mihai Bazon | 05 October 2012, 13:17:31 UTC | prevent mangling only when eval is *called*, not when it's just referenced | 05 October 2012, 13:17:31 UTC |
42c25d9 | Mihai Bazon | 05 October 2012, 12:31:41 UTC | add note about installation | 05 October 2012, 12:31:55 UTC |
e88dcc3 | Mihai Bazon | 05 October 2012, 12:22:12 UTC | added --acorn and --spidermonkey options | 05 October 2012, 12:22:12 UTC |
ecd9f21 | Mihai Bazon | 05 October 2012, 12:05:06 UTC | fixed import of locations from SpiderMonkey AST | 05 October 2012, 12:05:06 UTC |
a9b6f99 | Mihai Bazon | 04 October 2012, 14:28:35 UTC | use the appropriate constructor for symbols | 04 October 2012, 14:28:35 UTC |
708ec04 | Mihai Bazon | 04 October 2012, 14:28:09 UTC | minor | 04 October 2012, 14:28:09 UTC |
682a58a | Mihai Bazon | 04 October 2012, 05:49:18 UTC | removed some unused variables | 04 October 2012, 05:49:18 UTC |
f20c251 | Mihai Bazon | 03 October 2012, 18:39:47 UTC | moving code around | 03 October 2012, 18:39:47 UTC |
2bd8a11 | Mihai Bazon | 03 October 2012, 17:03:17 UTC | define AST_Node.from_mozilla_ast(ast) returns an UglifyJS2 AST given a Mozilla AST. Still needs some work to do (need to create specific nodes like AST_SymbolRef, AST_SymbolLambda etc. instead of base AST_Symbol, in order for the mangler/compressor to work properly) | 03 October 2012, 17:03:17 UTC |
42ce7ed | Mihai Bazon | 03 October 2012, 17:01:32 UTC | ignore tmp/ | 03 October 2012, 17:01:32 UTC |
11863d6 | Mihai Bazon | 03 October 2012, 12:52:01 UTC | more cleanup (dropped AST_SwitchBlock) | 03 October 2012, 12:52:31 UTC |
3412498 | Mihai Bazon | 03 October 2012, 12:41:11 UTC | AST cleanup (dropped AST_StatementBase) | 03 October 2012, 12:41:11 UTC |
9221ad6 | Mihai Bazon | 03 October 2012, 10:19:00 UTC | added package.json | 03 October 2012, 10:38:39 UTC |
c11de17 | Mihai Bazon | 03 October 2012, 10:08:03 UTC | added option for side-effect-free statements, fix test | 03 October 2012, 10:08:03 UTC |
e0f5075 | Mihai Bazon | 03 October 2012, 09:49:47 UTC | fix endless loop in tests | 03 October 2012, 09:49:47 UTC |
bd94eeb | Mihai Bazon | 03 October 2012, 09:49:33 UTC | drop tmp. files | 03 October 2012, 09:49:33 UTC |
7e8880b | Mihai Bazon | 03 October 2012, 09:22:59 UTC | document the CLI tool | 03 October 2012, 09:22:59 UTC |
0678ae2 | Mihai Bazon | 03 October 2012, 08:34:05 UTC | fix for `a = !b && !c && !d && !e → a=!(b||c||d||e)` | 03 October 2012, 08:34:05 UTC |
378ed17 | Mihai Bazon | 03 October 2012, 08:27:05 UTC | disable `hoist_vars` by default and change `comparations` to `comparisons` | 03 October 2012, 08:27:05 UTC |
5c151f9 | Mihai Bazon | 02 October 2012, 18:08:16 UTC | fixed usage string | 02 October 2012, 18:08:16 UTC |
815abcf | Mihai Bazon | 02 October 2012, 13:40:42 UTC | support for `--comments` option to keep comments containing @license or @preserve | 02 October 2012, 13:40:42 UTC |
cb2e811 | Mihai Bazon | 02 October 2012, 13:40:01 UTC | discard annoying nodejs warning | 02 October 2012, 13:40:01 UTC |
075f93e | Mihai Bazon | 02 October 2012, 13:39:53 UTC | line numbers start at 1 | 02 October 2012, 13:39:53 UTC |
2a54562 | Mihai Bazon | 02 October 2012, 11:32:30 UTC | added option to keep some comments in the output | 02 October 2012, 11:32:30 UTC |
36be211 | Mihai Bazon | 02 October 2012, 11:02:33 UTC | option to exclude certain names from mangling | 02 October 2012, 11:02:33 UTC |
dde5b22 | Mihai Bazon | 02 October 2012, 10:20:07 UTC | support defines | 02 October 2012, 10:20:07 UTC |
e1098b0 | Mihai Bazon | 02 October 2012, 09:45:31 UTC | "use strict"; | 02 October 2012, 09:45:58 UTC |
2117927 | Mihai Bazon | 02 October 2012, 09:45:17 UTC | more constant folding (for names defined with `const`) | 02 October 2012, 09:45:17 UTC |
347160c | Mihai Bazon | 02 October 2012, 09:22:39 UTC | add AST_SymbolConst for names defined with `const` | 02 October 2012, 09:22:39 UTC |
ff696cd | Mihai Bazon | 02 October 2012, 09:02:33 UTC | drop more unused names | 02 October 2012, 09:02:33 UTC |
9e5dd81 | Mihai Bazon | 02 October 2012, 08:00:47 UTC | 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 | 02 October 2012, 08:22:38 UTC |
8964444 | Mihai Bazon | 28 September 2012, 08:12:47 UTC | minor | 28 September 2012, 08:12:47 UTC |
05e15b1 | Mihai Bazon | 26 September 2012, 20:54:30 UTC | fix mangling (bug in our code prevented the mangler from using a name that was in use prior to mangling but not after it) | 26 September 2012, 21:01:16 UTC |
13278c6 | Mihai Bazon | 26 September 2012, 16:52:32 UTC | removed the "squeeze" method (it's now effectively "transform") | 26 September 2012, 16:52:32 UTC |
15d58f5 | Mihai Bazon | 26 September 2012, 13:43:14 UTC | some speedup and more savings from unused vars that have side effects in initialization | 26 September 2012, 16:05:49 UTC |
78be8f5 | Mihai Bazon | 26 September 2012, 10:04:54 UTC | compressor successfully moved to TreeTransformer | 26 September 2012, 11:27:01 UTC |
a24e7ee | Mihai Bazon | 26 September 2012, 09:16:16 UTC | checkpoint (refactoring, WIP) | 26 September 2012, 09:16:16 UTC |
e979d01 | Mihai Bazon | 26 September 2012, 08:24:04 UTC | minor | 26 September 2012, 08:24:04 UTC |
242dd10 | Mihai Bazon | 25 September 2012, 15:03:31 UTC | more cleanups | 25 September 2012, 17:39:15 UTC |
9321d41 | Mihai Bazon | 25 September 2012, 12:59:27 UTC | moving code around (refactoring, WIP) | 25 September 2012, 12:59:27 UTC |
10c7f52 | Mihai Bazon | 25 September 2012, 12:30:59 UTC | discard all \uFEFF characters (https://github.com/mishoo/UglifyJS/issues/462) | 25 September 2012, 12:30:59 UTC |
4201577 | Mihai Bazon | 25 September 2012, 12:15:47 UTC | started some refactoring (WIP) -- moving squeezer to TreeTransformer | 25 September 2012, 12:15:47 UTC |
e836e2a | Mihai Bazon | 25 September 2012, 09:48:36 UTC | minor | 25 September 2012, 09:48:36 UTC |
ea6d1ea | Mihai Bazon | 25 September 2012, 07:32:14 UTC | it's not safe to assume that property access is side-effect-free (getters/setters + various browser bugs will trigger side effects; also, an exception is thrown when the expression is undefined) | 25 September 2012, 07:32:14 UTC |
368ac8f | Mihai Bazon | 25 September 2012, 07:31:03 UTC | some boolean cleanup | 25 September 2012, 07:31:03 UTC |
42038fd | Mihai Bazon | 24 September 2012, 14:02:18 UTC | Support input source map This is useful while compressing generated code; for example compressing JS compiled by CoffeeScript (assuming you got a source map): uglifyjs2 --in-source-map generated.js.map \ --source-map uglified.js.map \ -o uglified.js The above assumes you have a "generated.js.map" file which is the source mapping between your CoffeeScript and the generated.js (compiled output from CoffeeScript). The name of the input file is not present in this example; it will be fetched from the source map (but it can be passed manually too). The output will be in "uglified.js" and the output map "uglified.js.map" will actually map to the original CoffeeScript code, rather than to generated.js. | 24 September 2012, 14:02:18 UTC |
4f97da9 | Mihai Bazon | 24 September 2012, 07:27:49 UTC | minor tests fix | 24 September 2012, 07:27:49 UTC |
a83b285 | Mihai Bazon | 23 September 2012, 09:47:34 UTC | properly drop mutually-referring declarations that are not otherwise referenced and have no side effects | 23 September 2012, 09:47:34 UTC |
76d88b5 | Mihai Bazon | 22 September 2012, 10:32:32 UTC | tree transformer api (WIP) | 22 September 2012, 16:41:09 UTC |
ec7f895 | Mihai Bazon | 21 September 2012, 11:38:52 UTC | log filename in parse errors / compressor warnings | 21 September 2012, 11:44:25 UTC |
5491e1d | Mihai Bazon | 21 September 2012, 11:19:05 UTC | better support for multiple input files: - use a single AST_Toplevel node for all files - keep original source filename in the tokens | 21 September 2012, 11:19:05 UTC |