Mathias Bynens
575421b3c2
Make readRegexp more tolerant
2015-03-19 14:48:43 +01:00
Marijn Haverbeke
9673146cc1
Verify that property name can be bound to in short-hand object pattern properties
...
Issue #221
2015-03-19 14:05:16 +01:00
Marijn Haverbeke
a45172e044
Unify checkLVal and checkFunctionParam
2015-03-19 13:42:26 +01:00
Marijn Haverbeke
0a755156a8
Ignore backslash-escapes in identifiers in ES6 mode
2015-03-19 13:11:17 +01:00
Marijn Haverbeke
5d5b8eb3c8
Don't crash when converting missing array elements to assignable
...
Closes #220
2015-03-19 12:58:34 +01:00
Marijn Haverbeke
b6e8310848
Require an initalization value when let/var/const-declaring a complex pattern
...
Closes #222
2015-03-19 12:46:36 +01:00
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
19ef4ef69c
Require semicolon after 'import * from ...'
2015-03-17 12:30:12 +01:00
Marijn Haverbeke
57bc9b1b0a
Move parsing of yield into parseMaybeAssign
...
Issue #219
2015-03-12 23:11:33 +01:00
Marijn Haverbeke
16a342082a
Allow trailing commas in array patterns
...
Closes #975
2015-03-12 22:39:00 +01:00
Marijn Haverbeke
811d19ab76
Allow any number of digits when killing \u{} sequences in regexps
2015-03-12 22:26:31 +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
Marijn Haverbeke
ba750b253b
Replace strictSemicolons and allowTrailingCommas with onInsertedSemicolon and onTrailingComma
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
12558821c5
Use an object argument in the TokenType constuctor
2015-03-06 10:37:35 +01:00
Marijn Haverbeke
4e0a7fac71
Linting changes
2015-03-06 10:36:17 +01:00
Marijn Haverbeke
8459481e65
Represent a tokenizer as an instance of the parser
...
This completely changes the interface, and removes most of the complexity
in the old tokenizer interface (jump-to-position was removed, since it is
all kinds of unreliable given the new tokenizer context system).
2015-03-05 17:30:48 +01:00
Marijn Haverbeke
0df2affdfe
Move loose parser to object style
...
Drop dependency on tokenizer interface
2015-03-05 17:22:06 +01:00
Marijn Haverbeke
3365478645
Add a plugin mechanism to allow JSX parser to be a module
...
And export a few more things
2015-03-05 16:00:34 +01:00
Marijn Haverbeke
06f3b3c224
Attach context update algorithm to token types
...
For, theoretically, easier extendability
2015-03-05 15:59:12 +01:00
Marijn Haverbeke
6bd1013f2c
Use uniform object type for node types
...
Speeds things up by about 9% on io.js 1.3
2015-03-05 15:59:12 +01:00
Marijn Haverbeke
141905f9fd
Consume whitespace before, rather than after, reading a token
...
Simplifies several things
2015-03-05 15:59:12 +01:00
Marijn Haverbeke
bc48c02a18
Move the parser state into an object
...
Makes almost everything in acorn.js a method of this object.
Performance is not significantly affected on a modern V8. Makes the
code reentrant and allows us to more easily expose more methods
externally in the future.
On the other hand, the proliferation of `this.` is unfortunate.
2015-03-05 15:59:12 +01:00
Marijn Haverbeke
33307e789a
Update tools/generate-identifier-regex.js
...
So that it can also spit out the astral maps.
2015-03-05 15:55:38 +01: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
Marijn Haverbeke
891d5d07dd
Allow braced \u escapes in identifiers
...
We still can't properly recognize code points as ES6-style
identifier chars.
Issue #214
2015-03-04 15:37:26 +01:00
Marijn Haverbeke
59dc29f3f0
In ES6-mode, don't treat keywords with escaped characters as regular identifiers
...
See https://mathiasbynens.be/notes/javascript-identifiers-es6
2015-03-04 15:29:15 +01:00
Marijn Haverbeke
cbd8aa8f06
Bump version number post-0.12
2015-03-02 11:31:27 +01:00
Marijn Haverbeke
99f1989f72
Mark release 0.12
2015-03-02 11:31:11 +01:00
Ingvar Stepanyan
7264bc0178
Fix found V8 deopt.
...
Increases perf from 230K to 360K lines/sec on std bench on my machine.
2015-02-05 00:02:21 +02:00
Ingvar Stepanyan
c034550215
Disallow line break between arrow function params and =>.
2015-02-04 12:57:18 +02:00
Ingvar Stepanyan
6eb177582d
Fix export default declarations.
...
Closes #184 .
2015-01-27 16:21:41 +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
cdd444eff1
Speed-up reading words, strings and templates.
...
Now identifiers and strings even with escaped chars are read
in optimized way by reading entire chunks delimited by escape
chars (and not bailing to deopt mode on first one).
2015-01-24 12:42:19 +02:00
Ingvar Stepanyan
65d09eac6e
Implement shorthand property assignment in ambiguous contexts.
...
Issue #181 .
2015-01-24 12:40:24 +02:00
Ingvar Stepanyan
f0569147e6
Avoid extra call and arg in parseExpression for single-expression case.
2015-01-23 21:48:33 +02:00
Ingvar Stepanyan
41ad304955
Introduce helpers for contextual keywords.
2015-01-23 21:36:16 +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
e6f1e1027e
Fix dividing function expression.
...
Fixes #204 .
2015-01-23 13:17:03 +02:00
Ingvar Stepanyan
39d752dc6b
Make top-level equal to block statement context.
...
Fixes #203 .
2015-01-23 11:48:39 +02:00
Ingvar Stepanyan
555c7898c8
Remove Token::{startLoc,endLoc} so they don't appear in next release.
2015-01-22 18:21:38 +02:00
Ingvar Stepanyan
caa5da6ce1
Improve spread element parsing (fix allowed contexts and error locations).
2015-01-21 23:51:40 +02:00