Fixes for issues:
- 17110 - added support for -moz-calc or -webkit-calc to previous fix for calc support.
- 18652 - if being run under Mono runtime, don't mistake UNIX-style paths for command-line switches.
- 18659 - added capability to specify JS settings for CSS files that have JS embedded in expressions.
Did a lot of internal house-keeping:
- add DLL support for -pponly switch. Add support for -js:expr, -js:evt, and -js:json to allow easy parsing for expressions, event handlers, and JSON code.
- fixed error-handling code that was hiding some errors and promoting warnings to errors when they shouldn't.
- separate scanner logic and parser logic. Scanner now only scans token and performs pre-processing evaluation, so it only has one code-path whether scanning JS or doing pre-process only. Parser performs the parsing tasks like ignoring whitespace and comments, conditional-compilation, pp-only, etc.
- separate parsing from resolving from analyzing. Variable resolution was being handled partly in the parser, partly in the AST nodes themselves, and partly in the tree analyzing phase. Now parser just parses, and there is a separate resolution phase. This fixes the problem where people don't want to modify the AST, but still need variable resolution.
- beginning ES6 compliance with support for ES6 let- and const-statements, along with their associated block-level scoping rules.
- combine multiple input files, then minify the group, rather than minifying each file independently and combining the results. Error messages still point to proper line/col in the individual input source files.
- remove the PowerShell scripts from the Nuget package that attempted to add the task DLL to the project files.
- properly handle invalid numeric literal sequences; also add support for ES6 binary and octal numeric literals.