aboutsummaryrefslogtreecommitdiff
path: root/lib/parse.js
AgeCommit message (Expand)Author
2016-07-21Legacy octal integer strict mode fixesAnthony Van de Gejuchte
2016-07-15Fix error style for regex errorsAnthony Van de Gejuchte
2016-06-30Various 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 Anthony Van de Gejuchte
2016-06-30Move 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. Anthony Van de Gejuchte
2016-06-19Normalize error messagesAnthony Van de Gejuchte
2016-06-19Don'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 Anthony Van de Gejuchte
2016-06-12Don't allow with statements in strict modeAnthony Van de Gejuchte
2016-06-12Throw errors in strict mode for octal strings...Adds a directive tracker for the parser/tokenizer to allow parsing depending on directive context. Anthony Van de Gejuchte
2016-06-05Do not allow newlines in regexAnthony Van de Gejuchte
2016-05-04Handle CR line endings in comments....Fixes #1050 kzc
2016-04-16Parse comments without recursion to avoid RangeError....Fixes #993 kzc
2016-03-15Do not produce `let` as a variable name in mangle....Would previously occur in large generated functions with 21,000+ variables. Fixes #986. kzc
2016-01-19Allow operator names as getters/setters...Fixes #919 Fix provided by @kzc Anthony Van de Gejuchte
2015-12-27Fix ch that could contain other newline charactersAnthony Van de Gejuchte
2015-12-26Do not allow newlines in string literalsAnthony Van de Gejuchte
2015-12-17Semicolon after do...while statement is optionalAnthony Van de Gejuchte
2015-11-12Fix output for "use asm" code from SpiderMonkey AST...(will only work properly if the SM tree contains "raw" properties for Literal number nodes) Mihai Bazon
2015-11-11Rework has_directive...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 Mihai Bazon
2015-11-09Fix parsing invalid input...i.e. `x = 1.xe` — because parseFloat("1.xe") returns 1, this parsed as `x = 1`. Ref #857 Mihai Bazon
2015-11-09Prevent ReDoS by not using a regexp to verify floating point numbers...`parseFloat` will return `NaN` for invalid numbers anyway, which is the check used to throw the parse error. Fixes #857 Richard van Velzen
2015-10-07Fix handling of "use asm" when no command line flags are passed to uglifyjs. ...kzc
2015-10-07Add proper support for "use asm"; blocks. Disable -c optimization within "use...kzc
2015-10-06Implement shebang supportAnthony Van de Gejuchte
2015-08-27Fix bad parsing of `new new x()()` constructs...Fixes #739 Richard van Velzen
2015-07-29Re-use the caught exception's error message in the parse error call.Chris Cowan
2015-07-29Give a good error message if an invalid regular expression is found.Chris Cowan
2015-05-20Treat \uFEFF as whitespace....Fix #714 Mihai Bazon
2015-05-05Only drop the BOM when it's the first character....Close #704 Mihai Bazon
2015-04-23Fix parsing strings with literal DOS newlines...(should not set newline_before) Fix #693 Mihai Bazon
2015-03-18Fix parsing for U+2028 / U+2029...(they should be treated as whitespace) Mihai Bazon
2015-02-11Add filename to the JS_Parse_Error exception....It would be nice to have access to the filename of the file that includes the code that causes a JavaScript error. This is especially handy if uglifying multiple files at once. Only a small change is needed for this to happen as it's already available in the function that throws the error.Edward Casbon
2015-01-27Add option to preserve/enforce string quote style...`-q 0` (default) use single or double quotes such as to minimize the number of bytes (prefers double quotes when both will do); this is the previous behavior. `-q 1` -- always use single quotes `-q 2` -- always use double quotes `-q 3` or just `-q` -- always use the original quotes. Related codegen option: `quote_style`. Close #495 Close #460 Some `yargs` guru please tell me why `uglifyjs --help` doesn't display the help string for `-q` / `--quotes`, and why it doesn't output the expected argument types anymore, like good old `optimist` did. Mihai Bazon
2015-01-20Add unicode digit parsing supportAnthony Van de Gejuchte
2015-01-20Update unicode letterAnthony Van de Gejuchte
2015-01-06Track ending lines/columns; fix end locations in Mozilla AST.Ingvar Stepanyan
2015-01-05Fix handling \r\n...Close #437 Mihai Bazon
2014-10-20Add option to allow return outside of functions....Close #288 Mihai Bazon
2014-04-18Always quote property names that contain non-ASCII characters....Fix #328 Mihai Bazon
2014-01-21Fix end token for conditionals. Close #404Mihai Bazon
2013-12-22Mark `yield` as reserved word. Close #375.Mihai Bazon
2013-10-30Fix parsing setters/getters (allow keywords for name)....The "key" property was always "set" or "get", which didn't make much sense. Now it'll be the actual name of the setter/getter (AST_Node), and the AST_Accessor object itself, which represents the function, won't store any name. Close #319 Mihai Bazon
2013-10-30minorMihai Bazon
2013-10-03Only allow identifier start characters at the beginning of identifiers....Without this fix, the following source: x = {"\u200c": 42}; would incorrectly be converted into a quoteless key. But while \u200c is allowed to be in identifiers, it cannot be at the beginning, as per ES5. (For example, the SockJS client library doesn't work under uglify starting with d9ad3c7c.) David Glasser
2013-09-06Support HTML5 comment syntax (enabled by default!)...See http://javascript.spec.whatwg.org/#comment-syntax https://github.com/mishoo/UglifyJS/issues/503 https://github.com/marijnh/acorn/issues/62 Mihai Bazon
2013-09-02Fix names.Mihai Bazon
2013-09-02Disallow `continue` referring to a non-IterationStatement. Fix #287...Simplifies handling of labels (their definition/references can be easily figured out at parse time, no need to do it in `figure_out_scope`). Mihai Bazon
2013-09-02Better fix for #286Mihai Bazon
2013-09-02Fix parsing `a.case /= 1`...Close #286 Mihai Bazon
2013-09-02Fix parsing regexp after unary-prefix operator...++/x/.y Fix #284 Mihai Bazon
2013-07-15Revert previous patch, it was no good.Mihai Bazon