aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2016-11-29Generate source map data from normalized filesMartijn Swaagman
If using `inSourceMap` this fix will ensure the copying of `sourcesContent` is based on potentially normalized `sources` values (https://github.com/mozilla/source-map/blob/master/lib/source-map-consumer.js#L304-L309). For example `normalize` (https://github.com/mozilla/source-map/blob/master/lib/util.js#L80-L123) will rewrite `./dist/mySource.js` to `dist/mySource.js` in the target `_sources` of the `SourceMapConsumer`. As a result `orig_map.sourceContentFor(source, true);` would return `null` since the orginal `source` was no longer available in the consumer. By using the keys generating from the `SourceMapConsumer.constructor` consistency is ensured.
2016-11-29Add --mangle-props-debug and fix --mangle-props=unquoted collisionAshley (Scirra)
Patch by @AshleyScirra Based on: PR #1316 Renamed the CLI debug option to --mangle-props-debug Fixes: #1321 name collision in --mangle-props=unquoted
2016-11-29Do not overwrite options.comments + cleanupAnthony Van de Gejuchte
2016-10-23Don't filter shebangs when using the 'some' comment filterAnthony Van de Gejuchte
Also clarify documentation a bit more about using regexp as filter
2016-10-23fix uses_arguments handling (broken since 6605d1578351)Jann Horn
Using the symbol declaration tracking of UglifyJS doesn't make sense here anyway, `arguments` always comes from something in the current scope. fixes #1299
2016-10-06Remove console.log and add extra test caseRichard van Velzen
2016-10-06Add an option to wrap IIFEs in parenthesisRichard van Velzen
For #1307.
2016-10-06Fix (typeof side_effect()) in boolean contextkzc
Fixes #1289 with suggestion by @rvanvelzen
2016-10-01Optimize unmodified variablesalexlamsl
2016-09-06Make all comment options in cli available in js apiAnthony Van de Gejuchte
Also removing more code within "loop" while at it.
2016-09-01Account for side effects in `string + expr` optimizationkzc
2016-08-30implement optimization: (x = 2 * x) ---> (x *= 2)kzc
2016-08-17Fix negate_iife transform to return a correct tree for nested IIFEsRichard van Velzen
Fix for #1256, partially reverts d854523783b4
2016-08-17Fix negate_iife regression #1254kzc
2016-08-14Fix --mangle-props and --mangle-props=unquotedkzc
Fixes: #1247 Fix --mangle-props and --name-cache inconsistency. AST_Dot and AST_Sub properties are now mangled by --mangle-props without regard to being used in an assignment statement. Note: if --mangle-props is used then *all* javascript files used must be uglified with the same mangle options. Fix the ignore_quoted=true mangle option, also known as `--mangle-props=unquoted`. If a given property is quoted anywhere it will not be mangled in any quoted or non-quoted context.
2016-08-14Fix unneeded parens around unary args in new expression.kzc
2016-07-21Legacy octal integer strict mode fixesAnthony Van de Gejuchte
2016-07-17lib/sourcemap.js: Copy sourceContent from old souce-map to the new ↵Lauri Pokka
source-map. Should fix #882
2016-07-15Keep const in own scope while compressingAnthony Van de Gejuchte
- Fixes #1205 - Fix provided by @kzc
2016-07-15Fix mangle with option keep_fnames=true for Safari.kzc
Fixes: #1202
2016-07-15Fix error style for regex errorsAnthony Van de Gejuchte
2016-07-03Don't convert all strings to directives from moz-astAnthony Van de Gejuchte
2016-07-01Change the default sequences limit to 200 to speed up compress.kzc
Has little or no impact on minification size in the majority of cases but can speed up rollup builds significantly. This sequences change also has the beneficial side effect of avoiding "stack size exceeded" errors on very large input files. The user is free to alter the sequences limit if they are so inclined. The previous sequences limit was 2000. 20 is often sufficient.
2016-07-01Allow sequences maximum length to be user configurable.kzc
2016-06-30Various LineTerminator changesAnthony Van de Gejuchte
* Escaped newlines should also produce SyntaxError * Fix multiline comment parsing and add tests * Adapt makePredicate to handle \u2028 and \u2029 * Move up nlb check in regex so it's checked before any escape handling * Change error messages to conform ecma standard * Find_eol not recornizing \u2028 and \u2029 as line terminator * Remove \u180e as it is removed in unicode 6.3.0 from the category zs
2016-06-30Enable --screw-ie8 by default.kzc
catch identifier is mangled correctly for ES5 standards-compliant JS engines by default. Unconditionally use the ie8 if/do-while workaround whether or not --screw-ie8 is enabled. To support non-standard ie8 javascript use: uglifyjs --support-ie8
2016-06-30Fix spidermonkey AST (ESTree) export and import, Array holeskzc
Fixes: #1156 #1161 Also add test to exercise Uglify after spidermonkey export/import of itself.
2016-06-30Move OctalEscapeSequence to read_escape_charAnthony Van de Gejuchte
This should simplify and improve implementation, make it easier to implement template strings, and keep master a bit more in sync with harmony. Previous implementation wasn't broken, though the loop gave me the impression it could read infinite numbers and annoyed me a bit. It was also slightly unnecessary because the lookup involved only 3 characters.
2016-06-21Fix conditional expressions of form (x ? -1 : -1)kzc
Fixes #1154, #1153
2016-06-21Don't replace undefined, NaN and Infinity within with scopekzc
2016-06-20Keep master in sync with harmonyAnthony Van de Gejuchte
* Do not mangle when no mangle is required * Improve use_asm reset while printing code
2016-06-19Respect quote style in object literalsShrey Banga
The option added in fbbaa42ee55a7f753f7cab9b1a905ccf73cf26d5 wasn't being respected inside object literals, so quoted property names would still be stripped out with this option. This is mostly a corner-case, but useful when the output is passed to something like the Closure compiler, where quoted property names can be used to prevent mangling.
2016-06-19Normalize error messagesAnthony Van de Gejuchte
2016-06-19Don't mix strings with directives in outputAnthony Van de Gejuchte
* 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
2016-06-15Fix test262 failures related to <, <=, in and instanceofAnthony Van de Gejuchte
Fixed-by: @kzc
2016-06-12Re-add parens after new expression in beautify modeAnthony Van de Gejuchte
2016-06-12Don't allow with statements in strict modeAnthony Van de Gejuchte
2016-06-12Stop dropping args in new expressionsAnthony Van de Gejuchte
2016-06-12Escape null characters as \0 unless followed by 0-7.David Bau
2016-06-12Don't drop unused if scope uses with statementAnthony Van de Gejuchte
Fix provided by @kzc
2016-06-12Throw errors in strict mode for octal stringsAnthony Van de Gejuchte
Adds a directive tracker for the parser/tokenizer to allow parsing depending on directive context.
2016-06-08Fix uglify attempting to rewrite invalid new expressionsAnthony Van de Gejuchte
2016-06-05Do not allow newlines in regexAnthony Van de Gejuchte
2016-05-27collapse_vars: Do not consider RegExp literals to be constantskzc
Fixes #1100
2016-05-24Optimize if_return for single if/return cases.kzc
Fixes #1089
2016-05-24Completely allow evaluating -0Richard van Velzen
2016-05-17Never produce -0 when evaluating expressions (like -"")Richard van Velzen
Fix for #1085. The major case was already there, but more expressions can result in -0.
2016-05-15Simplify iife `new` fixkzc
as suggested by @rvanvelzen. Added a test for IIFEs in nested contexts.
2016-05-09Do not apply negate_iife optimization to `new` expressionkzc
2016-05-04Retain comments before AST_Constants during mangle.kzc