Update decorators parsing (#7719)

* Update decorators parsing

This commit introduces three changes:
1) Class properties can be decorated
2) Decorators can contain arbitrary expressions, using @(...)
3) The Decorator node type has a new property, "arguments". This
    makes it possible do distinguish @dec() and @(dec()), which have
    different behaviors because @(dec()) is equivalent to @(dec())().

* Rename Decorator#expression to Decorator#callee

* Add test for @dec()()
This commit is contained in:
Nicolò Ribaudo
2018-04-17 23:22:03 +02:00
committed by Brian Ng
parent 81149a5cc9
commit 341bdab90c
72 changed files with 2172 additions and 505 deletions

View File

@@ -584,12 +584,13 @@ Aliases: `Flow`, `FlowPredicate`
### decorator
```javascript
t.decorator(expression)
t.decorator(callee, arguments)
```
See also `t.isDecorator(node, opts)` and `t.assertDecorator(node, opts)`.
- `expression`: `Expression` (required)
- `callee`: `Expression` (required)
- `arguments`: `Array<Expression | SpreadElement>` (default: `null`)
---