Anthony Van de Gejuchte
2d8af8947e
Fix error style for regex errors
2016-07-15 13:14:30 +02:00
Anthony Van de Gejuchte
ff7f6139ba
Improve multi-line comment parsing
...
* Make sure comments are skipped correctly with surrogates
* Fix regression in multiline comments with nlb
2016-07-12 00:08:35 +02:00
Anthony Van de Gejuchte
2650182f47
Backport mocha with test from harmony
2016-07-04 00:51:09 +02:00
Richard van Velzen
572b97b0bb
v2.7.0
v2.7.0
2016-07-03 21:46:14 +02:00
Richard van Velzen
0db7caf13b
Merge branch 'master' into harmony
2016-07-03 21:39:00 +02:00
Anthony Van de Gejuchte
d9bc6f303c
Fix output arrow function with 1 param with default value
...
Fixes #1090
2016-07-03 21:37:53 +02:00
Anthony Van de Gejuchte
6fd9b338dd
Merge branch 'master' into harmony
2016-07-03 21:35:00 +02:00
Anthony Van de Gejuchte
698705a820
Don't convert all strings to directives from moz-ast
2016-07-03 12:36:57 +02:00
Anthony Van de Gejuchte
d8d4e71b9e
Fix uses_with/uses_eval/directives state in block scope
2016-07-01 15:43:17 +02:00
Richard van Velzen
debc525fa1
Introduce a test that tests the --self build
2016-07-01 09:46:05 +02:00
kzc
5576e2737a
Document that the smallest sequences optimization length is 2
...
and a sequences value of 1 is considered to be `true` - which
will be set to the default value of 200.
2016-07-01 09:41:31 +02:00
kzc
b40d5de69c
Change the default sequences limit to 200 to speed up compress.
...
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-01 09:41:31 +02:00
kzc
b7ef7840f3
Allow sequences maximum length to be user configurable.
2016-07-01 09:41:31 +02:00
Anthony Van de Gejuchte
fb2f8d1a51
Add reserved words to list unescapable keywords
...
Additionals:
* Update list reserved keywords
2016-06-30 22:47:44 +02:00
Anthony Van de Gejuchte
54a783ba84
Add ecma5 flag for codegen
2016-06-30 22:47:44 +02:00
Anthony Van de Gejuchte
63c432f4fa
Extend unicode support
...
* Support \u{xxxx} syntax
* Add support for surrogate pairs
* Allow identifiers to have unicode escape sequence
2016-06-30 22:47:44 +02:00
Geraint
85924bb32e
Allow input files to be map (url->filename)
2016-06-30 22:23:59 +02:00
Anthony Van de Gejuchte
a97690fc72
Various LineTerminator changes
...
* 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-30 22:12:50 +02:00
kzc
02c638209e
Enable --screw-ie8 by default.
...
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-30 21:49:48 +02:00
iliashk
030611b729
Add Node API documentation for mangling options
2016-06-30 21:45:25 +02:00
kzc
335b72df03
Fix spidermonkey AST (ESTree) export and import, Array holes
...
Fixes : #1156 #1161
Also add test to exercise Uglify after spidermonkey export/import of itself.
2016-06-30 21:44:12 +02:00
Anthony Van de Gejuchte
3a7d53f3cf
Move OctalEscapeSequence to read_escape_char
...
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-30 21:42:15 +02:00
Anthony Van de Gejuchte
07785d0003
Throw error if new.target is like new.foo
2016-06-25 19:32:53 +02:00
Richard van Velzen
9676167aac
v2.6.4
v2.6.4
2016-06-22 12:24:31 +02:00
Anthony Van de Gejuchte
6eaeb19a4a
Add exponentiation operator
2016-06-22 12:23:37 +02:00
Mihai Bazon
1840a0b282
Merge pull request #1155 from kzc/issue_1154
...
Fix conditional expressions of form (x ? -1 : -1)
2016-06-21 23:14:05 +03:00
kzc
ace8aaa0f4
Fix conditional expressions of form (x ? -1 : -1)
...
Fixes #1154 , #1153
2016-06-21 14:52:13 -04:00
kzc
0c003c92a8
Don't replace undefined, NaN and Infinity within with scope
2016-06-21 10:53:29 +02:00
Anthony Van de Gejuchte
2246c79318
Merge branch 'master' into fix-harmony
2016-06-20 19:21:25 +02:00
Anthony Van de Gejuchte
85fbf86d7b
Keep master in sync with harmony
...
* Do not mangle when no mangle is required
* Improve use_asm reset while printing code
2016-06-20 18:42:17 +02:00
Anthony Van de Gejuchte
dda58244b6
Fixes to prevent failing tests after merging master
...
* Add missing quote properties to AST_ObjectKeyVal
* Avoid test results being interpret as directives
2016-06-20 15:02:09 +02:00
Richard van Velzen
aa82027a17
Don't assume DEBUG is defined when exporting --self
...
Potential fix for #1148
2016-06-20 08:40:45 +02:00
Richard van Velzen
55c592dd43
v2.6.3
v2.6.3
2016-06-19 21:56:06 +02:00
Asia
fc1abd1c11
Document the except option to mangle
...
Added documentation for the `except` option to the `mangle` option in the API reference.
2016-06-19 21:17:31 +02:00
Shrey Banga
e645ba84cf
Respect quote style in object literals
...
The option added in fbbaa42ee5 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-19 21:13:31 +02:00
Anthony Van de Gejuchte
6c99816855
Normalize error messages
2016-06-19 21:08:34 +02:00
Anthony Van de Gejuchte
ca04508cd1
Restrict yield outside generators in strict mode
...
* Move some yield/generic tests from compress/harmony.js to
compress/yield.js
* Adjust error messages to conform ecmascript standards
2016-06-19 21:03:36 +02:00
Anthony Van de Gejuchte
2149bfb707
Don't mix strings with directives in output
...
* 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-19 20:59:17 +02:00
Anthony Van de Gejuchte
6b03b800b3
Only last parameter between parentheses can have spread
2016-06-19 20:51:29 +02:00
Anthony Van de Gejuchte
f9cab7ad61
Allow expand in array literals
2016-06-19 20:49:18 +02:00
Anthony Van de Gejuchte
d7971ba0e4
Fix test262 failures related to <, <=, in and instanceof
...
Fixed-by: @kzc
2016-06-15 23:11:08 +02:00
Anthony Van de Gejuchte
5c4cfaa0a7
Re-add parens after new expression in beautify mode
2016-06-12 20:03:48 +02:00
Anthony Van de Gejuchte
bb9c9707aa
Don't allow with statements in strict mode
2016-06-12 19:08:16 +02:00
Richard van Velzen
0a3d780327
Merge branch 'master' into harmony
2016-06-12 17:29:42 +02:00
Anthony Van de Gejuchte
6c8e001fee
Stop dropping args in new expressions
2016-06-12 17:17:17 +02:00
Richard van Velzen
9c53c7ada7
Fix octal string strict mode tests
2016-06-12 14:35:43 +02:00
David Bau
f99b7b630d
Escape null characters as \0 unless followed by 0-7.
2016-06-12 14:32:32 +02:00
Anthony Van de Gejuchte
ea31da2455
Don't drop unused if scope uses with statement
...
Fix provided by @kzc
2016-06-12 14:30:28 +02:00
Anthony Van de Gejuchte
4d7746baf3
Throw errors in strict mode for octal strings
...
Adds a directive tracker for the parser/tokenizer to
allow parsing depending on directive context.
2016-06-12 14:27:08 +02:00
Anthony Van de Gejuchte
b0555a123a
Fix newline handling after yield
...
YieldExpressions can only be defined as:
* `yield`
* `yield` [no nlb] AssignmentExpression
* `yield` [no nlb] `*` AssignmentExpression
2016-06-11 21:41:16 +02:00