Commit Graph

122 Commits

Author SHA1 Message Date
Fábio Santos
59c66fc2e1 Implement the export statement 2016-03-22 11:43:58 +02:00
Fábio Santos
7b3e4d4fb2 Mangling externally imported names by using aliasing 2016-03-22 11:43:58 +02:00
Fábio Santos
07fde71cac importing names in the modules, not just default imports 2016-03-22 11:43:58 +02:00
Fábio Santos
b8adc79433 Importing names from places 2016-03-22 11:43:58 +02:00
Fábio Santos
5f511fe34f Starting out the import statement 2016-03-22 11:43:58 +02:00
viclm
0e230169f8 Fix eager parsing of arrow functions for non-punc tokens 2016-03-22 11:43:58 +02:00
Fábio Santos
c5cf25e077 Fix #931: Create arrow functions in maybe_assign so that they can be used in assignments 2016-03-22 11:43:57 +02:00
Fugiman
de5fb76d94 Remove duplicate error message 2016-03-22 11:43:57 +02:00
Fugiman
e457f7aab5 Fix template string parsing 2016-03-22 11:43:57 +02:00
Fábio Santos
6c87242d63 Default values inside destructurings 2016-03-22 11:42:34 +02:00
Fábio Santos
7527699589 Implement new.target 2016-03-22 11:42:34 +02:00
Fábio Santos
7a2394f417 Separate class expressions from class declarations and their symbols like defuns 2016-03-22 11:42:05 +02:00
Fábio Santos
7ea3ab6b58 static properties 2016-03-22 11:41:01 +02:00
Fábio Santos
a9a38ade1d Starting ES6 classes 2016-03-22 11:41:01 +02:00
Fábio Santos
44ecbdf5f0 Accept keyword names as concise method names 2016-03-22 11:41:01 +02:00
Fábio Santos
24b8e1203e Create a new symbol for methods' names 2016-03-22 11:41:01 +02:00
Fábio Santos
8c05450ce0 start concise methods 2016-03-22 11:41:01 +02:00
Fábio Santos
5e1c89db44 Allow 'of' to be a name. 2016-03-22 11:41:01 +02:00
Fábio Santos
bfeb1afad0 computed properties 2016-03-22 11:41:01 +02:00
Fábio Santos
4ec5d8f644 parse, output the let statement 2016-03-22 11:41:00 +02:00
Fábio Santos
a92a14d171 Remove unused state variable in_parameters, and also remove unreachable code (try_an_object always returned an object!) 2016-03-22 11:41:00 +02:00
Fábio Santos
2a24fa8d2b prefixed template strings, like "String.rawfoo\nbar". 2016-03-22 11:41:00 +02:00
Fábio Santos
e0b78bfa5f Parse and output ES6 template strings. Yikes! 2016-03-22 11:41:00 +02:00
Fábio Santos
cfb1b5d848 Starting destructuring expressions 2016-03-22 11:41:00 +02:00
Fábio Santos
048eac6b29 Tolerate expansions in vardefs, too! 2016-03-22 11:41:00 +02:00
Fábio Santos
a170ad9d0d Destructuring vardef in for..of and for..in 2016-03-22 11:41:00 +02:00
Fábio Santos
a3a4ae5ef8 Add holes in destructuring defs, also make them nestable 2016-03-22 11:40:44 +02:00
Fábio Santos
3b189f86ff Parse and compress destructuring VarDefs 2016-03-22 11:40:44 +02:00
Fábio Santos
ebd0682376 Add new-style octal literals and make the B and the O case insensitive. 2016-03-22 11:40:44 +02:00
Fábio Santos
a4d6ed076a Parse binary number literals 2016-03-22 11:40:44 +02:00
Fábio Santos
0a4270b358 Super! 2016-03-22 11:40:26 +02:00
Fábio Santos
7f825c8244 expand parameters
Conflicts:
	test/compress/harmony.js
2016-03-22 11:40:26 +02:00
Fábio Santos
df95318e8b => with destructuring arguments. Requires a lot of parser changes 2016-03-22 11:40:26 +02:00
Fábio Santos
aa127457d5 Adding arrow functions 2016-03-22 11:40:26 +02:00
Fábio Santos
e4b87bface for...of 2016-03-22 11:39:49 +02:00
Fábio Santos
aaa8f25bf0 Starting destructuring. 2016-03-22 11:39:49 +02:00
Anthony Van de Gejuchte
26641f3fb2 Allow operator names as getters/setters
Fixes #919

Fix provided by @kzc
2016-01-19 19:28:51 +01:00
Anthony Van de Gejuchte
6f3e35bb3f Fix ch that could contain other newline characters 2015-12-27 22:24:37 +01:00
Anthony Van de Gejuchte
174404c0f3 Do not allow newlines in string literals 2015-12-26 15:08:37 +01:00
Anthony Van de Gejuchte
bd99b00413 Semicolon after do...while statement is optional 2015-12-17 23:02:35 +01:00
Mihai Bazon
08623aa6a7 Fix output for "use asm" code from SpiderMonkey AST
(will only work properly if the SM tree contains "raw" properties for
Literal number nodes)
2015-11-12 12:18:25 +02:00
Mihai Bazon
7691bebea5 Rework 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
2015-11-11 22:15:25 +02:00
Mihai Bazon
18d37ac761 Fix parsing invalid input
i.e. `x = 1.xe` — because parseFloat("1.xe") returns 1, this parsed as
`x = 1`.

Ref #857
2015-11-09 13:15:20 +02:00
Richard van Velzen
63d35f8f6d Prevent 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
2015-11-09 11:28:27 +01:00
kzc
4d2f7d83af Fix handling of "use asm" when no command line flags are passed to uglifyjs. SCOPE_IS_NEEDED is unconditionally true now. Refactored floating point literal parsing to be more in keeping with the AST class design. 2015-10-07 13:10:53 -04:00
kzc
593677d2ff Add proper support for "use asm"; blocks. Disable -c optimization within "use asm"; sections and preserve floating point literals in their original form. Non-asm.js sections are optimized as before. Asm.js sections can still be mangled and minified of whitespace. No special command line flags are required. 2015-10-07 10:00:28 +02:00
Anthony Van de Gejuchte
c69294c449 Implement shebang support 2015-10-06 22:35:45 +02:00
Richard van Velzen
fcde6109b0 Fix bad parsing of new new x()() constructs
Fixes #739
2015-08-27 12:29:36 +03:00
Chris Cowan
9854deb626 Re-use the caught exception's error message in the parse error call. 2015-07-29 15:06:52 +02:00
Chris Cowan
d6814050dd Give a good error message if an invalid regular expression is found. 2015-07-29 15:05:59 +02:00