Mihai Bazon [Thu, 18 Oct 2012 12:14:57 +0000 (15:14 +0300)]
more optimizations for some break/continue cases
Mihai Bazon [Thu, 18 Oct 2012 07:54:30 +0000 (10:54 +0300)]
v2.1.1
Mihai Bazon [Thu, 18 Oct 2012 07:54:10 +0000 (10:54 +0300)]
fix `--comments` (close #16)
Mihai Bazon [Wed, 17 Oct 2012 19:00:11 +0000 (22:00 +0300)]
v2.1.0
Mihai Bazon [Wed, 17 Oct 2012 18:59:36 +0000 (21:59 +0300)]
added note about API docs and online demo
Mihai Bazon [Wed, 17 Oct 2012 18:57:08 +0000 (21:57 +0300)]
more small optimizations
(unlikely to help for hand-written code)
Mihai Bazon [Wed, 17 Oct 2012 13:17:14 +0000 (16:17 +0300)]
define aborts on AST_If: true if both branches abort
Mihai Bazon [Wed, 17 Oct 2012 12:56:45 +0000 (15:56 +0300)]
employ a better parser for command-line arguments
to support passing commas in strings in for example:
uglifyjs2 -cd TEST="'a,b'" <<EOF
console.log(TEST);
EOF
→ console.log("a,b")
close #14
Mihai Bazon [Wed, 17 Oct 2012 12:24:47 +0000 (15:24 +0300)]
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.
Mihai Bazon [Wed, 17 Oct 2012 11:51:27 +0000 (14:51 +0300)]
add `semicolons` option in the code generator (default: `true`)
pass `false` to separate statements with newlines instead of semicolons
Mihai Bazon [Tue, 16 Oct 2012 12:54:12 +0000 (15:54 +0300)]
fix small glitches in source map generation
Mihai Bazon [Sat, 13 Oct 2012 12:18:11 +0000 (15:18 +0300)]
disable warnings in the test suite
Mihai Bazon [Sat, 13 Oct 2012 12:04:44 +0000 (15:04 +0300)]
drop unused function arguments
also add test for "drop_unused" (the last one fails for now)
Mihai Bazon [Sat, 13 Oct 2012 11:32:08 +0000 (14:32 +0300)]
add parens to AST_Seq whose parent is AST_Unary
Mihai Bazon [Sat, 13 Oct 2012 09:56:56 +0000 (12:56 +0300)]
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 :-\
Mihai Bazon [Sat, 13 Oct 2012 09:42:01 +0000 (12:42 +0300)]
minor
Mihai Bazon [Sat, 13 Oct 2012 09:24:27 +0000 (12:24 +0300)]
fix regression from
fb5c01c073d06034815d5f3b782fd11cbdf6d6f5
is_digit takes a char code now, not a string
Mihai Bazon [Sat, 13 Oct 2012 08:37:58 +0000 (11:37 +0300)]
fix end tokens in spidermonkey ast import
Mihai Bazon [Fri, 12 Oct 2012 21:35:24 +0000 (00:35 +0300)]
update for acorn
Mihai Bazon [Fri, 12 Oct 2012 11:55:54 +0000 (14:55 +0300)]
minor
Mihai Bazon [Fri, 12 Oct 2012 08:41:48 +0000 (11:41 +0300)]
actually enable the option that drops unused names in the test of issue #12
Mihai Bazon [Fri, 12 Oct 2012 08:07:35 +0000 (11:07 +0300)]
remove the $self hack
operations are destructive anyway, so there's no point to clone the nodes in
the transformer. speed++
Mihai Bazon [Fri, 12 Oct 2012 07:49:48 +0000 (10:49 +0300)]
add test for issue #12
Mihai Bazon [Fri, 12 Oct 2012 07:49:41 +0000 (10:49 +0300)]
fix in_boolean_context() (two tests were broken)
Mihai Bazon [Fri, 12 Oct 2012 07:11:01 +0000 (10:11 +0300)]
use AST_Lambda for object setters/getters
so that the optimization that drops the name if unused doesn't apply.
close #12
Mihai Bazon [Thu, 11 Oct 2012 12:25:38 +0000 (15:25 +0300)]
fix pos in syntax error exception
Mihai Bazon [Thu, 11 Oct 2012 10:00:58 +0000 (13:00 +0300)]
stealing more hacks from acorn in the name of speed
Mihai Bazon [Thu, 11 Oct 2012 08:52:05 +0000 (11:52 +0300)]
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.
Mihai Bazon [Thu, 11 Oct 2012 08:07:42 +0000 (11:07 +0300)]
cleanup
- use prototype-less objects where feasible (minor speed improvement)
- get rid of HOP
Mihai Bazon [Thu, 11 Oct 2012 07:28:48 +0000 (10:28 +0300)]
fix propagation of symbol references
Mihai Bazon [Thu, 11 Oct 2012 06:30:22 +0000 (09:30 +0300)]
disable warnings by default in `minify` (pass warnings: true to enable)
close #11
Mihai Bazon [Wed, 10 Oct 2012 20:16:40 +0000 (23:16 +0300)]
fix node name
Mihai Bazon [Wed, 10 Oct 2012 08:37:51 +0000 (11:37 +0300)]
seems cleaner if AST_Label doesn't inherit from AST_SymbolDeclaration
Mihai Bazon [Wed, 10 Oct 2012 08:28:05 +0000 (11:28 +0300)]
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
Mihai Bazon [Wed, 10 Oct 2012 08:27:06 +0000 (11:27 +0300)]
drop unused variable
Mihai Bazon [Wed, 10 Oct 2012 08:26:59 +0000 (11:26 +0300)]
add `--lint` and display {file} in scope_warnings
Mihai Bazon [Tue, 9 Oct 2012 19:56:59 +0000 (22:56 +0300)]
minor
Mihai Bazon [Tue, 9 Oct 2012 16:09:11 +0000 (19:09 +0300)]
update on @cc_on
Mihai Bazon [Tue, 9 Oct 2012 15:35:53 +0000 (18:35 +0300)]
add AST_Infinity node
Mihai Bazon [Tue, 9 Oct 2012 15:25:00 +0000 (18:25 +0300)]
make `--comments` keep @cc_on too
Mihai Bazon [Tue, 9 Oct 2012 13:25:45 +0000 (16:25 +0300)]
added $propdoc to AST nodes and some cleanups
hopefully we can make the AST documentation self-generating
Mihai Bazon [Tue, 9 Oct 2012 10:52:32 +0000 (13:52 +0300)]
minor AST cleanup (AST_BlockStatement may inherit from AST_Block)
Mihai Bazon [Tue, 9 Oct 2012 10:21:21 +0000 (13:21 +0300)]
add `--ast-help`
displays a rather cruel description of the AST classes, derived
directly from the node definitions.
Mihai Bazon [Tue, 9 Oct 2012 10:13:55 +0000 (13:13 +0300)]
fix detecting symbols in use
Mihai Bazon [Tue, 9 Oct 2012 10:04:33 +0000 (03:04 -0700)]
Merge pull request #8 from SevInf/master
Fix crash in minify function
Sergej Tatarincev [Tue, 9 Oct 2012 09:52:28 +0000 (12:52 +0300)]
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
Mihai Bazon [Mon, 8 Oct 2012 18:22:20 +0000 (21:22 +0300)]
fix `inSourceMap` in `minify` (should read the file)
Mihai Bazon [Mon, 8 Oct 2012 18:15:47 +0000 (21:15 +0300)]
add simple API wrapper: UglifyJS.minify
(refs #7)
Mihai Bazon [Mon, 8 Oct 2012 11:30:34 +0000 (14:30 +0300)]
added some basic API doc
Mihai Bazon [Mon, 8 Oct 2012 10:37:27 +0000 (13:37 +0300)]
should not expose base54.sort() in the API docs, I think
Mihai Bazon [Mon, 8 Oct 2012 09:55:18 +0000 (12:55 +0300)]
added --self to easily get a browser-runnable version of UglifyJS
Mihai Bazon [Mon, 8 Oct 2012 09:53:17 +0000 (12:53 +0300)]
eliminate redundant directives in the same scope
Mihai Bazon [Mon, 8 Oct 2012 09:52:25 +0000 (12:52 +0300)]
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.
Mihai Bazon [Fri, 5 Oct 2012 20:10:52 +0000 (23:10 +0300)]
fix typo
Mihai Bazon [Fri, 5 Oct 2012 19:59:05 +0000 (22:59 +0300)]
remove unused code
Mihai Bazon [Fri, 5 Oct 2012 17:24:56 +0000 (20:24 +0300)]
minor
Mihai Bazon [Fri, 5 Oct 2012 13:51:16 +0000 (16:51 +0300)]
replace `(function(){ ...no side effects ... })()` with `undefined`.
Mihai Bazon [Fri, 5 Oct 2012 13:17:31 +0000 (16:17 +0300)]
prevent mangling only when eval is *called*, not when it's just referenced
Mihai Bazon [Fri, 5 Oct 2012 12:31:41 +0000 (15:31 +0300)]
add note about installation
Mihai Bazon [Fri, 5 Oct 2012 12:22:12 +0000 (15:22 +0300)]
added --acorn and --spidermonkey options
Mihai Bazon [Fri, 5 Oct 2012 12:05:06 +0000 (15:05 +0300)]
fixed import of locations from SpiderMonkey AST
Mihai Bazon [Thu, 4 Oct 2012 14:28:35 +0000 (17:28 +0300)]
use the appropriate constructor for symbols
Mihai Bazon [Thu, 4 Oct 2012 14:28:09 +0000 (17:28 +0300)]
minor
Mihai Bazon [Thu, 4 Oct 2012 05:49:18 +0000 (08:49 +0300)]
removed some unused variables
Mihai Bazon [Wed, 3 Oct 2012 18:39:47 +0000 (21:39 +0300)]
moving code around
Mihai Bazon [Wed, 3 Oct 2012 17:03:17 +0000 (20:03 +0300)]
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)
Mihai Bazon [Wed, 3 Oct 2012 17:01:32 +0000 (20:01 +0300)]
ignore tmp/
Mihai Bazon [Wed, 3 Oct 2012 12:52:01 +0000 (15:52 +0300)]
more cleanup (dropped AST_SwitchBlock)
Mihai Bazon [Wed, 3 Oct 2012 12:41:11 +0000 (15:41 +0300)]
AST cleanup (dropped AST_StatementBase)
Mihai Bazon [Wed, 3 Oct 2012 10:19:00 +0000 (13:19 +0300)]
added package.json
Mihai Bazon [Wed, 3 Oct 2012 10:08:03 +0000 (13:08 +0300)]
added option for side-effect-free statements, fix test
Mihai Bazon [Wed, 3 Oct 2012 09:49:47 +0000 (12:49 +0300)]
fix endless loop in tests
Mihai Bazon [Wed, 3 Oct 2012 09:49:33 +0000 (12:49 +0300)]
drop tmp. files
Mihai Bazon [Wed, 3 Oct 2012 09:22:59 +0000 (12:22 +0300)]
document the CLI tool
Mihai Bazon [Wed, 3 Oct 2012 08:34:05 +0000 (11:34 +0300)]
fix for `a = !b && !c && !d && !e → a=!(b||c||d||e)`
Mihai Bazon [Wed, 3 Oct 2012 08:27:05 +0000 (11:27 +0300)]
disable `hoist_vars` by default and change `comparations` to `comparisons`
Mihai Bazon [Tue, 2 Oct 2012 18:08:16 +0000 (21:08 +0300)]
fixed usage string
Mihai Bazon [Tue, 2 Oct 2012 13:40:42 +0000 (16:40 +0300)]
support for `--comments` option to keep comments containing @license or @preserve
Mihai Bazon [Tue, 2 Oct 2012 13:40:01 +0000 (16:40 +0300)]
discard annoying nodejs warning
Mihai Bazon [Tue, 2 Oct 2012 13:39:53 +0000 (16:39 +0300)]
line numbers start at 1
Mihai Bazon [Tue, 2 Oct 2012 11:32:30 +0000 (14:32 +0300)]
added option to keep some comments in the output
Mihai Bazon [Tue, 2 Oct 2012 11:02:33 +0000 (14:02 +0300)]
option to exclude certain names from mangling
Mihai Bazon [Tue, 2 Oct 2012 10:20:07 +0000 (13:20 +0300)]
support defines
Mihai Bazon [Tue, 2 Oct 2012 09:45:31 +0000 (12:45 +0300)]
"use strict";
Mihai Bazon [Tue, 2 Oct 2012 09:45:17 +0000 (12:45 +0300)]
more constant folding (for names defined with `const`)
Mihai Bazon [Tue, 2 Oct 2012 09:22:39 +0000 (12:22 +0300)]
add AST_SymbolConst for names defined with `const`
Mihai Bazon [Tue, 2 Oct 2012 09:02:33 +0000 (12:02 +0300)]
drop more unused names
Mihai Bazon [Tue, 2 Oct 2012 08:00:47 +0000 (11:00 +0300)]
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
Mihai Bazon [Fri, 28 Sep 2012 08:12:47 +0000 (11:12 +0300)]
minor
Mihai Bazon [Wed, 26 Sep 2012 20:54:30 +0000 (23:54 +0300)]
fix mangling
(bug in our code prevented the mangler from using a name that was in use
prior to mangling but not after it)
Mihai Bazon [Wed, 26 Sep 2012 16:52:32 +0000 (19:52 +0300)]
removed the "squeeze" method (it's now effectively "transform")
Mihai Bazon [Wed, 26 Sep 2012 13:43:14 +0000 (16:43 +0300)]
some speedup and more savings from unused vars that have side effects in initialization
Mihai Bazon [Wed, 26 Sep 2012 10:04:54 +0000 (13:04 +0300)]
compressor successfully moved to TreeTransformer
Mihai Bazon [Wed, 26 Sep 2012 09:16:16 +0000 (12:16 +0300)]
checkpoint (refactoring, WIP)
Mihai Bazon [Wed, 26 Sep 2012 08:24:04 +0000 (11:24 +0300)]
minor
Mihai Bazon [Tue, 25 Sep 2012 15:03:31 +0000 (18:03 +0300)]
more cleanups
Mihai Bazon [Tue, 25 Sep 2012 12:59:27 +0000 (15:59 +0300)]
moving code around (refactoring, WIP)
Mihai Bazon [Tue, 25 Sep 2012 12:30:59 +0000 (15:30 +0300)]
discard all \uFEFF characters (https://github.com/mishoo/UglifyJS/issues/462)
Mihai Bazon [Tue, 25 Sep 2012 12:15:47 +0000 (15:15 +0300)]
started some refactoring (WIP) -- moving squeezer to TreeTransformer
Mihai Bazon [Tue, 25 Sep 2012 09:48:36 +0000 (12:48 +0300)]
minor