* Use parseFunctionParams to parse method parameters
* [funct] Set this.state.inGenerator before parsing the function name/params
This allows "yield" inside generator parameters to be actually
parsed as a yield expression
* [funct] Disallow yield in function parameters
* [arrow] "yield" can start an arrow function (e.g. "yield => {}")
* [arrow] Disallow YieldExpressions inside arrow parameters.
* [err msg] Disallow yield as fn name in strict mode using checkReservedWord.
So Babylon throws "yield is a reserved word" instead of
a custom "Binding yield in strict mode"
* [err msg] "X is reserved in strict mode" should have precedence over "X is reserved", since it is more specific.
This was observable if "checkKeywords" is true and the word is both a keyword and a reserved
word in strict mode
* Disallow "yield" as an identifier inside generators
* [tests] Add tests, update wrong esprima tests and enable disabled esprima tests
* [tests] Move uncategorized tests to es2015/yield
* [tests] Update test262 whitelist
* Fix regression introduced by 8c77073
* [tests] Update flow whitelist
* Fix flow errors
187 lines
4.4 KiB
JSON
187 lines
4.4 KiB
JSON
{
|
|
"type": "File",
|
|
"start": 0,
|
|
"end": 39,
|
|
"loc": {
|
|
"start": {
|
|
"line": 1,
|
|
"column": 0
|
|
},
|
|
"end": {
|
|
"line": 1,
|
|
"column": 39
|
|
}
|
|
},
|
|
"program": {
|
|
"type": "Program",
|
|
"start": 0,
|
|
"end": 39,
|
|
"loc": {
|
|
"start": {
|
|
"line": 1,
|
|
"column": 0
|
|
},
|
|
"end": {
|
|
"line": 1,
|
|
"column": 39
|
|
}
|
|
},
|
|
"sourceType": "script",
|
|
"body": [
|
|
{
|
|
"type": "FunctionDeclaration",
|
|
"start": 0,
|
|
"end": 39,
|
|
"loc": {
|
|
"start": {
|
|
"line": 1,
|
|
"column": 0
|
|
},
|
|
"end": {
|
|
"line": 1,
|
|
"column": 39
|
|
}
|
|
},
|
|
"id": {
|
|
"type": "Identifier",
|
|
"start": 10,
|
|
"end": 13,
|
|
"loc": {
|
|
"start": {
|
|
"line": 1,
|
|
"column": 10
|
|
},
|
|
"end": {
|
|
"line": 1,
|
|
"column": 13
|
|
},
|
|
"identifierName": "foo"
|
|
},
|
|
"name": "foo"
|
|
},
|
|
"generator": true,
|
|
"expression": false,
|
|
"async": false,
|
|
"params": [],
|
|
"body": {
|
|
"type": "BlockStatement",
|
|
"start": 16,
|
|
"end": 39,
|
|
"loc": {
|
|
"start": {
|
|
"line": 1,
|
|
"column": 16
|
|
},
|
|
"end": {
|
|
"line": 1,
|
|
"column": 39
|
|
}
|
|
},
|
|
"body": [
|
|
{
|
|
"type": "ExpressionStatement",
|
|
"start": 18,
|
|
"end": 37,
|
|
"loc": {
|
|
"start": {
|
|
"line": 1,
|
|
"column": 18
|
|
},
|
|
"end": {
|
|
"line": 1,
|
|
"column": 37
|
|
}
|
|
},
|
|
"expression": {
|
|
"type": "CallExpression",
|
|
"start": 18,
|
|
"end": 36,
|
|
"loc": {
|
|
"start": {
|
|
"line": 1,
|
|
"column": 18
|
|
},
|
|
"end": {
|
|
"line": 1,
|
|
"column": 36
|
|
}
|
|
},
|
|
"callee": {
|
|
"type": "MemberExpression",
|
|
"start": 18,
|
|
"end": 29,
|
|
"loc": {
|
|
"start": {
|
|
"line": 1,
|
|
"column": 18
|
|
},
|
|
"end": {
|
|
"line": 1,
|
|
"column": 29
|
|
}
|
|
},
|
|
"object": {
|
|
"type": "Identifier",
|
|
"start": 18,
|
|
"end": 25,
|
|
"loc": {
|
|
"start": {
|
|
"line": 1,
|
|
"column": 18
|
|
},
|
|
"end": {
|
|
"line": 1,
|
|
"column": 25
|
|
},
|
|
"identifierName": "console"
|
|
},
|
|
"name": "console"
|
|
},
|
|
"property": {
|
|
"type": "Identifier",
|
|
"start": 26,
|
|
"end": 29,
|
|
"loc": {
|
|
"start": {
|
|
"line": 1,
|
|
"column": 26
|
|
},
|
|
"end": {
|
|
"line": 1,
|
|
"column": 29
|
|
},
|
|
"identifierName": "log"
|
|
},
|
|
"name": "log"
|
|
},
|
|
"computed": false
|
|
},
|
|
"arguments": [
|
|
{
|
|
"type": "YieldExpression",
|
|
"start": 30,
|
|
"end": 35,
|
|
"loc": {
|
|
"start": {
|
|
"line": 1,
|
|
"column": 30
|
|
},
|
|
"end": {
|
|
"line": 1,
|
|
"column": 35
|
|
}
|
|
},
|
|
"delegate": false,
|
|
"argument": null
|
|
}
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"directives": []
|
|
}
|
|
}
|
|
],
|
|
"directives": []
|
|
}
|
|
} |