UglifyJS/test/compress
Anthony Van de Gejuchte 0af42d1831 Template fixes
* Fixes #1147: template strings not obeying -b ascii_only true
* Allow evaluation of template expressions by adding optimizers and
  walkers
* Make sure tagged templates are never changed
* Remove template tokenizer in parser, add template tokenizer in
  tokenizer. It is using a brace counter to track brace position of
  templates
* Add tokens `template_head` and `template_substitution` but parsing
  tokens stays mostly the same
* Do not output strings anymore in AST_TemplateString, instead use
  AST_TemplateSegment
* Fix parsing tagged templates, allowing multiple templates behind
  as spec allows this

These changes don't influence tagged templates because raw content
may influence code execution, however they are safe to do in normal
templates:
* Allow basic string concatenation of templates where possible
* Allow custom character escape style similar to strings, except in
  tagged templates

Note that expressions are still compressed in tagged templates.

Optional things that may be improved later:
* Custom quote style for templates if it doesn't have expressions.
  Making it obey the quote_style option if this is the case.
2016-07-17 00:36:42 +02:00
..
angular-inject.js added newline at the end of the file 2014-07-08 11:16:35 +02:00
arrays.js Allow expand in array literals 2016-06-19 20:49:18 +02:00
arrow.js Fix output arrow function with 1 param with default value 2016-07-03 21:37:53 +02:00
ascii.js Enable --screw-ie8 by default. 2016-06-30 21:49:48 +02:00
asm.js Fix test262 failures related to <, <=, in and instanceof 2016-06-15 23:11:08 +02:00
block-scope.js Fixups after merge 2016-04-18 15:51:32 +02:00
blocks.js minor 2012-08-27 11:00:26 +03:00
collapse_vars.js collapse_vars: Do not consider RegExp literals to be constants 2016-05-27 00:03:51 -04:00
comparing.js Fix test262 failures related to <, <=, in and instanceof 2016-06-15 23:11:08 +02:00
concat-strings.js Escape null characters as \0 unless followed by 0-7. 2016-06-12 14:32:32 +02:00
conditionals.js Fix conditional expressions of form (x ? -1 : -1) 2016-06-21 14:52:13 -04:00
dead-code.js Merge branch 'master' into harmony 2016-04-18 15:50:35 +02:00
debugger.js wrote more of the compressor and added some tests 2012-08-22 15:21:58 +03:00
destructuring.js Starting destructuring expressions 2015-08-25 17:49:27 +01:00
drop-console.js Drop all console statements properly 2015-01-31 13:24:44 +01:00
drop-unused.js First class block scope 2016-03-27 19:40:20 +02:00
evaluate.js Add exponentiation operator 2016-06-22 12:23:37 +02:00
expansions.js expand parameters 2015-08-05 21:15:23 +02:00
expression.js Add exponentiation operator 2016-06-22 12:23:37 +02:00
harmony.js Template fixes 2016-07-17 00:36:42 +02:00
hoist.js Parse and compress destructuring VarDefs 2015-08-21 12:04:26 +02:00
html_comments.js Improve multi-line comment parsing 2016-07-12 00:08:35 +02:00
if_return.js Optimize if_return for single if/return cases. 2016-05-24 17:54:08 +02:00
issue-12.js Allow operator names as getters/setters 2016-01-19 19:28:51 +01:00
issue-22.js fix for if (...) return; else return ...; 2012-10-24 09:33:32 +03:00
issue-44.js fix invalid AST produced by dropping unused variable 2012-11-12 13:23:57 +02:00
issue-59.js Add test for issue #59 2012-11-30 11:26:37 +02:00
issue-105.js Better fix for equality of typeof ... against "undefined" 2013-05-08 16:22:48 +03:00
issue-126.js Add a unit test for issue-126 2013-10-25 16:28:15 -04:00
issue-143.js Added test cases for #104. 2013-05-08 16:22:48 +03:00
issue-203.js Add a test to verify that destructuring arguments work with #203 code 2015-07-29 14:54:45 +02:00
issue-208.js [Fix] --define replaces SymbolRefs in LHS of assignments 2015-08-10 11:22:36 -07:00
issue-267.js Disallow reversal where lhs has higher or equal precedence 2013-10-29 21:37:36 +01:00
issue-269.js Fix faulty compression 2013-11-20 21:13:16 +02:00
issue-597.js Fix tests 2015-04-17 11:28:59 +03:00
issue-611.js Replace the correct node when replacing in void sequences 2015-01-12 17:09:34 +01:00
issue-637.js Fix invalid removal of left side in && and || compression 2015-02-11 21:08:41 +01:00
issue-747.js Fix mangling of property names which overwrite unmangleable properties 2015-08-05 21:18:39 +02:00
issue-751.js Don't attempt to negate non-boolean AST_Binary 2015-07-22 16:55:55 +03:00
issue-782.js preserve ThisBinding for side_effects 2016-02-17 19:34:01 +01:00
issue-892.js Never mangle arguments and keep them in their scope 2016-01-14 19:45:52 +01:00
issue-913.js Fix hoisting the var in ForIn 2016-01-05 13:56:52 +02:00
issue-926.js Add test for bad template string parsing 2016-01-19 19:22:22 +01:00
issue-973.js preserve ThisBinding for side_effects 2016-02-17 19:34:01 +01:00
issue-976.js Add base54.reset() to compress tests 2016-04-12 20:08:09 +02:00
issue-979.js Take operator || precendence into account for AST_If optimization. 2016-02-21 12:05:02 -05:00
issue-1001.js Fixes to prevent failing tests after merging master 2016-06-20 15:02:09 +02:00
issue-1034.js Add passes compress option. Fix duplicate compress warnings. 2016-04-19 20:05:33 +02:00
issue-1041.js Prevent endless recursion when evaluating self-referencing consts 2016-04-13 15:03:31 +02:00
issue-1043.js Consider yield expressions as having side-effects 2016-04-13 14:39:49 +02:00
issue-1044.js Do not attempt evaluating class expressions 2016-04-19 20:01:26 +02:00
issue-1052.js Add test cases for slightly more esoteric cases 2016-04-26 11:49:55 +02:00
issue-1105.js Don't replace undefined, NaN and Infinity within with scope 2016-06-21 10:53:29 +02:00
join-vars.js Only allow var definitions to be moved into the for-init clause 2016-05-15 21:00:51 +02:00
labels.js more optimizations for some break/continue cases 2012-10-18 15:14:57 +03:00
loops.js Disable loop optimization for parse-only tests 2015-12-18 19:20:56 +01:00
negate-iife.js Simplify iife new fix 2016-05-15 19:12:17 -04:00
new.js Stop dropping args in new expressions 2016-06-12 17:17:17 +02:00
numbers.js Fix: Uglified Number.prototype functions on big numbers 2016-03-14 12:41:06 +01:00
properties.js Enable --screw-ie8 by default. 2016-06-30 21:49:48 +02:00
return_undefined.js return undefined optimization no longer uses return_void_0 option 2015-10-29 08:19:12 +01:00
screw-ie8.js Allow specification beautify options in tests 2015-10-28 20:50:01 +01:00
sequences.js Referencing a global is assumed to have side effects. 2014-09-28 11:18:25 +03:00
string-literal.js Move OctalEscapeSequence to read_escape_char 2016-06-30 21:42:15 +02:00
super.js Uglifyjs already supports super as an implicit global! Just adding a test to indicate that. 2015-08-05 11:49:37 +01:00
switch.js Drop last default: if it's the last branch and empty 2013-03-01 13:12:03 +02:00
template-string.js Template fixes 2016-07-17 00:36:42 +02:00
typeof.js Add tests for typeof evaluation 2013-04-03 22:34:19 -04:00
unicode.js Add ecma5 flag for codegen 2016-06-30 22:47:44 +02:00
yield.js Restrict yield outside generators in strict mode 2016-06-19 21:03:36 +02:00