80 Commits

Author SHA1 Message Date
Marijn Haverbeke
a75a685610 Add a startsExpr property to token types, use it to properly parse yield
Issue #219
2015-03-19 12:34:41 +01:00
Ingvar Stepanyan
0473c368e6 [es6][estree] Add support for sourceType: script|module modes.
+ Fix list of keywords and reserved words in ES6.
2015-03-18 13:42:49 +02:00
Ingvar Stepanyan
024a98431d [estree] Add SuperExpression.
(we're almost there)
2015-03-17 23:01:42 +02:00
Ingvar Stepanyan
876e774bfe [estree] Align method kinds.
[loose] Split parseObj and parseClass.
2015-03-17 22:36:34 +02:00
Marijn Haverbeke
16a342082a Allow trailing commas in array patterns
Closes #975
2015-03-12 22:39:00 +01:00
Marijn Haverbeke
4735ef53ef Replace the forbidReserved option with an allowReserved option
For consistency with similar options
2015-03-12 22:02:41 +01:00
Ingvar Stepanyan
34050d3917 Support for for (const ...).
Fixes #213.

Also changes API to pass token type to `parseVar` to reduce string comparison ops.
2015-03-10 11:36:15 +02:00
Ingvar Stepanyan
ff60ee4fdb [estree] Align export ... representations. 2015-03-10 10:37:00 +02:00
Ingvar Stepanyan
722bc65e79 [estree] Align Import specifiers. 2015-03-10 02:27:24 +02:00
Marijn Haverbeke
d76ea4b3be Make the tokenizer aware of multi-byte characters in ES6 mode
Add a data structure to recognize astral identifier chars. Parse whole
code points when looking for identifiers.

Issue #215
2015-03-05 15:55:38 +01:00
Ingvar Stepanyan
6eb177582d Fix export default declarations.
Closes #184.
2015-01-27 16:21:41 +02:00
Ingvar Stepanyan
e4a97ab877 Finalized destructuring support in loose parser; fixed startNodeAt. 2015-01-27 15:53:16 +02:00
Ingvar Stepanyan
6660a21b79 Disallow MemberExpression in bindings; clarify function namings. 2015-01-27 15:23:09 +02:00
Ingvar Stepanyan
3d5964ceed Fix locations for AssignmentPatterns. 2015-01-27 15:10:25 +02:00
Ingvar Stepanyan
5d96bbd781 Simplify & fix rest argument validity checks. 2015-01-24 13:38:14 +02:00
Ingvar Stepanyan
65d09eac6e Implement shorthand property assignment in ambiguous contexts.
Issue #181.
2015-01-24 12:40:24 +02:00
Ingvar Stepanyan
917de714b1 Switch from Function.{rest,defaults} to AssignmentPattern and RestElement.
Closes #182.
2015-01-23 15:29:37 +02:00
Ingvar Stepanyan
38609ae26d Closes #205. 2015-01-23 14:14:02 +02:00
Ingvar Stepanyan
cb94a0851c Add regex comparison to test driver. 2015-01-23 13:50:01 +02:00
Ingvar Stepanyan
caa5da6ce1 Improve spread element parsing (fix allowed contexts and error locations). 2015-01-21 23:51:40 +02:00
Marijn Haverbeke
94b5efcd3e Disallow declaration statements in block-less context
Closes #202
2015-01-20 12:55:21 +01:00
Sebastian McKenzie
9f7cb55264 Add stray semicolons as class elements 2015-01-20 11:56:33 +01:00
Marijn Haverbeke
dac747dfa9 Add a test for issue #201 2015-01-17 22:26:34 +01:00
Ingvar Stepanyan
6dee98d1b9 Adapt ES6 template handling to new tokenizer.
Avoid need for:
* extra `templates` array in favor of new `tokContext`;
* special location handling for first & last template elements;
* separate `_templateContinued` token in favor of same `_template`.

Adds:
* token types for backQuote and dollarBraceL instead of skipping them
so they can be handled (i.e. highlighted differently).
2015-01-17 22:21:22 +01:00
Ingvar Stepanyan
d34aea63ab Update tests. 2015-01-14 12:36:25 +02:00
Ingvar Stepanyan
d1f95ece42 Revert "Disallow parentheses in lvalue except as in computed keys or default values."
This reverts commit 85087f2a0951f60ca035ca6d785e4bab6d96d8f7.
Fixes #193.
2015-01-12 20:31:38 +02:00
Ingvar Stepanyan
bc2e01aa03 Allow static as method name in class (fixes #192).
Add uncommitted tests for #191.
2015-01-09 15:31:01 +02:00
Ingvar Stepanyan
85087f2a09 Disallow parentheses in lvalue except as in computed keys or default values. 2015-01-08 23:00:22 +02:00
Ingvar Stepanyan
4d4a76588c Parse assignment patterns in-place in certain contexts.
* Parsing assignables without extra transform step when possible (speed-up).
* Added support for shorthand defaults in such certain contexts (issue #181).
2015-01-08 20:19:48 +02:00
Marijn Haverbeke
045d8c02f5 Revert "Require superclass expressions to be lvals"
This reverts commit 0b59fc198baf2cd970091ee96fe5dd0f90034692.

Issue #187
2015-01-04 22:28:16 +01:00
Ingvar Stepanyan
431a44bc74 Add support for destructuring defaults (not for shorthand props yet).
Related to #181.
2015-01-04 12:15:24 +02:00
Marijn Haverbeke
0b59fc198b Require superclass expressions to be lvals
And remove a test that violates this.

Closes #185
2014-12-30 12:54:25 +01:00
Ingvar Stepanyan
0084ac14ae Fixed #186. 2014-12-30 13:42:37 +02:00
Marijn Haverbeke
6915519498 Give TemplateElements a narrower range
Issue #169
2014-12-11 17:44:45 +01:00
Marijn Haverbeke
c989857aa5 Add allowImportExportEverywhere option
Closes #174
2014-12-11 14:48:03 +01:00
Marijn Haverbeke
2cb3dbcb41 Change token structure of template literals
Fix various template parsing issues, makes tokenizer useable from outside
the parser.

Closes #169
Closes #173
2014-12-11 14:20:01 +01:00
Sebastian McKenzie
53d98f1175 Make semicolon optional in do-while in >=ES6 2014-12-10 13:14:25 +01:00
Ingvar Stepanyan
96bc831306 Fix #173. 2014-12-07 19:55:31 +02:00
Ingvar Stepanyan
4496ca411a Fixed import declaration for default+batch case.
Also removed deprecated `kind` property.
Fixes #161.
2014-11-19 14:05:34 +01:00
Rich Harris
f48a921e24 allow export { default } from "foo" 2014-11-12 17:42:55 +01:00
Ingvar Stepanyan
d4565fed53 Loose: ES6 import, export.
Removed "kind" from tests for ES6 import/export as it's
left only for backward compatibility.
2014-11-12 16:19:15 +01:00
Ingvar Stepanyan
1589a959fa Loose: yield support. 2014-11-12 16:19:15 +01:00
Sebastian McKenzie
a18f3d1003 Add support for computed static mutator class methods 2014-11-04 11:08:36 +01:00
Marijn Haverbeke
8a799c6077 Remove redundant range info from tests 2014-10-27 10:59:16 +01:00
Ingvar Stepanyan
f26b656ea5 Remove property name clash check in ES6 as per Draft Rev 26.
See https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-06/jun-6.md#conclusionresolution-3 for details.

Conflicts:
	test/tests-harmony.js
2014-10-27 10:56:06 +01:00
Sebastian McKenzie
f48503cd31 add unicode flag support to regex 2014-10-27 10:51:23 +01:00
Ingvar Stepanyan
fd79ac5879 Move comprehension support under ecmaVersion: 7 as per spec. 2014-10-27 10:34:53 +01:00
Max Schaefer
d525c45644 Add option for representing parenthesized expressions in the AST. 2014-10-13 12:19:39 +02:00
Max Schaefer
e9c7209f8b Guard against missing elements in array patterns when checking function parameters. 2014-10-13 12:17:29 +02:00
Marijn Haverbeke
3603f7d0b1 Adjust start positions of parenthesized expressions to not include parentheses
Issue #136
2014-10-08 11:52:49 +02:00