319 Commits

Author SHA1 Message Date
impinball
29feccf3cd Split up parseStatement()
It was purely interpreted by the V8 engine. Splitting it up allows the
individual pieces to be optimized, so less is interpreted.
2014-06-06 12:40:32 +02:00
Marijn Haverbeke
55b507b715 Note partial es6 support in docs 2014-06-06 12:11:20 +02:00
Artem Govorov
1e5bfc2c55 ecma 6 partial support: let and const 2014-06-06 12:10:09 +02:00
Marijn Haverbeke
7f0f07e1f9 Check duplicate argument names for rest params
Issue #79
2014-05-28 23:24:10 +02:00
PlNG
dccd45528a Minor: Remove unused argument from readToken_slash
Possible dev relic.

readToken_slash currently does not have any arguments and does not appear to look at arguments. All existing tests pass after removal of extraneous argument while calling readToken_slash.
2014-05-28 22:27:41 +02:00
Brandon Mills
5552e866f9 Support rest parameters
http://wiki.ecmascript.org/doku.php?id=harmony:rest_parameters
The final parameter to a function is a rest parameter if it is
prefixed by "...". FunctionExpression and FunctionDeclaration
nodes have a new "rest" property that is null if there is no
rest parameter, or contains an Identifer for the parameter.
https://developer.mozilla.org/en-US/docs/SpiderMonkey/Parser_API#Functions

Implemented by adding a new token, `_ellipsis`, which consists of
three dots. Modified the body of parseFunction to allow a single
rest parameter at the end of an argument list. Both the token and
the rest parameter require `options.ecmaVersion` >= 6, otherwise
three dots are tokenized as three dots.
2014-05-08 07:46:47 +02:00
Marijn Haverbeke
4869ccfa55 Prevent loose parser from tripping on invalid regexps
Issue #39
2014-03-25 17:45:58 +01:00
Marijn Haverbeke
e5439847fd Rename remaining *_t constructors to something sane 2014-03-25 17:29:17 +01:00
David Bonnet
7b9a46710d Renamed node_t to Node and exported it
This is to let programmers extend the Node object with utility methods
2014-03-25 17:23:30 +01:00
Marijn Haverbeke
e282ee4c01 Bump version number post-0.5 2014-03-12 17:32:17 +01:00
Marijn Haverbeke
a09455d2bf Mark version 0.5 2014-03-12 17:25:55 +01:00
Marijn Haverbeke
5bd50cce6f Don't complain about reserved words in property name position
Also add forbidReserved: "everywhere" support.

Issue #85
2014-02-14 11:27:48 +01:00
Marijn Haverbeke
716ade22fb Add allowReturnOutsideFunction option
Issue #86
2014-02-14 09:55:05 +01:00
Marijn Haverbeke
d55b6dee4a Update lastEnd in tokenizer interface
The hack for parsing --> depends on it.

Closes #84
2014-01-17 10:09:15 +01:00
Marijn Haverbeke
b1623b10c1 Note non-reentrancy of parser in onComment docs
Closes #80
2013-11-20 10:59:12 +01:00
Marijn Haverbeke
baaa16cee7 Make sure syntax errors in regular expressions raise conforming exceptions
Just letting the error from new RegExp through creates an exception missing the
pos/loc/raisedAt properties.

Issue #82
Issue #81
2013-11-20 10:56:28 +01:00
Marijn Haverbeke
dd456e3ad5 Fix bug causing comments after 'use strict' to be handled twice
Closes #76
2013-11-11 11:25:59 +01:00
Aparajita Fishman
3b05fcf16c docco is wonderful, but it isn't exactly the most concise way of figuring out how to use acorn. Here's a real README.
Fixed a typo in the options comments.
2013-11-04 15:39:22 +01:00
Marijn Haverbeke
356e0be759 Add directSourceFile option 2013-10-15 13:08:56 +02:00
Aparajita Fishman
824eb798f9 More descriptive names for binop token type 2013-10-12 18:04:09 +02:00
Aparajita Fishman
9ff4981ca2 More concise way of slicing off the last character 2013-10-12 18:00:19 +02:00
Marijn Haverbeke
987fb51feb Bump version number post-0.4.0 2013-10-10 10:41:19 +02:00
Marijn Haverbeke
1ed25992a7 Mark release 0.4 2013-10-10 10:40:31 +02:00
Aparajita Fishman
389c9b225b Fixed: tokLineStart and tokCurLine have no meaning if options.locations is false.
Everywhere else (except one place which is a bug) those variables only appear within an `if (options.locations)` block.
2013-10-10 09:59:16 +02:00
Marijn Haverbeke
b7972ad95c Remove invalid of tokLineStart
This is only tracked when locations are on, so it can't be used
unconditionally.

Closes #71
2013-10-10 09:58:23 +02:00
Aparajita Fishman
6fd79e50fb Fixed: skipSpace did not consider 8232 and 8233 as eol, but elsewhere it was.
Both readString and skipLineComment considered 8232/8233 as eol, but skipSpace itself would not increment the line counters if they were found.

Previously 8232/8233 were listed in nonASCIIwhitespace, but since that is only used within skipSpace and those values are checked separately, they could be removed from nonASCIIwhitespace.
2013-10-08 16:33:40 +02:00
Marijn Haverbeke
22c3161b6e Fix wrong end position for VariableDeclaration nodes
It should include the semicolon.

Closes #67
2013-10-02 20:39:51 +02:00
Aparajita Fishman
b7417cec8c Just want to be a little clearer what is happening to the node var declared earlier. 2013-10-01 17:33:01 +02:00
Marijn Haverbeke
83bfd6c536 Different approach to working around html comment issue 2013-09-11 12:23:25 +02:00
Marijn Haverbeke
36d001a4be Work around docco leaving in a <!-- comment start
Closes #66
2013-09-09 22:10:24 +02:00
Martin Carlberg
ba8da57d16 Use correct paragraph separator for newline
0x2089(8329) is Subscript nine
0x2028(8232) is Line separator
0x2029(8233) is Paragraph separator
2013-09-09 11:35:33 +02:00
Marijn Haverbeke
b998d5e22d Add support for bizarro <!-- and --> behavior
Issue #62
2013-09-06 10:52:04 +02:00
Aparajita Fishman
411b29791b Formatting
Just being consistent.

In every other place where a between comparison is done, the lower limit is on the left. It's a whole lot easier to see it's a between comparison when the limits are in order.
2013-09-05 10:33:03 +02:00
Marijn Haverbeke
c152be4a2e Improve error message for ++/re/
Closes #54
2013-08-28 16:22:30 +02:00
Marijn Haverbeke
6659f7a033 Fix special case to handle regexps that start with =
Closes #55
2013-08-28 10:35:21 +02:00
Marijn Haverbeke
6113324cd2 Fix bug with parsing slash after operator-keyword property
Closes #53
2013-08-25 15:01:20 +02:00
Jürg Lehni
097b4162da Pass on 'this' as root scope, for better inclusion of Acorn inside Paper.js
Use same approach as Esprima.
2013-07-26 08:59:07 +02:00
Jiaxing Wang
a84e21e0ff Line number start from 1 after getToken.jumpTo() 2013-07-11 12:28:58 +02:00
Jiaxing Wang
16b54e0698 parseMaybeUnary() doesn't need parameter @noIn 2013-07-11 08:20:05 +02:00
Jiaxing Wang
567f3ca32a Remove redundant if conditions that are tested above 2013-07-11 08:20:04 +02:00
Marijn Haverbeke
328d0e514c Linting 2013-07-08 09:07:10 +02:00
Marijn Haverbeke
d3b9eb177a Always attach a guardedHandlers property to TryStatements
Closes #48
2013-07-08 09:03:23 +02:00
Marijn Haverbeke
67c48229b9 Bump version number post-0.3.1 2013-06-11 12:44:35 +02:00
Marijn Haverbeke
d2673d465a Release 0.3.1 to fix release-making-script screwup in 0.3.0 2013-06-11 12:43:56 +02:00
Marijn Haverbeke
7e248c7e3b Mark release 0.3.0 2013-06-11 12:41:03 +02:00
Marijn Haverbeke
3ca3aa5a25 Run a lint pass, clean up lots of small issues 2013-06-10 16:52:22 +02:00
Marijn Haverbeke
6fe123947b Prefix keywords with underscore in tokTypes object 2013-06-10 15:47:29 +02:00
Marijn Haverbeke
adf16e33c0 Don't assume options object has a hasOwnProperty method
Closes #43
2013-06-08 20:36:44 +02:00
Marijn Haverbeke
38f0e80547 Include diacritical combining marks in identifier character set
Closes marijn/tern#157
2013-05-21 09:07:50 +02:00
Marijn Haverbeke
4d8eeabf52 In browser loader, refer to global object as 'this', not 'self'
Closes #41
2013-05-08 15:16:06 +02:00