diff --git a/AST.md b/AST.md
index 7555620..7e43f87 100644
--- a/AST.md
+++ b/AST.md
@@ -47,12 +47,22 @@ interface JSXEmptyExpression <: Node {
}
```
-Any expression used as attribute value or inside JSX text should is wrapped into expression container:
+The expression container node contains statements with the same grammar as a generator body. Also it has a flag to indicate whether it is an expression. Any expression used as attribute value or inside JSX text should is wrapped into expression container:
```js
interface JSXExpressionContainer <: Node {
type: "JSXExpressionContainer";
- expression: Expression | JSXEmptyExpression;
+ expression: Expression | JSXEmptyExpression | JSXBlockStatement;
+ isExpression: boolean;
+}
+```
+
+From `BlockStatement`, this inherits `body: [ Statement ];`.
+
+```js
+interface JSXBlockStatement <: BlockStatement {
+ type: "JSXStatementList";
+ generator: boolean;
}
```
diff --git a/README.md b/README.md
index 1a67818..71f2815 100644
--- a/README.md
+++ b/README.md
@@ -40,6 +40,7 @@ PrimaryExpression :
- JSXElement
- JSXFragment
+- JSXGeneratorExpressionContainer
__Elements__
@@ -115,9 +116,21 @@ JSXAttributeValue :
- `"` JSXDoubleStringCharactersopt `"`
- `'` JSXSingleStringCharactersopt `'`
- `{` AssignmentExpression `}`
+- JSXGeneratorExpressionContainer
- JSXElement
- JSXFragment
+JSXGeneratorExpressionContainer :
+- `*` `{` JSXGeneratorExpressionopt `}`
+
+JSXGeneratorExpression :
+- ObjectLiteral
+- FunctionExpression
+- ClassExpression
+- GeneratorExpression
+- AsyncFunctionExpression
+- FunctionBody[+Yield, ~Await, ~Return]
+
JSXDoubleStringCharacters :
- JSXDoubleStringCharacter JSXDoubleStringCharactersopt
@@ -145,15 +158,17 @@ JSXChild :
- JSXText
- JSXElement
- JSXFragment
+- JSXGeneratorExpressionContainer
- `{` JSXChildExpressionopt `}`
JSXText :
- JSXTextCharacter JSXTextopt
+- [lookahead ∉ { `{` }] `*` JSXTextopt
JSXTextCharacter :
-- SourceCharacter __but not one of `{`, `<`, `>` or `}`__
+- SourceCharacter __but not one of `*`, `{`, `<`, `>` or `}`__
JSXChildExpression :