summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndré Bargull <andre.bargull@gmail.com>2017-05-02 12:09:31 -0700
committerAndré Bargull <andre.bargull@gmail.com>2017-05-02 12:09:31 -0700
commit36a8672ae63945f363f5b1fb5071c7fb20abb0dc (patch)
tree8948b8b01b6f71aae971a9a32d4849339d9433a8 /src
parentd887db88ee58d633e355e1e2b94d7256742ce536 (diff)
downloadqtdeclarative-testsuites-36a8672ae63945f363f5b1fb5071c7fb20abb0dc.tar.gz
Add templates for escaped and unescaped 'yield' and 'await' as identifiers
Diffstat (limited to 'src')
-rw-r--r--src/async-functions/await-as-binding-identifier-escaped.case21
-rw-r--r--src/async-functions/await-as-binding-identifier.case21
-rw-r--r--src/async-functions/await-as-identifier-reference-escaped.case21
-rw-r--r--src/async-functions/await-as-identifier-reference.case21
-rw-r--r--src/async-functions/await-as-label-identifier-escaped.case21
-rw-r--r--src/async-functions/await-as-label-identifier.case21
-rw-r--r--src/async-functions/syntax/async-arrow.template22
-rw-r--r--src/async-functions/syntax/async-class-decl-method.template24
-rw-r--r--src/async-functions/syntax/async-class-decl-static-method.template24
-rw-r--r--src/async-functions/syntax/async-class-expr-method.template24
-rw-r--r--src/async-functions/syntax/async-class-expr-static-method.template24
-rw-r--r--src/async-functions/syntax/async-declaration.template18
-rw-r--r--src/async-functions/syntax/async-expression-named.template18
-rw-r--r--src/async-functions/syntax/async-expression.template18
-rw-r--r--src/async-functions/syntax/async-obj-method.template20
-rw-r--r--src/async-generators/await-as-binding-identifier-escaped.case21
-rw-r--r--src/async-generators/await-as-binding-identifier.case21
-rw-r--r--src/async-generators/await-as-identifier-reference-escaped.case21
-rw-r--r--src/async-generators/await-as-identifier-reference.case21
-rw-r--r--src/async-generators/await-as-label-identifier-escaped.case21
-rw-r--r--src/async-generators/await-as-label-identifier.case21
-rw-r--r--src/async-generators/syntax/async-class-decl-method.template24
-rw-r--r--src/async-generators/syntax/async-class-decl-static-method.template24
-rw-r--r--src/async-generators/syntax/async-class-expr-method.template24
-rw-r--r--src/async-generators/syntax/async-class-expr-static-method.template24
-rw-r--r--src/async-generators/syntax/async-declaration.template19
-rw-r--r--src/async-generators/syntax/async-expression-named.template19
-rw-r--r--src/async-generators/syntax/async-expression.template19
-rw-r--r--src/async-generators/syntax/async-obj-method.template19
-rw-r--r--src/async-generators/yield-as-binding-identifier-escaped.case21
-rw-r--r--src/async-generators/yield-as-binding-identifier.case21
-rw-r--r--src/async-generators/yield-as-identifier-reference-escaped.case21
-rw-r--r--src/async-generators/yield-as-identifier-reference.case21
-rw-r--r--src/async-generators/yield-as-label-identifier-escaped.case21
-rw-r--r--src/async-generators/yield-as-label-identifier.case21
-rw-r--r--src/generators/syntax/class-decl-method.template22
-rw-r--r--src/generators/syntax/class-decl-static-method.template22
-rw-r--r--src/generators/syntax/class-expr-method.template22
-rw-r--r--src/generators/syntax/class-expr-static-method.template22
-rw-r--r--src/generators/syntax/declaration.template16
-rw-r--r--src/generators/syntax/expression-named.template16
-rw-r--r--src/generators/syntax/expression.template16
-rw-r--r--src/generators/syntax/obj-method.template18
-rw-r--r--src/generators/yield-as-binding-identifier-escaped.case21
-rw-r--r--src/generators/yield-as-binding-identifier.case21
-rw-r--r--src/generators/yield-as-identifier-reference-escaped.case21
-rw-r--r--src/generators/yield-as-identifier-reference.case21
-rw-r--r--src/generators/yield-as-label-identifier-escaped.case21
-rw-r--r--src/generators/yield-as-label-identifier.case21
49 files changed, 1022 insertions, 0 deletions
diff --git a/src/async-functions/await-as-binding-identifier-escaped.case b/src/async-functions/await-as-binding-identifier-escaped.case
new file mode 100644
index 000000000..a17c98456
--- /dev/null
+++ b/src/async-functions/await-as-binding-identifier-escaped.case
@@ -0,0 +1,21 @@
+// Copyright (C) 2017 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-identifiers-static-semantics-early-errors
+desc: >
+ await is a reserved keyword within generator function bodies and may not be
+ used as a binding identifier.
+info: |
+ BindingIdentifier : Identifier
+
+ It is a Syntax Error if this production has a [Await] parameter and
+ StringValue of Identifier is "await".
+negative:
+ phase: early
+ type: SyntaxError
+template: syntax
+---*/
+
+//- body
+ var \u0061wait;
diff --git a/src/async-functions/await-as-binding-identifier.case b/src/async-functions/await-as-binding-identifier.case
new file mode 100644
index 000000000..94105c794
--- /dev/null
+++ b/src/async-functions/await-as-binding-identifier.case
@@ -0,0 +1,21 @@
+// Copyright (C) 2017 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-identifiers-static-semantics-early-errors
+desc: >
+ await is a reserved keyword within generator function bodies and may not be
+ used as a binding identifier.
+info: |
+ BindingIdentifier : Identifier
+
+ It is a Syntax Error if this production has a [Await] parameter and
+ StringValue of Identifier is "await".
+negative:
+ phase: early
+ type: SyntaxError
+template: syntax
+---*/
+
+//- body
+ var await;
diff --git a/src/async-functions/await-as-identifier-reference-escaped.case b/src/async-functions/await-as-identifier-reference-escaped.case
new file mode 100644
index 000000000..06a3799ea
--- /dev/null
+++ b/src/async-functions/await-as-identifier-reference-escaped.case
@@ -0,0 +1,21 @@
+// Copyright (C) 2017 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-identifiers-static-semantics-early-errors
+desc: >
+ await is a reserved keyword within generator function bodies and may not be
+ used as an identifier reference.
+info: |
+ IdentifierReference : Identifier
+
+ It is a Syntax Error if this production has a [Await] parameter and
+ StringValue of Identifier is "await".
+negative:
+ phase: early
+ type: SyntaxError
+template: syntax
+---*/
+
+//- body
+ void \u0061wait;
diff --git a/src/async-functions/await-as-identifier-reference.case b/src/async-functions/await-as-identifier-reference.case
new file mode 100644
index 000000000..158303b71
--- /dev/null
+++ b/src/async-functions/await-as-identifier-reference.case
@@ -0,0 +1,21 @@
+// Copyright (C) 2017 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-identifiers-static-semantics-early-errors
+desc: >
+ await is a reserved keyword within generator function bodies and may not be
+ used as an identifier reference.
+info: |
+ IdentifierReference : Identifier
+
+ It is a Syntax Error if this production has a [Await] parameter and
+ StringValue of Identifier is "await".
+negative:
+ phase: early
+ type: SyntaxError
+template: syntax
+---*/
+
+//- body
+ void await;
diff --git a/src/async-functions/await-as-label-identifier-escaped.case b/src/async-functions/await-as-label-identifier-escaped.case
new file mode 100644
index 000000000..efcb5c394
--- /dev/null
+++ b/src/async-functions/await-as-label-identifier-escaped.case
@@ -0,0 +1,21 @@
+// Copyright (C) 2017 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-identifiers-static-semantics-early-errors
+desc: >
+ await is a reserved keyword within generator function bodies and may not be
+ used as a label identifier.
+info: |
+ LabelIdentifier : Identifier
+
+ It is a Syntax Error if this production has a [Await] parameter and
+ StringValue of Identifier is "await".
+negative:
+ phase: early
+ type: SyntaxError
+template: syntax
+---*/
+
+//- body
+ \u0061wait: ;
diff --git a/src/async-functions/await-as-label-identifier.case b/src/async-functions/await-as-label-identifier.case
new file mode 100644
index 000000000..ba7ba2a7c
--- /dev/null
+++ b/src/async-functions/await-as-label-identifier.case
@@ -0,0 +1,21 @@
+// Copyright (C) 2017 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-identifiers-static-semantics-early-errors
+desc: >
+ await is a reserved keyword within generator function bodies and may not be
+ used as a label identifier.
+info: |
+ LabelIdentifier : Identifier
+
+ It is a Syntax Error if this production has a [Await] parameter and
+ StringValue of Identifier is "await".
+negative:
+ phase: early
+ type: SyntaxError
+template: syntax
+---*/
+
+//- body
+ await: ;
diff --git a/src/async-functions/syntax/async-arrow.template b/src/async-functions/syntax/async-arrow.template
new file mode 100644
index 000000000..14ec6f84c
--- /dev/null
+++ b/src/async-functions/syntax/async-arrow.template
@@ -0,0 +1,22 @@
+// Copyright (C) 2017 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+path: language/expressions/async-arrow-function/
+name: Async arrow function
+esid: prod-AsyncArrowFunction
+info: |
+ Async Arrow Function Definitions
+
+ AsyncArrowFunction[In, Yield, Await]:
+ async [no LineTerminator here] AsyncArrowBindingIdentifier[?Yield] [no LineTerminator here] => AsyncConciseBody[?In]
+ CoverCallExpressionAndAsyncArrowHead[?Yield, ?Await] [no LineTerminator here] => AsyncConciseBody[?In]
+
+ AsyncConciseBody[In]:
+ { AsyncFunctionBody }
+features: [async-functions]
+---*/
+
+async() => {
+ /*{ body }*/
+};
diff --git a/src/async-functions/syntax/async-class-decl-method.template b/src/async-functions/syntax/async-class-decl-method.template
new file mode 100644
index 000000000..812e90199
--- /dev/null
+++ b/src/async-functions/syntax/async-class-decl-method.template
@@ -0,0 +1,24 @@
+// Copyright (C) 2017 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+path: language/statements/class/async-method-
+name: Async method as a ClassDeclaration element
+esid: prod-AsyncMethod
+info: |
+ ClassElement :
+ MethodDefinition
+
+ MethodDefinition :
+ AsyncMethod
+
+ Async Function Definitions
+
+ AsyncMethod :
+ async [no LineTerminator here] PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+features: [async-functions]
+---*/
+
+class C { async method() {
+ /*{ body }*/
+}}
diff --git a/src/async-functions/syntax/async-class-decl-static-method.template b/src/async-functions/syntax/async-class-decl-static-method.template
new file mode 100644
index 000000000..e48f5a253
--- /dev/null
+++ b/src/async-functions/syntax/async-class-decl-static-method.template
@@ -0,0 +1,24 @@
+// Copyright (C) 2017 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+path: language/statements/class/async-method-static-
+name: Static async method as a ClassDeclaration element
+esid: prod-AsyncMethod
+info: |
+ ClassElement :
+ static MethodDefinition
+
+ MethodDefinition :
+ AsyncMethod
+
+ Async Function Definitions
+
+ AsyncMethod :
+ async [no LineTerminator here] PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+features: [async-functions]
+---*/
+
+class C { static async method() {
+ /*{ body }*/
+}}
diff --git a/src/async-functions/syntax/async-class-expr-method.template b/src/async-functions/syntax/async-class-expr-method.template
new file mode 100644
index 000000000..9f7a757b3
--- /dev/null
+++ b/src/async-functions/syntax/async-class-expr-method.template
@@ -0,0 +1,24 @@
+// Copyright (C) 2017 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+path: language/expressions/class/async-method-
+name: Async method as a ClassExpression element
+esid: prod-AsyncMethod
+info: |
+ ClassElement :
+ MethodDefinition
+
+ MethodDefinition :
+ AsyncMethod
+
+ Async Function Definitions
+
+ AsyncMethod :
+ async [no LineTerminator here] PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+features: [async-functions]
+---*/
+
+var C = class { async method() {
+ /*{ body }*/
+}};
diff --git a/src/async-functions/syntax/async-class-expr-static-method.template b/src/async-functions/syntax/async-class-expr-static-method.template
new file mode 100644
index 000000000..3e7d66391
--- /dev/null
+++ b/src/async-functions/syntax/async-class-expr-static-method.template
@@ -0,0 +1,24 @@
+// Copyright (C) 2017 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+path: language/expressions/class/async-method-static-
+name: Static async method as a ClassExpression element
+esid: prod-AsyncMethod
+info: |
+ ClassElement :
+ static MethodDefinition
+
+ MethodDefinition :
+ AsyncMethod
+
+ Async Function Definitions
+
+ AsyncMethod :
+ async [no LineTerminator here] PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+features: [async-functions]
+---*/
+
+var C = class { static async method() {
+ /*{ body }*/
+}};
diff --git a/src/async-functions/syntax/async-declaration.template b/src/async-functions/syntax/async-declaration.template
new file mode 100644
index 000000000..b3fcbd43b
--- /dev/null
+++ b/src/async-functions/syntax/async-declaration.template
@@ -0,0 +1,18 @@
+// Copyright (C) 2017 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+path: language/statements/async-function/
+name: Async function declaration
+esid: prod-AsyncFunctionDeclaration
+info: |
+ Async Function Definitions
+
+ AsyncFunctionDeclaration:
+ async [no LineTerminator here] function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody }
+features: [async-functions]
+---*/
+
+async function fn() {
+ /*{ body }*/
+}
diff --git a/src/async-functions/syntax/async-expression-named.template b/src/async-functions/syntax/async-expression-named.template
new file mode 100644
index 000000000..571d25953
--- /dev/null
+++ b/src/async-functions/syntax/async-expression-named.template
@@ -0,0 +1,18 @@
+// Copyright (C) 2017 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+path: language/expressions/async-function/named-
+name: Named async function expression
+esid: prod-AsyncFunctionExpression
+info: |
+ Async Function Definitions
+
+ AsyncFunctionExpression :
+ async [no LineTerminator here] function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody }
+features: [async-functions]
+---*/
+
+var fn = async function fn() {
+ /*{ body }*/
+};
diff --git a/src/async-functions/syntax/async-expression.template b/src/async-functions/syntax/async-expression.template
new file mode 100644
index 000000000..fb0122e35
--- /dev/null
+++ b/src/async-functions/syntax/async-expression.template
@@ -0,0 +1,18 @@
+// Copyright (C) 2017 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+path: language/expressions/async-function/
+name: Unnamed async function expression
+esid: prod-AsyncFunctionExpression
+info: |
+ Async Function Definitions
+
+ AsyncFunctionExpression :
+ async [no LineTerminator here] function ( FormalParameters ) { AsyncFunctionBody }
+features: [async-functions]
+---*/
+
+var fn = async function () {
+ /*{ body }*/
+};
diff --git a/src/async-functions/syntax/async-obj-method.template b/src/async-functions/syntax/async-obj-method.template
new file mode 100644
index 000000000..a01c56fda
--- /dev/null
+++ b/src/async-functions/syntax/async-obj-method.template
@@ -0,0 +1,20 @@
+// Copyright (C) 2017 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+path: language/expressions/object/method-definition/async-
+name: Async method
+esid: prod-AsyncMethod
+info: |
+ Async Function Definitions
+
+ AsyncMethod :
+ async [no LineTerminator here] PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
+features: [async-functions]
+---*/
+
+var obj = {
+ async method() {
+ /*{ body }*/
+ }
+};
diff --git a/src/async-generators/await-as-binding-identifier-escaped.case b/src/async-generators/await-as-binding-identifier-escaped.case
new file mode 100644
index 000000000..a17c98456
--- /dev/null
+++ b/src/async-generators/await-as-binding-identifier-escaped.case
@@ -0,0 +1,21 @@
+// Copyright (C) 2017 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-identifiers-static-semantics-early-errors
+desc: >
+ await is a reserved keyword within generator function bodies and may not be
+ used as a binding identifier.
+info: |
+ BindingIdentifier : Identifier
+
+ It is a Syntax Error if this production has a [Await] parameter and
+ StringValue of Identifier is "await".
+negative:
+ phase: early
+ type: SyntaxError
+template: syntax
+---*/
+
+//- body
+ var \u0061wait;
diff --git a/src/async-generators/await-as-binding-identifier.case b/src/async-generators/await-as-binding-identifier.case
new file mode 100644
index 000000000..94105c794
--- /dev/null
+++ b/src/async-generators/await-as-binding-identifier.case
@@ -0,0 +1,21 @@
+// Copyright (C) 2017 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-identifiers-static-semantics-early-errors
+desc: >
+ await is a reserved keyword within generator function bodies and may not be
+ used as a binding identifier.
+info: |
+ BindingIdentifier : Identifier
+
+ It is a Syntax Error if this production has a [Await] parameter and
+ StringValue of Identifier is "await".
+negative:
+ phase: early
+ type: SyntaxError
+template: syntax
+---*/
+
+//- body
+ var await;
diff --git a/src/async-generators/await-as-identifier-reference-escaped.case b/src/async-generators/await-as-identifier-reference-escaped.case
new file mode 100644
index 000000000..06a3799ea
--- /dev/null
+++ b/src/async-generators/await-as-identifier-reference-escaped.case
@@ -0,0 +1,21 @@
+// Copyright (C) 2017 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-identifiers-static-semantics-early-errors
+desc: >
+ await is a reserved keyword within generator function bodies and may not be
+ used as an identifier reference.
+info: |
+ IdentifierReference : Identifier
+
+ It is a Syntax Error if this production has a [Await] parameter and
+ StringValue of Identifier is "await".
+negative:
+ phase: early
+ type: SyntaxError
+template: syntax
+---*/
+
+//- body
+ void \u0061wait;
diff --git a/src/async-generators/await-as-identifier-reference.case b/src/async-generators/await-as-identifier-reference.case
new file mode 100644
index 000000000..158303b71
--- /dev/null
+++ b/src/async-generators/await-as-identifier-reference.case
@@ -0,0 +1,21 @@
+// Copyright (C) 2017 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-identifiers-static-semantics-early-errors
+desc: >
+ await is a reserved keyword within generator function bodies and may not be
+ used as an identifier reference.
+info: |
+ IdentifierReference : Identifier
+
+ It is a Syntax Error if this production has a [Await] parameter and
+ StringValue of Identifier is "await".
+negative:
+ phase: early
+ type: SyntaxError
+template: syntax
+---*/
+
+//- body
+ void await;
diff --git a/src/async-generators/await-as-label-identifier-escaped.case b/src/async-generators/await-as-label-identifier-escaped.case
new file mode 100644
index 000000000..efcb5c394
--- /dev/null
+++ b/src/async-generators/await-as-label-identifier-escaped.case
@@ -0,0 +1,21 @@
+// Copyright (C) 2017 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-identifiers-static-semantics-early-errors
+desc: >
+ await is a reserved keyword within generator function bodies and may not be
+ used as a label identifier.
+info: |
+ LabelIdentifier : Identifier
+
+ It is a Syntax Error if this production has a [Await] parameter and
+ StringValue of Identifier is "await".
+negative:
+ phase: early
+ type: SyntaxError
+template: syntax
+---*/
+
+//- body
+ \u0061wait: ;
diff --git a/src/async-generators/await-as-label-identifier.case b/src/async-generators/await-as-label-identifier.case
new file mode 100644
index 000000000..ba7ba2a7c
--- /dev/null
+++ b/src/async-generators/await-as-label-identifier.case
@@ -0,0 +1,21 @@
+// Copyright (C) 2017 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-identifiers-static-semantics-early-errors
+desc: >
+ await is a reserved keyword within generator function bodies and may not be
+ used as a label identifier.
+info: |
+ LabelIdentifier : Identifier
+
+ It is a Syntax Error if this production has a [Await] parameter and
+ StringValue of Identifier is "await".
+negative:
+ phase: early
+ type: SyntaxError
+template: syntax
+---*/
+
+//- body
+ await: ;
diff --git a/src/async-generators/syntax/async-class-decl-method.template b/src/async-generators/syntax/async-class-decl-method.template
new file mode 100644
index 000000000..e6c2a7017
--- /dev/null
+++ b/src/async-generators/syntax/async-class-decl-method.template
@@ -0,0 +1,24 @@
+// Copyright (C) 2017 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+path: language/statements/class/async-gen-method-
+name: Async Generator method as a ClassDeclaration element
+esid: prod-AsyncGeneratorMethod
+info: |
+ ClassElement :
+ MethodDefinition
+
+ MethodDefinition :
+ AsyncGeneratorMethod
+
+ Async Generator Function Definitions
+
+ AsyncGeneratorMethod :
+ async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) { AsyncGeneratorBody }
+features: [async-iteration]
+---*/
+
+class C { async *gen() {
+ /*{ body }*/
+}}
diff --git a/src/async-generators/syntax/async-class-decl-static-method.template b/src/async-generators/syntax/async-class-decl-static-method.template
new file mode 100644
index 000000000..d5872bffe
--- /dev/null
+++ b/src/async-generators/syntax/async-class-decl-static-method.template
@@ -0,0 +1,24 @@
+// Copyright (C) 2017 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+path: language/statements/class/async-gen-method-static-
+name: Static async generator method as a ClassDeclaration element
+esid: prod-AsyncGeneratorMethod
+info: |
+ ClassElement :
+ static MethodDefinition
+
+ MethodDefinition :
+ AsyncGeneratorMethod
+
+ Async Generator Function Definitions
+
+ AsyncGeneratorMethod :
+ async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) { AsyncGeneratorBody }
+features: [async-iteration]
+---*/
+
+class C { static async *gen() {
+ /*{ body }*/
+}}
diff --git a/src/async-generators/syntax/async-class-expr-method.template b/src/async-generators/syntax/async-class-expr-method.template
new file mode 100644
index 000000000..8f0dac898
--- /dev/null
+++ b/src/async-generators/syntax/async-class-expr-method.template
@@ -0,0 +1,24 @@
+// Copyright (C) 2017 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+path: language/expressions/class/async-gen-method-
+name: Async generator method as a ClassExpression element
+esid: prod-AsyncGeneratorMethod
+info: |
+ ClassElement :
+ MethodDefinition
+
+ MethodDefinition :
+ AsyncGeneratorMethod
+
+ Async Generator Function Definitions
+
+ AsyncGeneratorMethod :
+ async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) { AsyncGeneratorBody }
+features: [async-iteration]
+---*/
+
+var C = class { async *gen() {
+ /*{ body }*/
+}};
diff --git a/src/async-generators/syntax/async-class-expr-static-method.template b/src/async-generators/syntax/async-class-expr-static-method.template
new file mode 100644
index 000000000..aab90d484
--- /dev/null
+++ b/src/async-generators/syntax/async-class-expr-static-method.template
@@ -0,0 +1,24 @@
+// Copyright (C) 2017 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+path: language/expressions/class/async-gen-method-static-
+name: Static async generator method as a ClassExpression element
+esid: prod-AsyncGeneratorMethod
+info: |
+ ClassElement :
+ static MethodDefinition
+
+ MethodDefinition :
+ AsyncGeneratorMethod
+
+ Async Generator Function Definitions
+
+ AsyncGeneratorMethod :
+ async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) { AsyncGeneratorBody }
+features: [async-iteration]
+---*/
+
+var C = class { static async *gen() {
+ /*{ body }*/
+}};
diff --git a/src/async-generators/syntax/async-declaration.template b/src/async-generators/syntax/async-declaration.template
new file mode 100644
index 000000000..d2a26018c
--- /dev/null
+++ b/src/async-generators/syntax/async-declaration.template
@@ -0,0 +1,19 @@
+// Copyright (C) 2017 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+path: language/statements/async-generator/
+name: Async generator Function declaration
+esid: prod-AsyncGeneratorDeclaration
+info: |
+ Async Generator Function Definitions
+
+ AsyncGeneratorDeclaration:
+ async [no LineTerminator here] function * BindingIdentifier ( FormalParameters ) {
+ AsyncGeneratorBody }
+features: [async-iteration]
+---*/
+
+async function *gen() {
+ /*{ body }*/
+}
diff --git a/src/async-generators/syntax/async-expression-named.template b/src/async-generators/syntax/async-expression-named.template
new file mode 100644
index 000000000..6465d5fa2
--- /dev/null
+++ b/src/async-generators/syntax/async-expression-named.template
@@ -0,0 +1,19 @@
+// Copyright (C) 2017 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+path: language/expressions/async-generator/named-
+name: Named async generator expression
+esid: prod-AsyncGeneratorExpression
+info: |
+ Async Generator Function Definitions
+
+ AsyncGeneratorExpression :
+ async [no LineTerminator here] function * BindingIdentifier ( FormalParameters ) {
+ AsyncGeneratorBody }
+features: [async-iteration]
+---*/
+
+var gen = async function *g() {
+ /*{ body }*/
+};
diff --git a/src/async-generators/syntax/async-expression.template b/src/async-generators/syntax/async-expression.template
new file mode 100644
index 000000000..eb23634ee
--- /dev/null
+++ b/src/async-generators/syntax/async-expression.template
@@ -0,0 +1,19 @@
+// Copyright (C) 2017 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+path: language/expressions/async-generator/
+name: Unnamed async generator expression
+esid: prod-AsyncGeneratorExpression
+info: |
+ Async Generator Function Definitions
+
+ AsyncGeneratorExpression :
+ async [no LineTerminator here] function * BindingIdentifier ( FormalParameters ) {
+ AsyncGeneratorBody }
+features: [async-iteration]
+---*/
+
+var gen = async function *() {
+ /*{ body }*/
+};
diff --git a/src/async-generators/syntax/async-obj-method.template b/src/async-generators/syntax/async-obj-method.template
new file mode 100644
index 000000000..85848c2f6
--- /dev/null
+++ b/src/async-generators/syntax/async-obj-method.template
@@ -0,0 +1,19 @@
+// Copyright (C) 2017 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+path: language/expressions/object/method-definition/async-gen-
+name: Async generator method
+esid: prod-AsyncGeneratorMethod
+info: |
+ Async Generator Function Definitions
+
+ AsyncGeneratorMethod :
+ async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) { AsyncGeneratorBody }
+features: [async-iteration]
+---*/
+
+var obj = {
+ async *method() {
+ /*{ body }*/
+ }
+};
diff --git a/src/async-generators/yield-as-binding-identifier-escaped.case b/src/async-generators/yield-as-binding-identifier-escaped.case
new file mode 100644
index 000000000..824622585
--- /dev/null
+++ b/src/async-generators/yield-as-binding-identifier-escaped.case
@@ -0,0 +1,21 @@
+// Copyright (C) 2017 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-identifiers-static-semantics-early-errors
+desc: >
+ yield is a reserved keyword within generator function bodies and may not be
+ used as a binding identifier.
+info: |
+ BindingIdentifier : Identifier
+
+ It is a Syntax Error if this production has a [Yield] parameter and
+ StringValue of Identifier is "yield".
+negative:
+ phase: early
+ type: SyntaxError
+template: syntax
+---*/
+
+//- body
+ var yi\u0065ld;
diff --git a/src/async-generators/yield-as-binding-identifier.case b/src/async-generators/yield-as-binding-identifier.case
new file mode 100644
index 000000000..e66e47a80
--- /dev/null
+++ b/src/async-generators/yield-as-binding-identifier.case
@@ -0,0 +1,21 @@
+// Copyright (C) 2017 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-identifiers-static-semantics-early-errors
+desc: >
+ yield is a reserved keyword within generator function bodies and may not be
+ used as a binding identifier.
+info: |
+ BindingIdentifier : Identifier
+
+ It is a Syntax Error if this production has a [Yield] parameter and
+ StringValue of Identifier is "yield".
+negative:
+ phase: early
+ type: SyntaxError
+template: syntax
+---*/
+
+//- body
+ var yield;
diff --git a/src/async-generators/yield-as-identifier-reference-escaped.case b/src/async-generators/yield-as-identifier-reference-escaped.case
new file mode 100644
index 000000000..13bbc6c1c
--- /dev/null
+++ b/src/async-generators/yield-as-identifier-reference-escaped.case
@@ -0,0 +1,21 @@
+// Copyright (C) 2017 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-identifiers-static-semantics-early-errors
+desc: >
+ yield is a reserved keyword within generator function bodies and may not be
+ used as an identifier reference.
+info: |
+ IdentifierReference : Identifier
+
+ It is a Syntax Error if this production has a [Yield] parameter and
+ StringValue of Identifier is "yield".
+negative:
+ phase: early
+ type: SyntaxError
+template: syntax
+---*/
+
+//- body
+ void yi\u0065ld;
diff --git a/src/async-generators/yield-as-identifier-reference.case b/src/async-generators/yield-as-identifier-reference.case
new file mode 100644
index 000000000..35f6cfa41
--- /dev/null
+++ b/src/async-generators/yield-as-identifier-reference.case
@@ -0,0 +1,21 @@
+// Copyright (C) 2017 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-identifiers-static-semantics-early-errors
+desc: >
+ yield is a reserved keyword within generator function bodies and may not be
+ used as an identifier reference.
+info: |
+ IdentifierReference : Identifier
+
+ It is a Syntax Error if this production has a [Yield] parameter and
+ StringValue of Identifier is "yield".
+negative:
+ phase: early
+ type: SyntaxError
+template: syntax
+---*/
+
+//- body
+ void yield;
diff --git a/src/async-generators/yield-as-label-identifier-escaped.case b/src/async-generators/yield-as-label-identifier-escaped.case
new file mode 100644
index 000000000..0da82aaff
--- /dev/null
+++ b/src/async-generators/yield-as-label-identifier-escaped.case
@@ -0,0 +1,21 @@
+// Copyright (C) 2017 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-identifiers-static-semantics-early-errors
+desc: >
+ yield is a reserved keyword within generator function bodies and may not be
+ used as a label identifier.
+info: |
+ LabelIdentifier : Identifier
+
+ It is a Syntax Error if this production has a [Yield] parameter and
+ StringValue of Identifier is "yield".
+negative:
+ phase: early
+ type: SyntaxError
+template: syntax
+---*/
+
+//- body
+ yi\u0065ld: ;
diff --git a/src/async-generators/yield-as-label-identifier.case b/src/async-generators/yield-as-label-identifier.case
new file mode 100644
index 000000000..49665658a
--- /dev/null
+++ b/src/async-generators/yield-as-label-identifier.case
@@ -0,0 +1,21 @@
+// Copyright (C) 2017 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-identifiers-static-semantics-early-errors
+desc: >
+ yield is a reserved keyword within generator function bodies and may not be
+ used as a label identifier.
+info: |
+ LabelIdentifier : Identifier
+
+ It is a Syntax Error if this production has a [Yield] parameter and
+ StringValue of Identifier is "yield".
+negative:
+ phase: early
+ type: SyntaxError
+template: syntax
+---*/
+
+//- body
+ yield: ;
diff --git a/src/generators/syntax/class-decl-method.template b/src/generators/syntax/class-decl-method.template
new file mode 100644
index 000000000..0dd8b66af
--- /dev/null
+++ b/src/generators/syntax/class-decl-method.template
@@ -0,0 +1,22 @@
+// Copyright (C) 2017 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+path: language/statements/class/gen-method-
+name: Generator method as a ClassDeclaration element
+esid: prod-GeneratorMethod
+info: |
+ ClassElement :
+ MethodDefinition
+
+ MethodDefinition :
+ GeneratorMethod
+
+ 14.4 Generator Function Definitions
+
+ GeneratorMethod :
+ * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
+---*/
+
+class C { *gen() {
+ /*{ body }*/
+}}
diff --git a/src/generators/syntax/class-decl-static-method.template b/src/generators/syntax/class-decl-static-method.template
new file mode 100644
index 000000000..217e85491
--- /dev/null
+++ b/src/generators/syntax/class-decl-static-method.template
@@ -0,0 +1,22 @@
+// Copyright (C) 2017 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+path: language/statements/class/gen-method-static-
+name: Static generator method as a ClassDeclaration element
+esid: prod-GeneratorMethod
+info: |
+ ClassElement :
+ static MethodDefinition
+
+ MethodDefinition :
+ GeneratorMethod
+
+ 14.4 Generator Function Definitions
+
+ GeneratorMethod :
+ * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
+---*/
+
+class C {static *gen() {
+ /*{ body }*/
+}}
diff --git a/src/generators/syntax/class-expr-method.template b/src/generators/syntax/class-expr-method.template
new file mode 100644
index 000000000..9ee72a08d
--- /dev/null
+++ b/src/generators/syntax/class-expr-method.template
@@ -0,0 +1,22 @@
+// Copyright (C) 2017 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+path: language/expressions/class/gen-method-
+name: Generator method as a ClassExpression element
+esid: prod-GeneratorMethod
+info: |
+ ClassElement :
+ MethodDefinition
+
+ MethodDefinition :
+ GeneratorMethod
+
+ 14.4 Generator Function Definitions
+
+ GeneratorMethod :
+ * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
+---*/
+
+var C = class {*gen() {
+ /*{ body }*/
+}};
diff --git a/src/generators/syntax/class-expr-static-method.template b/src/generators/syntax/class-expr-static-method.template
new file mode 100644
index 000000000..c6dd24225
--- /dev/null
+++ b/src/generators/syntax/class-expr-static-method.template
@@ -0,0 +1,22 @@
+// Copyright (C) 2017 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+path: language/expressions/class/gen-method-static-
+name: Static generator method as a ClassExpression element
+esid: prod-GeneratorMethod
+info: |
+ ClassElement :
+ static MethodDefinition
+
+ MethodDefinition :
+ GeneratorMethod
+
+ 14.4 Generator Function Definitions
+
+ GeneratorMethod :
+ * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
+---*/
+
+var C = class { static *gen() {
+ /*{ body }*/
+}};
diff --git a/src/generators/syntax/declaration.template b/src/generators/syntax/declaration.template
new file mode 100644
index 000000000..99b003f28
--- /dev/null
+++ b/src/generators/syntax/declaration.template
@@ -0,0 +1,16 @@
+// Copyright (C) 2017 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+path: language/statements/generators/
+name: Generator Function declaration
+esid: prod-GeneratorDeclaration
+info: |
+ 14.4 Generator Function Definitions
+
+ GeneratorDeclaration :
+ function * BindingIdentifier ( FormalParameters ) { GeneratorBody }
+---*/
+
+function *gen() {
+ /*{ body }*/
+}
diff --git a/src/generators/syntax/expression-named.template b/src/generators/syntax/expression-named.template
new file mode 100644
index 000000000..17cd90d22
--- /dev/null
+++ b/src/generators/syntax/expression-named.template
@@ -0,0 +1,16 @@
+// Copyright (C) 2017 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+path: language/expressions/generators/named-
+name: Named generator expression
+esid: prod-GeneratorExpression
+info: |
+ 14.4 Generator Function Definitions
+
+ GeneratorExpression:
+ function * BindingIdentifier opt ( FormalParameters ) { GeneratorBody }
+---*/
+
+var gen = function *g() {
+ /*{ body }*/
+};
diff --git a/src/generators/syntax/expression.template b/src/generators/syntax/expression.template
new file mode 100644
index 000000000..03622695d
--- /dev/null
+++ b/src/generators/syntax/expression.template
@@ -0,0 +1,16 @@
+// Copyright (C) 2017 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+path: language/expressions/generators/
+name: Unnamed generator expression
+esid: prod-GeneratorExpression
+info: |
+ 14.4 Generator Function Definitions
+
+ GeneratorExpression:
+ function * BindingIdentifier opt ( FormalParameters ) { GeneratorBody }
+---*/
+
+var gen = function *() {
+ /*{ body }*/
+};
diff --git a/src/generators/syntax/obj-method.template b/src/generators/syntax/obj-method.template
new file mode 100644
index 000000000..4da204356
--- /dev/null
+++ b/src/generators/syntax/obj-method.template
@@ -0,0 +1,18 @@
+// Copyright (C) 2017 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+path: language/expressions/object/method-definition/gen-
+name: Generator method
+esid: prod-GeneratorMethod
+info: |
+ 14.4 Generator Function Definitions
+
+ GeneratorMethod[Yield, Await]:
+ * PropertyName[?Yield, ?Await] ( UniqueFormalParameters[+Yield, ~Await] ) { GeneratorBody }
+---*/
+
+var obj = {
+ *method() {
+ /*{ body }*/
+ }
+};
diff --git a/src/generators/yield-as-binding-identifier-escaped.case b/src/generators/yield-as-binding-identifier-escaped.case
new file mode 100644
index 000000000..824622585
--- /dev/null
+++ b/src/generators/yield-as-binding-identifier-escaped.case
@@ -0,0 +1,21 @@
+// Copyright (C) 2017 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-identifiers-static-semantics-early-errors
+desc: >
+ yield is a reserved keyword within generator function bodies and may not be
+ used as a binding identifier.
+info: |
+ BindingIdentifier : Identifier
+
+ It is a Syntax Error if this production has a [Yield] parameter and
+ StringValue of Identifier is "yield".
+negative:
+ phase: early
+ type: SyntaxError
+template: syntax
+---*/
+
+//- body
+ var yi\u0065ld;
diff --git a/src/generators/yield-as-binding-identifier.case b/src/generators/yield-as-binding-identifier.case
new file mode 100644
index 000000000..e66e47a80
--- /dev/null
+++ b/src/generators/yield-as-binding-identifier.case
@@ -0,0 +1,21 @@
+// Copyright (C) 2017 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-identifiers-static-semantics-early-errors
+desc: >
+ yield is a reserved keyword within generator function bodies and may not be
+ used as a binding identifier.
+info: |
+ BindingIdentifier : Identifier
+
+ It is a Syntax Error if this production has a [Yield] parameter and
+ StringValue of Identifier is "yield".
+negative:
+ phase: early
+ type: SyntaxError
+template: syntax
+---*/
+
+//- body
+ var yield;
diff --git a/src/generators/yield-as-identifier-reference-escaped.case b/src/generators/yield-as-identifier-reference-escaped.case
new file mode 100644
index 000000000..13bbc6c1c
--- /dev/null
+++ b/src/generators/yield-as-identifier-reference-escaped.case
@@ -0,0 +1,21 @@
+// Copyright (C) 2017 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-identifiers-static-semantics-early-errors
+desc: >
+ yield is a reserved keyword within generator function bodies and may not be
+ used as an identifier reference.
+info: |
+ IdentifierReference : Identifier
+
+ It is a Syntax Error if this production has a [Yield] parameter and
+ StringValue of Identifier is "yield".
+negative:
+ phase: early
+ type: SyntaxError
+template: syntax
+---*/
+
+//- body
+ void yi\u0065ld;
diff --git a/src/generators/yield-as-identifier-reference.case b/src/generators/yield-as-identifier-reference.case
new file mode 100644
index 000000000..35f6cfa41
--- /dev/null
+++ b/src/generators/yield-as-identifier-reference.case
@@ -0,0 +1,21 @@
+// Copyright (C) 2017 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-identifiers-static-semantics-early-errors
+desc: >
+ yield is a reserved keyword within generator function bodies and may not be
+ used as an identifier reference.
+info: |
+ IdentifierReference : Identifier
+
+ It is a Syntax Error if this production has a [Yield] parameter and
+ StringValue of Identifier is "yield".
+negative:
+ phase: early
+ type: SyntaxError
+template: syntax
+---*/
+
+//- body
+ void yield;
diff --git a/src/generators/yield-as-label-identifier-escaped.case b/src/generators/yield-as-label-identifier-escaped.case
new file mode 100644
index 000000000..0da82aaff
--- /dev/null
+++ b/src/generators/yield-as-label-identifier-escaped.case
@@ -0,0 +1,21 @@
+// Copyright (C) 2017 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-identifiers-static-semantics-early-errors
+desc: >
+ yield is a reserved keyword within generator function bodies and may not be
+ used as a label identifier.
+info: |
+ LabelIdentifier : Identifier
+
+ It is a Syntax Error if this production has a [Yield] parameter and
+ StringValue of Identifier is "yield".
+negative:
+ phase: early
+ type: SyntaxError
+template: syntax
+---*/
+
+//- body
+ yi\u0065ld: ;
diff --git a/src/generators/yield-as-label-identifier.case b/src/generators/yield-as-label-identifier.case
new file mode 100644
index 000000000..49665658a
--- /dev/null
+++ b/src/generators/yield-as-label-identifier.case
@@ -0,0 +1,21 @@
+// Copyright (C) 2017 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-identifiers-static-semantics-early-errors
+desc: >
+ yield is a reserved keyword within generator function bodies and may not be
+ used as a label identifier.
+info: |
+ LabelIdentifier : Identifier
+
+ It is a Syntax Error if this production has a [Yield] parameter and
+ StringValue of Identifier is "yield".
+negative:
+ phase: early
+ type: SyntaxError
+template: syntax
+---*/
+
+//- body
+ yield: ;