Age | Commit message (Collapse) | Author |
|
|
|
|
|
- link to existing documentation on `TreeWalker` & `TreeTransformer`
- fix Travis build failures
fixes #1949
|
|
fixes #1872
|
|
- rename `screw_ie8` to `ie8`
- rename `mangle.except` to `mangle.reserved`
- rename `mangle.properties.ignore_quoted` to `mangle.properties.keep_quoted`
- compact `sourceMap` options
- more stringent verification on input `options`
- toplevel shorthands
- `ie8`
- `keep_fnames`
- `toplevel`
- `warnings`
- support arrays and unquoted string values on CLI
- drop `fromString` from `minify()`
- `minify()` no longer handles any `fs` operations
- unify order of operations for `mangle_properties()` on CLI & API
- `bin/uglifyjs` used to `mangle_properties()` before even `Compressor`
- `minify()` used to `mangle_properties()` after `Compressor` but before `mangle_names()`
- both will now do `Compressor`, `mangle_names()` then `mangle_properties()`
- `options.parse` / `--parse` for parser options beyond `bare_returns`
- add `mangle.properties.builtins` to disable built-in reserved list
- disable with `--mangle-props builtins` on CLI
- `warnings` now off by default
- add `--warn` and `--verbose` on CLI
- drop `--enclose`
- drop `--export-all`
- drop `--reserved-file`
- use `--mangle reserved` instead
- drop `--reserve-domprops`
- enabled by default, disable with `--mangle-props domprops`
- drop `--prefix`
- use `--source-map base` instead
- drop `--lint`
- remove `bin/extract-props.js`
- limit exposure of internal APIs
- update documentations
closes #96
closes #102
closes #136
closes #166
closes #243
closes #254
closes #261
closes #311
closes #700
closes #748
closes #912
closes #1072
closes #1366
fixes #101
fixes #123
fixes #124
fixes #263
fixes #379
fixes #419
fixes #423
fixes #461
fixes #465
fixes #576
fixes #737
fixes #772
fixes #958
fixes #1036
fixes #1142
fixes #1175
fixes #1220
fixes #1223
fixes #1280
fixes #1359
fixes #1368
|
|
They started off as functional groups I guess, but given the sheer number of options this is becoming too difficult to read.
|
|
fixes #1719
|
|
- "?" should not match "/"
- other minor clean-ups
|
|
- limited to one input file (or `stdin`)
- only works with built-in parser
fixes #520
|
|
- never exceed specified limit
- otherwise warning is shown
- enabled only for final output
closes #1496
|
|
Clarify docs, help and tests for --support-ie8 and screw_ie8=false
|
|
will deduced
|
|
|
|
|
|
|
|
UglifyJS.minify function.
|
|
|
|
|
|
Potential fix for #1148
|
|
* Don't interpret strings with escaped content as directive
* Don't interpret strings after empty statement as directive
* Adapt output to prevent strings being represent as directive
* Introduce UGLIFY_DEBUG to allow internal testing like EXPECT_DIRECTIVE
|
|
In uglify-js@1, both parser and tokenizer methods were exported
This allows to use tokenizer() separately, e.g. to wrap or override it, as
parse() method accepts not only text, but also tokenized functions.
|
|
Fixes #1055
|
|
|
|
|
|
|
|
|
|
It's now available during tree walking, i.e. walker.has_directive("use
asm"), rather than as part of the scope. It's thus no longer necessary
to call `figure_out_scope` before codegen. Added special bits in the
code generator to overcome the fact that it doesn't inherit from
TreeWalker.
Fix #861
|
|
asm" code
|
|
Need to explicitly qualify stuff now, since it's not evaluated in some
global scope.
Ref #636
|
|
Improves performance 2x on node > 0.10.
Ref #636
|
|
|
|
fromString option, use index from argument array for filename instead of "?"
|
|
|
|
The index allows the caller to map things like parse errors back to the
code chunk where they appeared.
|
|
Close #542, #641, #647
|
|
|
|
|
|
|
|
|
|
tools/domprops.json
|
|
|
|
|
|
|
|
|
|
We only touch properties that are present in an object literal, or which are
assigned to. Example:
x = { foo: 1 };
x.bar = 2;
x["baz"] = 3;
x[cond ? "qwe" : "asd"] = 4;
console.log(x.stuff);
The names "foo", "bar", "baz", "qwe" and "asd" will be mangled, and the
resulting mangled names will be used for the same properties throughout the
code. The "stuff" will not be, since it's just referenced but never
assigned to.
This *will* break most of the code out there, but could work on carefully
written code: do not use eval, do not define methods or properties by
walking an array of names, etc. Also, a comprehensive list of exclusions
needs to be passed, to avoid mangling properties that are standard in
JavaScript, DOM, used in external libraries etc.
|
|
`"null"` isn't a very usable value. `JSON.parse(null)` also gives `null`, which makes this fully backwards compatible.
Closes #616
|
|
Fix #219. Because the options were not set and `toplevel` is `false` by default, some toplevel names would sometimes not be mangled correctly.
|
|
This allows usage of UglifyJS on build systems which have a flat (or non-matching relative) directory structure for source files.
|
|
|
|
If options.outSourceMap is specified the sourceMappingURL comment
should be appended to the output stream
|