mirror of https://github.com/tc39/test262.git
Generate tests
This commit is contained in:
parent
c509173032
commit
a1f7142b89
|
@ -0,0 +1,44 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/array-literal-with-item.case
|
||||
// - src/statementList/default/block.template
|
||||
/*---
|
||||
description: Array Literal with items (Valid syntax of StatementList starting with a BlockStatement)
|
||||
esid: prod-StatementList
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
|
||||
BlockStatement:
|
||||
Block
|
||||
|
||||
Block:
|
||||
{ StatementList_opt }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
ArrayLiteral[Yield, Await]:
|
||||
[ Elision_opt ]
|
||||
[ ElementList ]
|
||||
[ ElementList , Elision_opt ]
|
||||
---*/
|
||||
|
||||
|
||||
{}[42];;
|
|
@ -0,0 +1,44 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/array-literal.case
|
||||
// - src/statementList/default/block.template
|
||||
/*---
|
||||
description: Array Literal (Valid syntax of StatementList starting with a BlockStatement)
|
||||
esid: prod-StatementList
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
|
||||
BlockStatement:
|
||||
Block
|
||||
|
||||
Block:
|
||||
{ StatementList_opt }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
ArrayLiteral[Yield, Await]:
|
||||
[ Elision_opt ]
|
||||
[ ElementList ]
|
||||
[ ElementList , Elision_opt ]
|
||||
---*/
|
||||
|
||||
|
||||
{}[];;
|
|
@ -0,0 +1,55 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/arrow-function-assignment-expr.case
|
||||
// - src/statementList/default/block.template
|
||||
/*---
|
||||
description: Arrow Function with an AssignmentExpression (Valid syntax of StatementList starting with a BlockStatement)
|
||||
esid: prod-StatementList
|
||||
features: [arrow-function]
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
|
||||
BlockStatement:
|
||||
Block
|
||||
|
||||
Block:
|
||||
{ StatementList_opt }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
...
|
||||
|
||||
AssignmentExpression:
|
||||
ConditionalExpression
|
||||
[+Yield]YieldExpression
|
||||
ArrowFunction
|
||||
|
||||
ArrowFunction:
|
||||
ArrowParameters [no LineTerminator here] => ConciseBody
|
||||
|
||||
ConciseBody:
|
||||
[lookahead ≠ {] AssignmentExpression
|
||||
{ FunctionBody }
|
||||
|
||||
---*/
|
||||
|
||||
|
||||
{}() => 42;;
|
|
@ -0,0 +1,55 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/arrow-function-functionbody.case
|
||||
// - src/statementList/default/block.template
|
||||
/*---
|
||||
description: Arrow Function with a Function Body (Valid syntax of StatementList starting with a BlockStatement)
|
||||
esid: prod-StatementList
|
||||
features: [arrow-function]
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
|
||||
BlockStatement:
|
||||
Block
|
||||
|
||||
Block:
|
||||
{ StatementList_opt }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
...
|
||||
|
||||
AssignmentExpression:
|
||||
ConditionalExpression
|
||||
[+Yield]YieldExpression
|
||||
ArrowFunction
|
||||
|
||||
ArrowFunction:
|
||||
ArrowParameters [no LineTerminator here] => ConciseBody
|
||||
|
||||
ConciseBody:
|
||||
[lookahead ≠ {] AssignmentExpression
|
||||
{ FunctionBody }
|
||||
|
||||
---*/
|
||||
|
||||
|
||||
{}() => { return 42; };;
|
|
@ -0,0 +1,40 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/block-with-labels.case
|
||||
// - src/statementList/default/block.template
|
||||
/*---
|
||||
description: Block with a label (Valid syntax of StatementList starting with a BlockStatement)
|
||||
esid: prod-StatementList
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
|
||||
BlockStatement:
|
||||
Block
|
||||
|
||||
Block:
|
||||
{ StatementList_opt }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
// lookahead here prevents capturing an Object literal
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
---*/
|
||||
|
||||
|
||||
{}{x: 42};;
|
|
@ -0,0 +1,40 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/block.case
|
||||
// - src/statementList/default/block.template
|
||||
/*---
|
||||
description: Block (Valid syntax of StatementList starting with a BlockStatement)
|
||||
esid: prod-StatementList
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
|
||||
BlockStatement:
|
||||
Block
|
||||
|
||||
Block:
|
||||
{ StatementList_opt }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
// lookahead here prevents capturing an Object literal
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
---*/
|
||||
|
||||
|
||||
{}{};
|
|
@ -0,0 +1,57 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/expr-arrow-function-boolean-literal.case
|
||||
// - src/statementList/default/block.template
|
||||
/*---
|
||||
description: Expression with an Arrow Function and Boolean literal (Valid syntax of StatementList starting with a BlockStatement)
|
||||
esid: prod-StatementList
|
||||
features: [arrow-function]
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
|
||||
BlockStatement:
|
||||
Block
|
||||
|
||||
Block:
|
||||
{ StatementList_opt }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
Expression:
|
||||
AssignmentExpression
|
||||
Expression , AssignmentExpression
|
||||
|
||||
AssignmentExpression:
|
||||
ConditionalExpression
|
||||
[+Yield]YieldExpression
|
||||
ArrowFunction
|
||||
|
||||
ArrowFunction:
|
||||
ArrowParameters [no LineTerminator here] => ConciseBody
|
||||
|
||||
ConciseBody:
|
||||
[lookahead ≠ {] AssignmentExpression
|
||||
{ FunctionBody }
|
||||
|
||||
---*/
|
||||
|
||||
|
||||
{}() => 1, 42;;
|
|
@ -0,0 +1,38 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/let-declaration.case
|
||||
// - src/statementList/default/block.template
|
||||
/*---
|
||||
description: LexicalDeclaration using Let (Valid syntax of StatementList starting with a BlockStatement)
|
||||
esid: prod-StatementList
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
|
||||
BlockStatement:
|
||||
Block
|
||||
|
||||
Block:
|
||||
{ StatementList_opt }
|
||||
|
||||
Declaration:
|
||||
LexicalDeclaration
|
||||
|
||||
LexicalDeclaration:
|
||||
LetOrConst BindingList ;
|
||||
|
||||
BindingList:
|
||||
LexicalBinding
|
||||
BindingList , LexicalBinding
|
||||
---*/
|
||||
|
||||
|
||||
{}let a, b = 42, c;b;;
|
|
@ -0,0 +1,42 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/regexp-literal-flags.case
|
||||
// - src/statementList/default/block.template
|
||||
/*---
|
||||
description: Regular Expression Literal with Flags (Valid syntax of StatementList starting with a BlockStatement)
|
||||
esid: prod-StatementList
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
|
||||
BlockStatement:
|
||||
Block
|
||||
|
||||
Block:
|
||||
{ StatementList_opt }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement[Yield, Await]:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
RegularExpressionLiteral ::
|
||||
/ RegularExpressionBody / RegularExpressionFlags
|
||||
---*/
|
||||
|
||||
|
||||
{}/1/g;;
|
|
@ -0,0 +1,42 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/regexp-literal.case
|
||||
// - src/statementList/default/block.template
|
||||
/*---
|
||||
description: Regular Expression Literal (Valid syntax of StatementList starting with a BlockStatement)
|
||||
esid: prod-StatementList
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
|
||||
BlockStatement:
|
||||
Block
|
||||
|
||||
Block:
|
||||
{ StatementList_opt }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement[Yield, Await]:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
RegularExpressionLiteral ::
|
||||
/ RegularExpressionBody / RegularExpressionFlags
|
||||
---*/
|
||||
|
||||
|
||||
{}/1/;;
|
|
@ -0,0 +1,45 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/array-literal-with-item.case
|
||||
// - src/statementList/default/block-with-statement.template
|
||||
/*---
|
||||
description: Array Literal with items (Valid syntax of StatementList starting with a BlockStatement)
|
||||
esid: prod-StatementList
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
|
||||
BlockStatement:
|
||||
Block
|
||||
|
||||
Block:
|
||||
{ StatementList_opt }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
ArrayLiteral[Yield, Await]:
|
||||
[ Elision_opt ]
|
||||
[ ElementList ]
|
||||
[ ElementList , Elision_opt ]
|
||||
---*/
|
||||
|
||||
|
||||
// length is a label!
|
||||
{length: 3000}[42];;
|
|
@ -0,0 +1,45 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/array-literal.case
|
||||
// - src/statementList/default/block-with-statement.template
|
||||
/*---
|
||||
description: Array Literal (Valid syntax of StatementList starting with a BlockStatement)
|
||||
esid: prod-StatementList
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
|
||||
BlockStatement:
|
||||
Block
|
||||
|
||||
Block:
|
||||
{ StatementList_opt }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
ArrayLiteral[Yield, Await]:
|
||||
[ Elision_opt ]
|
||||
[ ElementList ]
|
||||
[ ElementList , Elision_opt ]
|
||||
---*/
|
||||
|
||||
|
||||
// length is a label!
|
||||
{length: 3000}[];;
|
|
@ -0,0 +1,56 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/arrow-function-assignment-expr.case
|
||||
// - src/statementList/default/block-with-statement.template
|
||||
/*---
|
||||
description: Arrow Function with an AssignmentExpression (Valid syntax of StatementList starting with a BlockStatement)
|
||||
esid: prod-StatementList
|
||||
features: [arrow-function]
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
|
||||
BlockStatement:
|
||||
Block
|
||||
|
||||
Block:
|
||||
{ StatementList_opt }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
...
|
||||
|
||||
AssignmentExpression:
|
||||
ConditionalExpression
|
||||
[+Yield]YieldExpression
|
||||
ArrowFunction
|
||||
|
||||
ArrowFunction:
|
||||
ArrowParameters [no LineTerminator here] => ConciseBody
|
||||
|
||||
ConciseBody:
|
||||
[lookahead ≠ {] AssignmentExpression
|
||||
{ FunctionBody }
|
||||
|
||||
---*/
|
||||
|
||||
|
||||
// length is a label!
|
||||
{length: 3000}() => 42;;
|
|
@ -0,0 +1,56 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/arrow-function-functionbody.case
|
||||
// - src/statementList/default/block-with-statement.template
|
||||
/*---
|
||||
description: Arrow Function with a Function Body (Valid syntax of StatementList starting with a BlockStatement)
|
||||
esid: prod-StatementList
|
||||
features: [arrow-function]
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
|
||||
BlockStatement:
|
||||
Block
|
||||
|
||||
Block:
|
||||
{ StatementList_opt }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
...
|
||||
|
||||
AssignmentExpression:
|
||||
ConditionalExpression
|
||||
[+Yield]YieldExpression
|
||||
ArrowFunction
|
||||
|
||||
ArrowFunction:
|
||||
ArrowParameters [no LineTerminator here] => ConciseBody
|
||||
|
||||
ConciseBody:
|
||||
[lookahead ≠ {] AssignmentExpression
|
||||
{ FunctionBody }
|
||||
|
||||
---*/
|
||||
|
||||
|
||||
// length is a label!
|
||||
{length: 3000}() => { return 42; };;
|
|
@ -0,0 +1,41 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/block-with-labels.case
|
||||
// - src/statementList/default/block-with-statement.template
|
||||
/*---
|
||||
description: Block with a label (Valid syntax of StatementList starting with a BlockStatement)
|
||||
esid: prod-StatementList
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
|
||||
BlockStatement:
|
||||
Block
|
||||
|
||||
Block:
|
||||
{ StatementList_opt }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
// lookahead here prevents capturing an Object literal
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
---*/
|
||||
|
||||
|
||||
// length is a label!
|
||||
{length: 3000}{x: 42};;
|
|
@ -0,0 +1,41 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/block.case
|
||||
// - src/statementList/default/block-with-statement.template
|
||||
/*---
|
||||
description: Block (Valid syntax of StatementList starting with a BlockStatement)
|
||||
esid: prod-StatementList
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
|
||||
BlockStatement:
|
||||
Block
|
||||
|
||||
Block:
|
||||
{ StatementList_opt }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
// lookahead here prevents capturing an Object literal
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
---*/
|
||||
|
||||
|
||||
// length is a label!
|
||||
{length: 3000}{};
|
|
@ -0,0 +1,58 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/expr-arrow-function-boolean-literal.case
|
||||
// - src/statementList/default/block-with-statement.template
|
||||
/*---
|
||||
description: Expression with an Arrow Function and Boolean literal (Valid syntax of StatementList starting with a BlockStatement)
|
||||
esid: prod-StatementList
|
||||
features: [arrow-function]
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
|
||||
BlockStatement:
|
||||
Block
|
||||
|
||||
Block:
|
||||
{ StatementList_opt }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
Expression:
|
||||
AssignmentExpression
|
||||
Expression , AssignmentExpression
|
||||
|
||||
AssignmentExpression:
|
||||
ConditionalExpression
|
||||
[+Yield]YieldExpression
|
||||
ArrowFunction
|
||||
|
||||
ArrowFunction:
|
||||
ArrowParameters [no LineTerminator here] => ConciseBody
|
||||
|
||||
ConciseBody:
|
||||
[lookahead ≠ {] AssignmentExpression
|
||||
{ FunctionBody }
|
||||
|
||||
---*/
|
||||
|
||||
|
||||
// length is a label!
|
||||
{length: 3000}() => 1, 42;;
|
|
@ -0,0 +1,39 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/let-declaration.case
|
||||
// - src/statementList/default/block-with-statement.template
|
||||
/*---
|
||||
description: LexicalDeclaration using Let (Valid syntax of StatementList starting with a BlockStatement)
|
||||
esid: prod-StatementList
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
|
||||
BlockStatement:
|
||||
Block
|
||||
|
||||
Block:
|
||||
{ StatementList_opt }
|
||||
|
||||
Declaration:
|
||||
LexicalDeclaration
|
||||
|
||||
LexicalDeclaration:
|
||||
LetOrConst BindingList ;
|
||||
|
||||
BindingList:
|
||||
LexicalBinding
|
||||
BindingList , LexicalBinding
|
||||
---*/
|
||||
|
||||
|
||||
// length is a label!
|
||||
{length: 3000}let a, b = 42, c;b;;
|
|
@ -0,0 +1,43 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/regexp-literal-flags.case
|
||||
// - src/statementList/default/block-with-statement.template
|
||||
/*---
|
||||
description: Regular Expression Literal with Flags (Valid syntax of StatementList starting with a BlockStatement)
|
||||
esid: prod-StatementList
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
|
||||
BlockStatement:
|
||||
Block
|
||||
|
||||
Block:
|
||||
{ StatementList_opt }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement[Yield, Await]:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
RegularExpressionLiteral ::
|
||||
/ RegularExpressionBody / RegularExpressionFlags
|
||||
---*/
|
||||
|
||||
|
||||
// length is a label!
|
||||
{length: 3000}/1/g;;
|
|
@ -0,0 +1,43 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/regexp-literal.case
|
||||
// - src/statementList/default/block-with-statement.template
|
||||
/*---
|
||||
description: Regular Expression Literal (Valid syntax of StatementList starting with a BlockStatement)
|
||||
esid: prod-StatementList
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
|
||||
BlockStatement:
|
||||
Block
|
||||
|
||||
Block:
|
||||
{ StatementList_opt }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement[Yield, Await]:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
RegularExpressionLiteral ::
|
||||
/ RegularExpressionBody / RegularExpressionFlags
|
||||
---*/
|
||||
|
||||
|
||||
// length is a label!
|
||||
{length: 3000}/1/;;
|
|
@ -0,0 +1,40 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/array-literal-with-item.case
|
||||
// - src/statementList/default/class-declaration.template
|
||||
/*---
|
||||
description: Array Literal with items (Valid syntax of StatementList starting with a Class Declaration)
|
||||
esid: prod-StatementList
|
||||
features: [class]
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Declaration:
|
||||
ClassDeclaration
|
||||
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
ArrayLiteral[Yield, Await]:
|
||||
[ Elision_opt ]
|
||||
[ ElementList ]
|
||||
[ ElementList , Elision_opt ]
|
||||
---*/
|
||||
|
||||
|
||||
class C {}[42];;
|
|
@ -0,0 +1,40 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/array-literal.case
|
||||
// - src/statementList/default/class-declaration.template
|
||||
/*---
|
||||
description: Array Literal (Valid syntax of StatementList starting with a Class Declaration)
|
||||
esid: prod-StatementList
|
||||
features: [class]
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Declaration:
|
||||
ClassDeclaration
|
||||
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
ArrayLiteral[Yield, Await]:
|
||||
[ Elision_opt ]
|
||||
[ ElementList ]
|
||||
[ ElementList , Elision_opt ]
|
||||
---*/
|
||||
|
||||
|
||||
class C {}[];;
|
|
@ -0,0 +1,50 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/arrow-function-assignment-expr.case
|
||||
// - src/statementList/default/class-declaration.template
|
||||
/*---
|
||||
description: Arrow Function with an AssignmentExpression (Valid syntax of StatementList starting with a Class Declaration)
|
||||
esid: prod-StatementList
|
||||
features: [arrow-function, class]
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Declaration:
|
||||
ClassDeclaration
|
||||
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
...
|
||||
|
||||
AssignmentExpression:
|
||||
ConditionalExpression
|
||||
[+Yield]YieldExpression
|
||||
ArrowFunction
|
||||
|
||||
ArrowFunction:
|
||||
ArrowParameters [no LineTerminator here] => ConciseBody
|
||||
|
||||
ConciseBody:
|
||||
[lookahead ≠ {] AssignmentExpression
|
||||
{ FunctionBody }
|
||||
|
||||
---*/
|
||||
|
||||
|
||||
class C {}() => 42;;
|
|
@ -0,0 +1,50 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/arrow-function-functionbody.case
|
||||
// - src/statementList/default/class-declaration.template
|
||||
/*---
|
||||
description: Arrow Function with a Function Body (Valid syntax of StatementList starting with a Class Declaration)
|
||||
esid: prod-StatementList
|
||||
features: [arrow-function, class]
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Declaration:
|
||||
ClassDeclaration
|
||||
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
...
|
||||
|
||||
AssignmentExpression:
|
||||
ConditionalExpression
|
||||
[+Yield]YieldExpression
|
||||
ArrowFunction
|
||||
|
||||
ArrowFunction:
|
||||
ArrowParameters [no LineTerminator here] => ConciseBody
|
||||
|
||||
ConciseBody:
|
||||
[lookahead ≠ {] AssignmentExpression
|
||||
{ FunctionBody }
|
||||
|
||||
---*/
|
||||
|
||||
|
||||
class C {}() => { return 42; };;
|
|
@ -0,0 +1,36 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/block-with-labels.case
|
||||
// - src/statementList/default/class-declaration.template
|
||||
/*---
|
||||
description: Block with a label (Valid syntax of StatementList starting with a Class Declaration)
|
||||
esid: prod-StatementList
|
||||
features: [class]
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Declaration:
|
||||
ClassDeclaration
|
||||
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
// lookahead here prevents capturing an Object literal
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
---*/
|
||||
|
||||
|
||||
class C {}{x: 42};;
|
|
@ -0,0 +1,36 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/block.case
|
||||
// - src/statementList/default/class-declaration.template
|
||||
/*---
|
||||
description: Block (Valid syntax of StatementList starting with a Class Declaration)
|
||||
esid: prod-StatementList
|
||||
features: [class]
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Declaration:
|
||||
ClassDeclaration
|
||||
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
// lookahead here prevents capturing an Object literal
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
---*/
|
||||
|
||||
|
||||
class C {}{};
|
|
@ -0,0 +1,52 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/expr-arrow-function-boolean-literal.case
|
||||
// - src/statementList/default/class-declaration.template
|
||||
/*---
|
||||
description: Expression with an Arrow Function and Boolean literal (Valid syntax of StatementList starting with a Class Declaration)
|
||||
esid: prod-StatementList
|
||||
features: [arrow-function, class]
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Declaration:
|
||||
ClassDeclaration
|
||||
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
Expression:
|
||||
AssignmentExpression
|
||||
Expression , AssignmentExpression
|
||||
|
||||
AssignmentExpression:
|
||||
ConditionalExpression
|
||||
[+Yield]YieldExpression
|
||||
ArrowFunction
|
||||
|
||||
ArrowFunction:
|
||||
ArrowParameters [no LineTerminator here] => ConciseBody
|
||||
|
||||
ConciseBody:
|
||||
[lookahead ≠ {] AssignmentExpression
|
||||
{ FunctionBody }
|
||||
|
||||
---*/
|
||||
|
||||
|
||||
class C {}() => 1, 42;;
|
|
@ -0,0 +1,34 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/let-declaration.case
|
||||
// - src/statementList/default/class-declaration.template
|
||||
/*---
|
||||
description: LexicalDeclaration using Let (Valid syntax of StatementList starting with a Class Declaration)
|
||||
esid: prod-StatementList
|
||||
features: [class]
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Declaration:
|
||||
ClassDeclaration
|
||||
|
||||
|
||||
Declaration:
|
||||
LexicalDeclaration
|
||||
|
||||
LexicalDeclaration:
|
||||
LetOrConst BindingList ;
|
||||
|
||||
BindingList:
|
||||
LexicalBinding
|
||||
BindingList , LexicalBinding
|
||||
---*/
|
||||
|
||||
|
||||
class C {}let a, b = 42, c;b;;
|
|
@ -0,0 +1,38 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/regexp-literal-flags.case
|
||||
// - src/statementList/default/class-declaration.template
|
||||
/*---
|
||||
description: Regular Expression Literal with Flags (Valid syntax of StatementList starting with a Class Declaration)
|
||||
esid: prod-StatementList
|
||||
features: [class]
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Declaration:
|
||||
ClassDeclaration
|
||||
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement[Yield, Await]:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
RegularExpressionLiteral ::
|
||||
/ RegularExpressionBody / RegularExpressionFlags
|
||||
---*/
|
||||
|
||||
|
||||
class C {}/1/g;;
|
|
@ -0,0 +1,38 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/regexp-literal.case
|
||||
// - src/statementList/default/class-declaration.template
|
||||
/*---
|
||||
description: Regular Expression Literal (Valid syntax of StatementList starting with a Class Declaration)
|
||||
esid: prod-StatementList
|
||||
features: [class]
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Declaration:
|
||||
ClassDeclaration
|
||||
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement[Yield, Await]:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
RegularExpressionLiteral ::
|
||||
/ RegularExpressionBody / RegularExpressionFlags
|
||||
---*/
|
||||
|
||||
|
||||
class C {}/1/;;
|
|
@ -0,0 +1,48 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/array-literal-with-item.case
|
||||
// - src/statementList/default/eval-block.template
|
||||
/*---
|
||||
description: Array Literal with items (Eval production of StatementList starting with a BlockStatement)
|
||||
esid: prod-StatementList
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
|
||||
BlockStatement:
|
||||
Block
|
||||
|
||||
Block:
|
||||
{ StatementList_opt }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
ArrayLiteral[Yield, Await]:
|
||||
[ Elision_opt ]
|
||||
[ ElementList ]
|
||||
[ ElementList , Elision_opt ]
|
||||
---*/
|
||||
|
||||
|
||||
var result = eval('{}[42];');
|
||||
|
||||
assert.sameValue(Object.getPrototypeOf(result), Array.prototype);
|
||||
assert.sameValue(result.length, 1);
|
||||
assert.sameValue(result[0], 42);
|
|
@ -0,0 +1,47 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/array-literal.case
|
||||
// - src/statementList/default/eval-block.template
|
||||
/*---
|
||||
description: Array Literal (Eval production of StatementList starting with a BlockStatement)
|
||||
esid: prod-StatementList
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
|
||||
BlockStatement:
|
||||
Block
|
||||
|
||||
Block:
|
||||
{ StatementList_opt }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
ArrayLiteral[Yield, Await]:
|
||||
[ Elision_opt ]
|
||||
[ ElementList ]
|
||||
[ ElementList , Elision_opt ]
|
||||
---*/
|
||||
|
||||
|
||||
var result = eval('{}[];');
|
||||
|
||||
assert.sameValue(Object.getPrototypeOf(result), Array.prototype);
|
||||
assert.sameValue(result.length, 0);
|
|
@ -0,0 +1,57 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/arrow-function-assignment-expr.case
|
||||
// - src/statementList/default/eval-block.template
|
||||
/*---
|
||||
description: Arrow Function with an AssignmentExpression (Eval production of StatementList starting with a BlockStatement)
|
||||
esid: prod-StatementList
|
||||
features: [arrow-function]
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
|
||||
BlockStatement:
|
||||
Block
|
||||
|
||||
Block:
|
||||
{ StatementList_opt }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
...
|
||||
|
||||
AssignmentExpression:
|
||||
ConditionalExpression
|
||||
[+Yield]YieldExpression
|
||||
ArrowFunction
|
||||
|
||||
ArrowFunction:
|
||||
ArrowParameters [no LineTerminator here] => ConciseBody
|
||||
|
||||
ConciseBody:
|
||||
[lookahead ≠ {] AssignmentExpression
|
||||
{ FunctionBody }
|
||||
|
||||
---*/
|
||||
|
||||
|
||||
var result = eval('{}() => 42;');
|
||||
|
||||
assert.sameValue(result(), 42);
|
|
@ -0,0 +1,57 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/arrow-function-functionbody.case
|
||||
// - src/statementList/default/eval-block.template
|
||||
/*---
|
||||
description: Arrow Function with a Function Body (Eval production of StatementList starting with a BlockStatement)
|
||||
esid: prod-StatementList
|
||||
features: [arrow-function]
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
|
||||
BlockStatement:
|
||||
Block
|
||||
|
||||
Block:
|
||||
{ StatementList_opt }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
...
|
||||
|
||||
AssignmentExpression:
|
||||
ConditionalExpression
|
||||
[+Yield]YieldExpression
|
||||
ArrowFunction
|
||||
|
||||
ArrowFunction:
|
||||
ArrowParameters [no LineTerminator here] => ConciseBody
|
||||
|
||||
ConciseBody:
|
||||
[lookahead ≠ {] AssignmentExpression
|
||||
{ FunctionBody }
|
||||
|
||||
---*/
|
||||
|
||||
|
||||
var result = eval('{}() => { return 42; };');
|
||||
|
||||
assert.sameValue(result(), 42);
|
|
@ -0,0 +1,42 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/block-with-labels.case
|
||||
// - src/statementList/default/eval-block.template
|
||||
/*---
|
||||
description: Block with a label (Eval production of StatementList starting with a BlockStatement)
|
||||
esid: prod-StatementList
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
|
||||
BlockStatement:
|
||||
Block
|
||||
|
||||
Block:
|
||||
{ StatementList_opt }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
// lookahead here prevents capturing an Object literal
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
---*/
|
||||
|
||||
|
||||
var result = eval('{}{x: 42};');
|
||||
|
||||
assert.sameValue(result, 42, 'it does not evaluate to an Object with the property x');
|
|
@ -0,0 +1,42 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/block.case
|
||||
// - src/statementList/default/eval-block.template
|
||||
/*---
|
||||
description: Block (Eval production of StatementList starting with a BlockStatement)
|
||||
esid: prod-StatementList
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
|
||||
BlockStatement:
|
||||
Block
|
||||
|
||||
Block:
|
||||
{ StatementList_opt }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
// lookahead here prevents capturing an Object literal
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
---*/
|
||||
|
||||
|
||||
var result = eval('{}{}');
|
||||
|
||||
assert.sameValue(result, undefined);
|
|
@ -0,0 +1,59 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/expr-arrow-function-boolean-literal.case
|
||||
// - src/statementList/default/eval-block.template
|
||||
/*---
|
||||
description: Expression with an Arrow Function and Boolean literal (Eval production of StatementList starting with a BlockStatement)
|
||||
esid: prod-StatementList
|
||||
features: [arrow-function]
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
|
||||
BlockStatement:
|
||||
Block
|
||||
|
||||
Block:
|
||||
{ StatementList_opt }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
Expression:
|
||||
AssignmentExpression
|
||||
Expression , AssignmentExpression
|
||||
|
||||
AssignmentExpression:
|
||||
ConditionalExpression
|
||||
[+Yield]YieldExpression
|
||||
ArrowFunction
|
||||
|
||||
ArrowFunction:
|
||||
ArrowParameters [no LineTerminator here] => ConciseBody
|
||||
|
||||
ConciseBody:
|
||||
[lookahead ≠ {] AssignmentExpression
|
||||
{ FunctionBody }
|
||||
|
||||
---*/
|
||||
|
||||
|
||||
var result = eval('{}() => 1, 42;');
|
||||
|
||||
assert.sameValue(result, 42);
|
|
@ -0,0 +1,40 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/let-declaration.case
|
||||
// - src/statementList/default/eval-block.template
|
||||
/*---
|
||||
description: LexicalDeclaration using Let (Eval production of StatementList starting with a BlockStatement)
|
||||
esid: prod-StatementList
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
|
||||
BlockStatement:
|
||||
Block
|
||||
|
||||
Block:
|
||||
{ StatementList_opt }
|
||||
|
||||
Declaration:
|
||||
LexicalDeclaration
|
||||
|
||||
LexicalDeclaration:
|
||||
LetOrConst BindingList ;
|
||||
|
||||
BindingList:
|
||||
LexicalBinding
|
||||
BindingList , LexicalBinding
|
||||
---*/
|
||||
|
||||
|
||||
var result = eval('{}let a, b = 42, c;b;');
|
||||
|
||||
assert.sameValue(result, 42);
|
|
@ -0,0 +1,46 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/regexp-literal-flags.case
|
||||
// - src/statementList/default/eval-block.template
|
||||
/*---
|
||||
description: Regular Expression Literal with Flags (Eval production of StatementList starting with a BlockStatement)
|
||||
esid: prod-StatementList
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
|
||||
BlockStatement:
|
||||
Block
|
||||
|
||||
Block:
|
||||
{ StatementList_opt }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement[Yield, Await]:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
RegularExpressionLiteral ::
|
||||
/ RegularExpressionBody / RegularExpressionFlags
|
||||
---*/
|
||||
|
||||
|
||||
var result = eval('{}/1/g;');
|
||||
|
||||
assert.sameValue(Object.getPrototypeOf(result), RegExp.prototype);
|
||||
assert.sameValue(result.flags, 'g');
|
||||
assert.sameValue(result.toString(), '/1/g');
|
|
@ -0,0 +1,46 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/regexp-literal.case
|
||||
// - src/statementList/default/eval-block.template
|
||||
/*---
|
||||
description: Regular Expression Literal (Eval production of StatementList starting with a BlockStatement)
|
||||
esid: prod-StatementList
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
|
||||
BlockStatement:
|
||||
Block
|
||||
|
||||
Block:
|
||||
{ StatementList_opt }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement[Yield, Await]:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
RegularExpressionLiteral ::
|
||||
/ RegularExpressionBody / RegularExpressionFlags
|
||||
---*/
|
||||
|
||||
|
||||
var result = eval('{}/1/;');
|
||||
|
||||
assert.sameValue(Object.getPrototypeOf(result), RegExp.prototype);
|
||||
assert.sameValue(result.flags, '');
|
||||
assert.sameValue(result.toString(), '/1/');
|
|
@ -0,0 +1,50 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/array-literal-with-item.case
|
||||
// - src/statementList/default/eval-block-with-statement.template
|
||||
/*---
|
||||
description: Array Literal with items (Evaluate produciton of StatementList starting with a BlockStatement)
|
||||
esid: prod-StatementList
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
|
||||
BlockStatement:
|
||||
Block
|
||||
|
||||
Block:
|
||||
{ StatementList_opt }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
ArrayLiteral[Yield, Await]:
|
||||
[ Elision_opt ]
|
||||
[ ElementList ]
|
||||
[ ElementList , Elision_opt ]
|
||||
---*/
|
||||
|
||||
|
||||
// length is a label!
|
||||
var result = eval('{length: 3000}[42];;');
|
||||
|
||||
// Reuse this value for items with empty completions
|
||||
var expected = 3000;
|
||||
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/array-literal.case
|
||||
// - src/statementList/default/eval-block-with-statement.template
|
||||
/*---
|
||||
description: Array Literal (Evaluate produciton of StatementList starting with a BlockStatement)
|
||||
esid: prod-StatementList
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
|
||||
BlockStatement:
|
||||
Block
|
||||
|
||||
Block:
|
||||
{ StatementList_opt }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
ArrayLiteral[Yield, Await]:
|
||||
[ Elision_opt ]
|
||||
[ ElementList ]
|
||||
[ ElementList , Elision_opt ]
|
||||
---*/
|
||||
|
||||
|
||||
// length is a label!
|
||||
var result = eval('{length: 3000}[];;');
|
||||
|
||||
// Reuse this value for items with empty completions
|
||||
var expected = 3000;
|
||||
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/arrow-function-assignment-expr.case
|
||||
// - src/statementList/default/eval-block-with-statement.template
|
||||
/*---
|
||||
description: Arrow Function with an AssignmentExpression (Evaluate produciton of StatementList starting with a BlockStatement)
|
||||
esid: prod-StatementList
|
||||
features: [arrow-function]
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
|
||||
BlockStatement:
|
||||
Block
|
||||
|
||||
Block:
|
||||
{ StatementList_opt }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
...
|
||||
|
||||
AssignmentExpression:
|
||||
ConditionalExpression
|
||||
[+Yield]YieldExpression
|
||||
ArrowFunction
|
||||
|
||||
ArrowFunction:
|
||||
ArrowParameters [no LineTerminator here] => ConciseBody
|
||||
|
||||
ConciseBody:
|
||||
[lookahead ≠ {] AssignmentExpression
|
||||
{ FunctionBody }
|
||||
|
||||
---*/
|
||||
|
||||
|
||||
// length is a label!
|
||||
var result = eval('{length: 3000}() => 42;;');
|
||||
|
||||
// Reuse this value for items with empty completions
|
||||
var expected = 3000;
|
||||
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/arrow-function-functionbody.case
|
||||
// - src/statementList/default/eval-block-with-statement.template
|
||||
/*---
|
||||
description: Arrow Function with a Function Body (Evaluate produciton of StatementList starting with a BlockStatement)
|
||||
esid: prod-StatementList
|
||||
features: [arrow-function]
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
|
||||
BlockStatement:
|
||||
Block
|
||||
|
||||
Block:
|
||||
{ StatementList_opt }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
...
|
||||
|
||||
AssignmentExpression:
|
||||
ConditionalExpression
|
||||
[+Yield]YieldExpression
|
||||
ArrowFunction
|
||||
|
||||
ArrowFunction:
|
||||
ArrowParameters [no LineTerminator here] => ConciseBody
|
||||
|
||||
ConciseBody:
|
||||
[lookahead ≠ {] AssignmentExpression
|
||||
{ FunctionBody }
|
||||
|
||||
---*/
|
||||
|
||||
|
||||
// length is a label!
|
||||
var result = eval('{length: 3000}() => { return 42; };;');
|
||||
|
||||
// Reuse this value for items with empty completions
|
||||
var expected = 3000;
|
||||
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/block-with-labels.case
|
||||
// - src/statementList/default/eval-block-with-statement.template
|
||||
/*---
|
||||
description: Block with a label (Evaluate produciton of StatementList starting with a BlockStatement)
|
||||
esid: prod-StatementList
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
|
||||
BlockStatement:
|
||||
Block
|
||||
|
||||
Block:
|
||||
{ StatementList_opt }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
// lookahead here prevents capturing an Object literal
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
---*/
|
||||
|
||||
|
||||
// length is a label!
|
||||
var result = eval('{length: 3000}{x: 42};;');
|
||||
|
||||
// Reuse this value for items with empty completions
|
||||
var expected = 3000;
|
||||
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/block.case
|
||||
// - src/statementList/default/eval-block-with-statement.template
|
||||
/*---
|
||||
description: Block (Evaluate produciton of StatementList starting with a BlockStatement)
|
||||
esid: prod-StatementList
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
|
||||
BlockStatement:
|
||||
Block
|
||||
|
||||
Block:
|
||||
{ StatementList_opt }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
// lookahead here prevents capturing an Object literal
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
---*/
|
||||
|
||||
|
||||
// length is a label!
|
||||
var result = eval('{length: 3000}{};');
|
||||
|
||||
// Reuse this value for items with empty completions
|
||||
var expected = 3000;
|
||||
|
||||
assert.sameValue(result, expected);
|
|
@ -0,0 +1,63 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/expr-arrow-function-boolean-literal.case
|
||||
// - src/statementList/default/eval-block-with-statement.template
|
||||
/*---
|
||||
description: Expression with an Arrow Function and Boolean literal (Evaluate produciton of StatementList starting with a BlockStatement)
|
||||
esid: prod-StatementList
|
||||
features: [arrow-function]
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
|
||||
BlockStatement:
|
||||
Block
|
||||
|
||||
Block:
|
||||
{ StatementList_opt }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
Expression:
|
||||
AssignmentExpression
|
||||
Expression , AssignmentExpression
|
||||
|
||||
AssignmentExpression:
|
||||
ConditionalExpression
|
||||
[+Yield]YieldExpression
|
||||
ArrowFunction
|
||||
|
||||
ArrowFunction:
|
||||
ArrowParameters [no LineTerminator here] => ConciseBody
|
||||
|
||||
ConciseBody:
|
||||
[lookahead ≠ {] AssignmentExpression
|
||||
{ FunctionBody }
|
||||
|
||||
---*/
|
||||
|
||||
|
||||
// length is a label!
|
||||
var result = eval('{length: 3000}() => 1, 42;;');
|
||||
|
||||
// Reuse this value for items with empty completions
|
||||
var expected = 3000;
|
||||
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/let-declaration.case
|
||||
// - src/statementList/default/eval-block-with-statement.template
|
||||
/*---
|
||||
description: LexicalDeclaration using Let (Evaluate produciton of StatementList starting with a BlockStatement)
|
||||
esid: prod-StatementList
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
|
||||
BlockStatement:
|
||||
Block
|
||||
|
||||
Block:
|
||||
{ StatementList_opt }
|
||||
|
||||
Declaration:
|
||||
LexicalDeclaration
|
||||
|
||||
LexicalDeclaration:
|
||||
LetOrConst BindingList ;
|
||||
|
||||
BindingList:
|
||||
LexicalBinding
|
||||
BindingList , LexicalBinding
|
||||
---*/
|
||||
|
||||
|
||||
// length is a label!
|
||||
var result = eval('{length: 3000}let a, b = 42, c;b;;');
|
||||
|
||||
// Reuse this value for items with empty completions
|
||||
var expected = 3000;
|
||||
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/regexp-literal-flags.case
|
||||
// - src/statementList/default/eval-block-with-statement.template
|
||||
/*---
|
||||
description: Regular Expression Literal with Flags (Evaluate produciton of StatementList starting with a BlockStatement)
|
||||
esid: prod-StatementList
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
|
||||
BlockStatement:
|
||||
Block
|
||||
|
||||
Block:
|
||||
{ StatementList_opt }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement[Yield, Await]:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
RegularExpressionLiteral ::
|
||||
/ RegularExpressionBody / RegularExpressionFlags
|
||||
---*/
|
||||
|
||||
|
||||
// length is a label!
|
||||
var result = eval('{length: 3000}/1/g;;');
|
||||
|
||||
// Reuse this value for items with empty completions
|
||||
var expected = 3000;
|
||||
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/regexp-literal.case
|
||||
// - src/statementList/default/eval-block-with-statement.template
|
||||
/*---
|
||||
description: Regular Expression Literal (Evaluate produciton of StatementList starting with a BlockStatement)
|
||||
esid: prod-StatementList
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
|
||||
BlockStatement:
|
||||
Block
|
||||
|
||||
Block:
|
||||
{ StatementList_opt }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement[Yield, Await]:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
RegularExpressionLiteral ::
|
||||
/ RegularExpressionBody / RegularExpressionFlags
|
||||
---*/
|
||||
|
||||
|
||||
// length is a label!
|
||||
var result = eval('{length: 3000}/1/;;');
|
||||
|
||||
// Reuse this value for items with empty completions
|
||||
var expected = 3000;
|
||||
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/array-literal-with-item.case
|
||||
// - src/statementList/default/eval-class-declaration.template
|
||||
/*---
|
||||
description: Array Literal with items (Valid syntax of StatementList starting with a Class Declaration)
|
||||
esid: prod-StatementList
|
||||
features: [class]
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Declaration:
|
||||
ClassDeclaration
|
||||
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
ArrayLiteral[Yield, Await]:
|
||||
[ Elision_opt ]
|
||||
[ ElementList ]
|
||||
[ ElementList , Elision_opt ]
|
||||
---*/
|
||||
|
||||
|
||||
var result = eval('class C {}[42];;');
|
||||
|
||||
assert.sameValue(Object.getPrototypeOf(result), Array.prototype);
|
||||
assert.sameValue(result.length, 1);
|
||||
assert.sameValue(result[0], 42);
|
|
@ -0,0 +1,43 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/array-literal.case
|
||||
// - src/statementList/default/eval-class-declaration.template
|
||||
/*---
|
||||
description: Array Literal (Valid syntax of StatementList starting with a Class Declaration)
|
||||
esid: prod-StatementList
|
||||
features: [class]
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Declaration:
|
||||
ClassDeclaration
|
||||
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
ArrayLiteral[Yield, Await]:
|
||||
[ Elision_opt ]
|
||||
[ ElementList ]
|
||||
[ ElementList , Elision_opt ]
|
||||
---*/
|
||||
|
||||
|
||||
var result = eval('class C {}[];;');
|
||||
|
||||
assert.sameValue(Object.getPrototypeOf(result), Array.prototype);
|
||||
assert.sameValue(result.length, 0);
|
|
@ -0,0 +1,52 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/arrow-function-assignment-expr.case
|
||||
// - src/statementList/default/eval-class-declaration.template
|
||||
/*---
|
||||
description: Arrow Function with an AssignmentExpression (Valid syntax of StatementList starting with a Class Declaration)
|
||||
esid: prod-StatementList
|
||||
features: [arrow-function, class]
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Declaration:
|
||||
ClassDeclaration
|
||||
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
...
|
||||
|
||||
AssignmentExpression:
|
||||
ConditionalExpression
|
||||
[+Yield]YieldExpression
|
||||
ArrowFunction
|
||||
|
||||
ArrowFunction:
|
||||
ArrowParameters [no LineTerminator here] => ConciseBody
|
||||
|
||||
ConciseBody:
|
||||
[lookahead ≠ {] AssignmentExpression
|
||||
{ FunctionBody }
|
||||
|
||||
---*/
|
||||
|
||||
|
||||
var result = eval('class C {}() => 42;;');
|
||||
|
||||
assert.sameValue(result(), 42);
|
|
@ -0,0 +1,52 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/arrow-function-functionbody.case
|
||||
// - src/statementList/default/eval-class-declaration.template
|
||||
/*---
|
||||
description: Arrow Function with a Function Body (Valid syntax of StatementList starting with a Class Declaration)
|
||||
esid: prod-StatementList
|
||||
features: [arrow-function, class]
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Declaration:
|
||||
ClassDeclaration
|
||||
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
...
|
||||
|
||||
AssignmentExpression:
|
||||
ConditionalExpression
|
||||
[+Yield]YieldExpression
|
||||
ArrowFunction
|
||||
|
||||
ArrowFunction:
|
||||
ArrowParameters [no LineTerminator here] => ConciseBody
|
||||
|
||||
ConciseBody:
|
||||
[lookahead ≠ {] AssignmentExpression
|
||||
{ FunctionBody }
|
||||
|
||||
---*/
|
||||
|
||||
|
||||
var result = eval('class C {}() => { return 42; };;');
|
||||
|
||||
assert.sameValue(result(), 42);
|
|
@ -0,0 +1,38 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/block-with-labels.case
|
||||
// - src/statementList/default/eval-class-declaration.template
|
||||
/*---
|
||||
description: Block with a label (Valid syntax of StatementList starting with a Class Declaration)
|
||||
esid: prod-StatementList
|
||||
features: [class]
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Declaration:
|
||||
ClassDeclaration
|
||||
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
// lookahead here prevents capturing an Object literal
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
---*/
|
||||
|
||||
|
||||
var result = eval('class C {}{x: 42};;');
|
||||
|
||||
assert.sameValue(result, 42, 'it does not evaluate to an Object with the property x');
|
|
@ -0,0 +1,38 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/block.case
|
||||
// - src/statementList/default/eval-class-declaration.template
|
||||
/*---
|
||||
description: Block (Valid syntax of StatementList starting with a Class Declaration)
|
||||
esid: prod-StatementList
|
||||
features: [class]
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Declaration:
|
||||
ClassDeclaration
|
||||
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
// lookahead here prevents capturing an Object literal
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
---*/
|
||||
|
||||
|
||||
var result = eval('class C {}{};');
|
||||
|
||||
assert.sameValue(result, undefined);
|
|
@ -0,0 +1,54 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/expr-arrow-function-boolean-literal.case
|
||||
// - src/statementList/default/eval-class-declaration.template
|
||||
/*---
|
||||
description: Expression with an Arrow Function and Boolean literal (Valid syntax of StatementList starting with a Class Declaration)
|
||||
esid: prod-StatementList
|
||||
features: [arrow-function, class]
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Declaration:
|
||||
ClassDeclaration
|
||||
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
Expression:
|
||||
AssignmentExpression
|
||||
Expression , AssignmentExpression
|
||||
|
||||
AssignmentExpression:
|
||||
ConditionalExpression
|
||||
[+Yield]YieldExpression
|
||||
ArrowFunction
|
||||
|
||||
ArrowFunction:
|
||||
ArrowParameters [no LineTerminator here] => ConciseBody
|
||||
|
||||
ConciseBody:
|
||||
[lookahead ≠ {] AssignmentExpression
|
||||
{ FunctionBody }
|
||||
|
||||
---*/
|
||||
|
||||
|
||||
var result = eval('class C {}() => 1, 42;;');
|
||||
|
||||
assert.sameValue(result, 42);
|
|
@ -0,0 +1,36 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/let-declaration.case
|
||||
// - src/statementList/default/eval-class-declaration.template
|
||||
/*---
|
||||
description: LexicalDeclaration using Let (Valid syntax of StatementList starting with a Class Declaration)
|
||||
esid: prod-StatementList
|
||||
features: [class]
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Declaration:
|
||||
ClassDeclaration
|
||||
|
||||
|
||||
Declaration:
|
||||
LexicalDeclaration
|
||||
|
||||
LexicalDeclaration:
|
||||
LetOrConst BindingList ;
|
||||
|
||||
BindingList:
|
||||
LexicalBinding
|
||||
BindingList , LexicalBinding
|
||||
---*/
|
||||
|
||||
|
||||
var result = eval('class C {}let a, b = 42, c;b;;');
|
||||
|
||||
assert.sameValue(result, 42);
|
|
@ -0,0 +1,42 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/regexp-literal-flags.case
|
||||
// - src/statementList/default/eval-class-declaration.template
|
||||
/*---
|
||||
description: Regular Expression Literal with Flags (Valid syntax of StatementList starting with a Class Declaration)
|
||||
esid: prod-StatementList
|
||||
features: [class]
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Declaration:
|
||||
ClassDeclaration
|
||||
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement[Yield, Await]:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
RegularExpressionLiteral ::
|
||||
/ RegularExpressionBody / RegularExpressionFlags
|
||||
---*/
|
||||
|
||||
|
||||
var result = eval('class C {}/1/g;;');
|
||||
|
||||
assert.sameValue(Object.getPrototypeOf(result), RegExp.prototype);
|
||||
assert.sameValue(result.flags, 'g');
|
||||
assert.sameValue(result.toString(), '/1/g');
|
|
@ -0,0 +1,42 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/regexp-literal.case
|
||||
// - src/statementList/default/eval-class-declaration.template
|
||||
/*---
|
||||
description: Regular Expression Literal (Valid syntax of StatementList starting with a Class Declaration)
|
||||
esid: prod-StatementList
|
||||
features: [class]
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Declaration:
|
||||
ClassDeclaration
|
||||
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement[Yield, Await]:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
RegularExpressionLiteral ::
|
||||
/ RegularExpressionBody / RegularExpressionFlags
|
||||
---*/
|
||||
|
||||
|
||||
var result = eval('class C {}/1/;;');
|
||||
|
||||
assert.sameValue(Object.getPrototypeOf(result), RegExp.prototype);
|
||||
assert.sameValue(result.flags, '');
|
||||
assert.sameValue(result.toString(), '/1/');
|
|
@ -0,0 +1,45 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/array-literal-with-item.case
|
||||
// - src/statementList/default/eval-function-declaration.template
|
||||
/*---
|
||||
description: Array Literal with items (Eval production of StatementList starting with a Function Declaration)
|
||||
esid: prod-StatementList
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Declaration:
|
||||
HoistableDeclaration
|
||||
|
||||
FunctionDeclaration:
|
||||
function BindingIdentifier ( FormalParameters ) { FunctionBody }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
ArrayLiteral[Yield, Await]:
|
||||
[ Elision_opt ]
|
||||
[ ElementList ]
|
||||
[ ElementList , Elision_opt ]
|
||||
---*/
|
||||
|
||||
|
||||
var result = eval('function fn() {}[42];;');
|
||||
|
||||
assert.sameValue(Object.getPrototypeOf(result), Array.prototype);
|
||||
assert.sameValue(result.length, 1);
|
||||
assert.sameValue(result[0], 42);
|
|
@ -0,0 +1,44 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/array-literal.case
|
||||
// - src/statementList/default/eval-function-declaration.template
|
||||
/*---
|
||||
description: Array Literal (Eval production of StatementList starting with a Function Declaration)
|
||||
esid: prod-StatementList
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Declaration:
|
||||
HoistableDeclaration
|
||||
|
||||
FunctionDeclaration:
|
||||
function BindingIdentifier ( FormalParameters ) { FunctionBody }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
ArrayLiteral[Yield, Await]:
|
||||
[ Elision_opt ]
|
||||
[ ElementList ]
|
||||
[ ElementList , Elision_opt ]
|
||||
---*/
|
||||
|
||||
|
||||
var result = eval('function fn() {}[];;');
|
||||
|
||||
assert.sameValue(Object.getPrototypeOf(result), Array.prototype);
|
||||
assert.sameValue(result.length, 0);
|
|
@ -0,0 +1,54 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/arrow-function-assignment-expr.case
|
||||
// - src/statementList/default/eval-function-declaration.template
|
||||
/*---
|
||||
description: Arrow Function with an AssignmentExpression (Eval production of StatementList starting with a Function Declaration)
|
||||
esid: prod-StatementList
|
||||
features: [arrow-function]
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Declaration:
|
||||
HoistableDeclaration
|
||||
|
||||
FunctionDeclaration:
|
||||
function BindingIdentifier ( FormalParameters ) { FunctionBody }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
...
|
||||
|
||||
AssignmentExpression:
|
||||
ConditionalExpression
|
||||
[+Yield]YieldExpression
|
||||
ArrowFunction
|
||||
|
||||
ArrowFunction:
|
||||
ArrowParameters [no LineTerminator here] => ConciseBody
|
||||
|
||||
ConciseBody:
|
||||
[lookahead ≠ {] AssignmentExpression
|
||||
{ FunctionBody }
|
||||
|
||||
---*/
|
||||
|
||||
|
||||
var result = eval('function fn() {}() => 42;;');
|
||||
|
||||
assert.sameValue(result(), 42);
|
|
@ -0,0 +1,54 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/arrow-function-functionbody.case
|
||||
// - src/statementList/default/eval-function-declaration.template
|
||||
/*---
|
||||
description: Arrow Function with a Function Body (Eval production of StatementList starting with a Function Declaration)
|
||||
esid: prod-StatementList
|
||||
features: [arrow-function]
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Declaration:
|
||||
HoistableDeclaration
|
||||
|
||||
FunctionDeclaration:
|
||||
function BindingIdentifier ( FormalParameters ) { FunctionBody }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
...
|
||||
|
||||
AssignmentExpression:
|
||||
ConditionalExpression
|
||||
[+Yield]YieldExpression
|
||||
ArrowFunction
|
||||
|
||||
ArrowFunction:
|
||||
ArrowParameters [no LineTerminator here] => ConciseBody
|
||||
|
||||
ConciseBody:
|
||||
[lookahead ≠ {] AssignmentExpression
|
||||
{ FunctionBody }
|
||||
|
||||
---*/
|
||||
|
||||
|
||||
var result = eval('function fn() {}() => { return 42; };;');
|
||||
|
||||
assert.sameValue(result(), 42);
|
|
@ -0,0 +1,39 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/block-with-labels.case
|
||||
// - src/statementList/default/eval-function-declaration.template
|
||||
/*---
|
||||
description: Block with a label (Eval production of StatementList starting with a Function Declaration)
|
||||
esid: prod-StatementList
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Declaration:
|
||||
HoistableDeclaration
|
||||
|
||||
FunctionDeclaration:
|
||||
function BindingIdentifier ( FormalParameters ) { FunctionBody }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
// lookahead here prevents capturing an Object literal
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
---*/
|
||||
|
||||
|
||||
var result = eval('function fn() {}{x: 42};;');
|
||||
|
||||
assert.sameValue(result, 42, 'it does not evaluate to an Object with the property x');
|
|
@ -0,0 +1,39 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/block.case
|
||||
// - src/statementList/default/eval-function-declaration.template
|
||||
/*---
|
||||
description: Block (Eval production of StatementList starting with a Function Declaration)
|
||||
esid: prod-StatementList
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Declaration:
|
||||
HoistableDeclaration
|
||||
|
||||
FunctionDeclaration:
|
||||
function BindingIdentifier ( FormalParameters ) { FunctionBody }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
// lookahead here prevents capturing an Object literal
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
---*/
|
||||
|
||||
|
||||
var result = eval('function fn() {}{};');
|
||||
|
||||
assert.sameValue(result, undefined);
|
|
@ -0,0 +1,56 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/expr-arrow-function-boolean-literal.case
|
||||
// - src/statementList/default/eval-function-declaration.template
|
||||
/*---
|
||||
description: Expression with an Arrow Function and Boolean literal (Eval production of StatementList starting with a Function Declaration)
|
||||
esid: prod-StatementList
|
||||
features: [arrow-function]
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Declaration:
|
||||
HoistableDeclaration
|
||||
|
||||
FunctionDeclaration:
|
||||
function BindingIdentifier ( FormalParameters ) { FunctionBody }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
Expression:
|
||||
AssignmentExpression
|
||||
Expression , AssignmentExpression
|
||||
|
||||
AssignmentExpression:
|
||||
ConditionalExpression
|
||||
[+Yield]YieldExpression
|
||||
ArrowFunction
|
||||
|
||||
ArrowFunction:
|
||||
ArrowParameters [no LineTerminator here] => ConciseBody
|
||||
|
||||
ConciseBody:
|
||||
[lookahead ≠ {] AssignmentExpression
|
||||
{ FunctionBody }
|
||||
|
||||
---*/
|
||||
|
||||
|
||||
var result = eval('function fn() {}() => 1, 42;;');
|
||||
|
||||
assert.sameValue(result, 42);
|
|
@ -0,0 +1,37 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/let-declaration.case
|
||||
// - src/statementList/default/eval-function-declaration.template
|
||||
/*---
|
||||
description: LexicalDeclaration using Let (Eval production of StatementList starting with a Function Declaration)
|
||||
esid: prod-StatementList
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Declaration:
|
||||
HoistableDeclaration
|
||||
|
||||
FunctionDeclaration:
|
||||
function BindingIdentifier ( FormalParameters ) { FunctionBody }
|
||||
|
||||
Declaration:
|
||||
LexicalDeclaration
|
||||
|
||||
LexicalDeclaration:
|
||||
LetOrConst BindingList ;
|
||||
|
||||
BindingList:
|
||||
LexicalBinding
|
||||
BindingList , LexicalBinding
|
||||
---*/
|
||||
|
||||
|
||||
var result = eval('function fn() {}let a, b = 42, c;b;;');
|
||||
|
||||
assert.sameValue(result, 42);
|
|
@ -0,0 +1,43 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/regexp-literal-flags.case
|
||||
// - src/statementList/default/eval-function-declaration.template
|
||||
/*---
|
||||
description: Regular Expression Literal with Flags (Eval production of StatementList starting with a Function Declaration)
|
||||
esid: prod-StatementList
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Declaration:
|
||||
HoistableDeclaration
|
||||
|
||||
FunctionDeclaration:
|
||||
function BindingIdentifier ( FormalParameters ) { FunctionBody }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement[Yield, Await]:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
RegularExpressionLiteral ::
|
||||
/ RegularExpressionBody / RegularExpressionFlags
|
||||
---*/
|
||||
|
||||
|
||||
var result = eval('function fn() {}/1/g;;');
|
||||
|
||||
assert.sameValue(Object.getPrototypeOf(result), RegExp.prototype);
|
||||
assert.sameValue(result.flags, 'g');
|
||||
assert.sameValue(result.toString(), '/1/g');
|
|
@ -0,0 +1,43 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/regexp-literal.case
|
||||
// - src/statementList/default/eval-function-declaration.template
|
||||
/*---
|
||||
description: Regular Expression Literal (Eval production of StatementList starting with a Function Declaration)
|
||||
esid: prod-StatementList
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Declaration:
|
||||
HoistableDeclaration
|
||||
|
||||
FunctionDeclaration:
|
||||
function BindingIdentifier ( FormalParameters ) { FunctionBody }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement[Yield, Await]:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
RegularExpressionLiteral ::
|
||||
/ RegularExpressionBody / RegularExpressionFlags
|
||||
---*/
|
||||
|
||||
|
||||
var result = eval('function fn() {}/1/;;');
|
||||
|
||||
assert.sameValue(Object.getPrototypeOf(result), RegExp.prototype);
|
||||
assert.sameValue(result.flags, '');
|
||||
assert.sameValue(result.toString(), '/1/');
|
|
@ -0,0 +1,41 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/array-literal-with-item.case
|
||||
// - src/statementList/default/function-declaration.template
|
||||
/*---
|
||||
description: Array Literal with items (Valid syntax of StatementList starting with a Function Declaration)
|
||||
esid: prod-StatementList
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Declaration:
|
||||
HoistableDeclaration
|
||||
|
||||
FunctionDeclaration:
|
||||
function BindingIdentifier ( FormalParameters ) { FunctionBody }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
ArrayLiteral[Yield, Await]:
|
||||
[ Elision_opt ]
|
||||
[ ElementList ]
|
||||
[ ElementList , Elision_opt ]
|
||||
---*/
|
||||
|
||||
|
||||
function fn() {}[42];;
|
|
@ -0,0 +1,41 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/array-literal.case
|
||||
// - src/statementList/default/function-declaration.template
|
||||
/*---
|
||||
description: Array Literal (Valid syntax of StatementList starting with a Function Declaration)
|
||||
esid: prod-StatementList
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Declaration:
|
||||
HoistableDeclaration
|
||||
|
||||
FunctionDeclaration:
|
||||
function BindingIdentifier ( FormalParameters ) { FunctionBody }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
ArrayLiteral[Yield, Await]:
|
||||
[ Elision_opt ]
|
||||
[ ElementList ]
|
||||
[ ElementList , Elision_opt ]
|
||||
---*/
|
||||
|
||||
|
||||
function fn() {}[];;
|
|
@ -0,0 +1,52 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/arrow-function-assignment-expr.case
|
||||
// - src/statementList/default/function-declaration.template
|
||||
/*---
|
||||
description: Arrow Function with an AssignmentExpression (Valid syntax of StatementList starting with a Function Declaration)
|
||||
esid: prod-StatementList
|
||||
features: [arrow-function]
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Declaration:
|
||||
HoistableDeclaration
|
||||
|
||||
FunctionDeclaration:
|
||||
function BindingIdentifier ( FormalParameters ) { FunctionBody }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
...
|
||||
|
||||
AssignmentExpression:
|
||||
ConditionalExpression
|
||||
[+Yield]YieldExpression
|
||||
ArrowFunction
|
||||
|
||||
ArrowFunction:
|
||||
ArrowParameters [no LineTerminator here] => ConciseBody
|
||||
|
||||
ConciseBody:
|
||||
[lookahead ≠ {] AssignmentExpression
|
||||
{ FunctionBody }
|
||||
|
||||
---*/
|
||||
|
||||
|
||||
function fn() {}() => 42;;
|
|
@ -0,0 +1,52 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/arrow-function-functionbody.case
|
||||
// - src/statementList/default/function-declaration.template
|
||||
/*---
|
||||
description: Arrow Function with a Function Body (Valid syntax of StatementList starting with a Function Declaration)
|
||||
esid: prod-StatementList
|
||||
features: [arrow-function]
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Declaration:
|
||||
HoistableDeclaration
|
||||
|
||||
FunctionDeclaration:
|
||||
function BindingIdentifier ( FormalParameters ) { FunctionBody }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
...
|
||||
|
||||
AssignmentExpression:
|
||||
ConditionalExpression
|
||||
[+Yield]YieldExpression
|
||||
ArrowFunction
|
||||
|
||||
ArrowFunction:
|
||||
ArrowParameters [no LineTerminator here] => ConciseBody
|
||||
|
||||
ConciseBody:
|
||||
[lookahead ≠ {] AssignmentExpression
|
||||
{ FunctionBody }
|
||||
|
||||
---*/
|
||||
|
||||
|
||||
function fn() {}() => { return 42; };;
|
|
@ -0,0 +1,37 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/block-with-labels.case
|
||||
// - src/statementList/default/function-declaration.template
|
||||
/*---
|
||||
description: Block with a label (Valid syntax of StatementList starting with a Function Declaration)
|
||||
esid: prod-StatementList
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Declaration:
|
||||
HoistableDeclaration
|
||||
|
||||
FunctionDeclaration:
|
||||
function BindingIdentifier ( FormalParameters ) { FunctionBody }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
// lookahead here prevents capturing an Object literal
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
---*/
|
||||
|
||||
|
||||
function fn() {}{x: 42};;
|
|
@ -0,0 +1,37 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/block.case
|
||||
// - src/statementList/default/function-declaration.template
|
||||
/*---
|
||||
description: Block (Valid syntax of StatementList starting with a Function Declaration)
|
||||
esid: prod-StatementList
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Declaration:
|
||||
HoistableDeclaration
|
||||
|
||||
FunctionDeclaration:
|
||||
function BindingIdentifier ( FormalParameters ) { FunctionBody }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
// lookahead here prevents capturing an Object literal
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
---*/
|
||||
|
||||
|
||||
function fn() {}{};
|
|
@ -0,0 +1,54 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/expr-arrow-function-boolean-literal.case
|
||||
// - src/statementList/default/function-declaration.template
|
||||
/*---
|
||||
description: Expression with an Arrow Function and Boolean literal (Valid syntax of StatementList starting with a Function Declaration)
|
||||
esid: prod-StatementList
|
||||
features: [arrow-function]
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Declaration:
|
||||
HoistableDeclaration
|
||||
|
||||
FunctionDeclaration:
|
||||
function BindingIdentifier ( FormalParameters ) { FunctionBody }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
Expression:
|
||||
AssignmentExpression
|
||||
Expression , AssignmentExpression
|
||||
|
||||
AssignmentExpression:
|
||||
ConditionalExpression
|
||||
[+Yield]YieldExpression
|
||||
ArrowFunction
|
||||
|
||||
ArrowFunction:
|
||||
ArrowParameters [no LineTerminator here] => ConciseBody
|
||||
|
||||
ConciseBody:
|
||||
[lookahead ≠ {] AssignmentExpression
|
||||
{ FunctionBody }
|
||||
|
||||
---*/
|
||||
|
||||
|
||||
function fn() {}() => 1, 42;;
|
|
@ -0,0 +1,35 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/let-declaration.case
|
||||
// - src/statementList/default/function-declaration.template
|
||||
/*---
|
||||
description: LexicalDeclaration using Let (Valid syntax of StatementList starting with a Function Declaration)
|
||||
esid: prod-StatementList
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Declaration:
|
||||
HoistableDeclaration
|
||||
|
||||
FunctionDeclaration:
|
||||
function BindingIdentifier ( FormalParameters ) { FunctionBody }
|
||||
|
||||
Declaration:
|
||||
LexicalDeclaration
|
||||
|
||||
LexicalDeclaration:
|
||||
LetOrConst BindingList ;
|
||||
|
||||
BindingList:
|
||||
LexicalBinding
|
||||
BindingList , LexicalBinding
|
||||
---*/
|
||||
|
||||
|
||||
function fn() {}let a, b = 42, c;b;;
|
|
@ -0,0 +1,39 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/regexp-literal-flags.case
|
||||
// - src/statementList/default/function-declaration.template
|
||||
/*---
|
||||
description: Regular Expression Literal with Flags (Valid syntax of StatementList starting with a Function Declaration)
|
||||
esid: prod-StatementList
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Declaration:
|
||||
HoistableDeclaration
|
||||
|
||||
FunctionDeclaration:
|
||||
function BindingIdentifier ( FormalParameters ) { FunctionBody }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement[Yield, Await]:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
RegularExpressionLiteral ::
|
||||
/ RegularExpressionBody / RegularExpressionFlags
|
||||
---*/
|
||||
|
||||
|
||||
function fn() {}/1/g;;
|
|
@ -0,0 +1,39 @@
|
|||
// This file was procedurally generated from the following sources:
|
||||
// - src/statementList/regexp-literal.case
|
||||
// - src/statementList/default/function-declaration.template
|
||||
/*---
|
||||
description: Regular Expression Literal (Valid syntax of StatementList starting with a Function Declaration)
|
||||
esid: prod-StatementList
|
||||
flags: [generated]
|
||||
info: |
|
||||
StatementList:
|
||||
StatementListItem
|
||||
StatementList StatementListItem
|
||||
|
||||
StatementListItem:
|
||||
Statement
|
||||
Declaration
|
||||
|
||||
Declaration:
|
||||
HoistableDeclaration
|
||||
|
||||
FunctionDeclaration:
|
||||
function BindingIdentifier ( FormalParameters ) { FunctionBody }
|
||||
|
||||
Statement:
|
||||
BlockStatement
|
||||
VariableStatement
|
||||
EmptyStatement
|
||||
ExpressionStatement
|
||||
...
|
||||
|
||||
ExpressionStatement[Yield, Await]:
|
||||
[lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]
|
||||
Expression ;
|
||||
|
||||
RegularExpressionLiteral ::
|
||||
/ RegularExpressionBody / RegularExpressionFlags
|
||||
---*/
|
||||
|
||||
|
||||
function fn() {}/1/;;
|
Loading…
Reference in New Issue