summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRick Waldron <waldron.rick@gmail.com>2017-04-06 11:42:04 -0400
committerGitHub <noreply@github.com>2017-04-06 11:42:04 -0400
commit01ce88b588a415dde164f496ae8ea01840866157 (patch)
tree0a9daf5076b0e69d6d29f0b04be5a9874c271a88 /src
parentb0e921ff45616a3ab6ad98005a4360ee555889dc (diff)
parent4459447eb7988dadbf9326f8081b85cf2c370158 (diff)
downloadqtdeclarative-testsuites-01ce88b588a415dde164f496ae8ea01840866157.tar.gz
Merge pull request #922 from leobalter/async-gen-templates-dstr-errors
Add async generator error templates for destructuring binding
Diffstat (limited to 'src')
-rw-r--r--src/dstr-binding/error/async-gen-func-decl-dflt.template25
-rw-r--r--src/dstr-binding/error/async-gen-func-decl.template25
-rw-r--r--src/dstr-binding/error/async-gen-func-expr-dflt.template25
-rw-r--r--src/dstr-binding/error/async-gen-func-expr.template26
-rw-r--r--src/dstr-binding/error/async-gen-func-named-expr-dflt.template26
-rw-r--r--src/dstr-binding/error/async-gen-func-named-expr.template26
-rw-r--r--src/dstr-binding/error/async-gen-meth.template32
-rw-r--r--src/dstr-binding/error/async-gen-method-dflt.template32
-rw-r--r--src/dstr-binding/error/cls-decl-async-gen-meth-dflt.template52
-rw-r--r--src/dstr-binding/error/cls-decl-async-gen-meth-static-dflt.template52
-rw-r--r--src/dstr-binding/error/cls-decl-async-gen-meth-static.template52
-rw-r--r--src/dstr-binding/error/cls-decl-async-gen-meth.template52
-rw-r--r--src/dstr-binding/error/cls-expr-async-gen-meth-dflt.template53
-rw-r--r--src/dstr-binding/error/cls-expr-async-gen-meth-static-dflt.template53
-rw-r--r--src/dstr-binding/error/cls-expr-async-gen-meth-static.template53
-rw-r--r--src/dstr-binding/error/cls-expr-async-gen-meth.template53
16 files changed, 637 insertions, 0 deletions
diff --git a/src/dstr-binding/error/async-gen-func-decl-dflt.template b/src/dstr-binding/error/async-gen-func-decl-dflt.template
new file mode 100644
index 000000000..73788c257
--- /dev/null
+++ b/src/dstr-binding/error/async-gen-func-decl-dflt.template
@@ -0,0 +1,25 @@
+// 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/dstr-dflt-
+name: async generator function declaration (default parameter)
+esid: sec-asyncgenerator-definitions-instantiatefunctionobject
+features: [async-iteration]
+info: |
+ AsyncGeneratorDeclaration : async [no LineTerminator here] function * BindingIdentifier
+ ( FormalParameters ) { AsyncGeneratorBody }
+
+ [...]
+ 3. Let F be ! AsyncGeneratorFunctionCreate(Normal, FormalParameters, AsyncGeneratorBody,
+ scope, strict).
+ [...]
+---*/
+
+async function* f(/*{ elems }*/ = /*{ vals }*/) {
+ /*{ body }*/
+};
+
+assert.throws(/*{ error }*/, function() {
+ f();
+});
diff --git a/src/dstr-binding/error/async-gen-func-decl.template b/src/dstr-binding/error/async-gen-func-decl.template
new file mode 100644
index 000000000..50e3ca2c7
--- /dev/null
+++ b/src/dstr-binding/error/async-gen-func-decl.template
@@ -0,0 +1,25 @@
+// 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/dstr-
+name: async generator function declaration
+esid: sec-asyncgenerator-definitions-instantiatefunctionobject
+features: [async-iteration]
+info: |
+ AsyncGeneratorDeclaration : async [no LineTerminator here] function * BindingIdentifier
+ ( FormalParameters ) { AsyncGeneratorBody }
+
+ [...]
+ 3. Let F be ! AsyncGeneratorFunctionCreate(Normal, FormalParameters, AsyncGeneratorBody,
+ scope, strict).
+ [...]
+---*/
+
+async function* f(/*{ elems }*/) {
+ /*{ body }*/
+};
+
+assert.throws(/*{ error }*/, function() {
+ f(/*{ vals }*/);
+});
diff --git a/src/dstr-binding/error/async-gen-func-expr-dflt.template b/src/dstr-binding/error/async-gen-func-expr-dflt.template
new file mode 100644
index 000000000..c7c9d3457
--- /dev/null
+++ b/src/dstr-binding/error/async-gen-func-expr-dflt.template
@@ -0,0 +1,25 @@
+// 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/dstr-dflt-
+name: async generator function expression (default parameter)
+esid: sec-asyncgenerator-definitions-evaluation
+features: [async-iteration]
+info: |
+ AsyncGeneratorExpression : async [no LineTerminator here] function * ( FormalParameters ) {
+ AsyncGeneratorBody }
+
+ [...]
+ 3. Let closure be ! AsyncGeneratorFunctionCreate(Normal, FormalParameters,
+ AsyncGeneratorBody, scope, strict).
+ [...]
+---*/
+
+var f = async function*(/*{ elems }*/ = /*{ vals }*/) {
+ /*{ body }*/
+};
+
+assert.throws(/*{ error }*/, function() {
+ f();
+});
diff --git a/src/dstr-binding/error/async-gen-func-expr.template b/src/dstr-binding/error/async-gen-func-expr.template
new file mode 100644
index 000000000..8da6fd8cd
--- /dev/null
+++ b/src/dstr-binding/error/async-gen-func-expr.template
@@ -0,0 +1,26 @@
+// 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/dstr-
+name: async generator function expression
+esid: sec-asyncgenerator-definitions-evaluation
+features: [async-iteration]
+info: |
+ AsyncGeneratorExpression : async [no LineTerminator here] function * ( FormalParameters ) {
+ AsyncGeneratorBody }
+
+ [...]
+ 3. Let closure be ! AsyncGeneratorFunctionCreate(Normal, FormalParameters,
+ AsyncGeneratorBody, scope, strict).
+ [...]
+---*/
+
+var f;
+f = async function*(/*{ elems }*/) {
+ /*{ body }*/
+};
+
+assert.throws(/*{ error }*/, function() {
+ f(/*{ vals }*/);
+});
diff --git a/src/dstr-binding/error/async-gen-func-named-expr-dflt.template b/src/dstr-binding/error/async-gen-func-named-expr-dflt.template
new file mode 100644
index 000000000..8cb7da780
--- /dev/null
+++ b/src/dstr-binding/error/async-gen-func-named-expr-dflt.template
@@ -0,0 +1,26 @@
+// 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/dstr-named-dflt-
+name: async generator named function expression (default parameter)
+esid: sec-asyncgenerator-definitions-evaluation
+features: [async-iteration]
+info: |
+ AsyncGeneratorExpression : async [no LineTerminator here] function * BindingIdentifier
+ ( FormalParameters ) { AsyncGeneratorBody }
+
+ [...]
+ 7. Let closure be ! AsyncGeneratorFunctionCreate(Normal, FormalParameters,
+ AsyncGeneratorBody, funcEnv, strict).
+ [...]
+---*/
+
+var f;
+f = async function* g(/*{ elems }*/ = /*{ vals }*/) {
+ /*{ body }*/
+};
+
+assert.throws(/*{ error }*/, function() {
+ f();
+});
diff --git a/src/dstr-binding/error/async-gen-func-named-expr.template b/src/dstr-binding/error/async-gen-func-named-expr.template
new file mode 100644
index 000000000..cf9176ff2
--- /dev/null
+++ b/src/dstr-binding/error/async-gen-func-named-expr.template
@@ -0,0 +1,26 @@
+// 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/dstr-named-
+name: async generator named function expression
+esid: sec-asyncgenerator-definitions-evaluation
+features: [async-iteration]
+info: |
+ AsyncGeneratorExpression : async [no LineTerminator here] function * BindingIdentifier
+ ( FormalParameters ) { AsyncGeneratorBody }
+
+ [...]
+ 7. Let closure be ! AsyncGeneratorFunctionCreate(Normal, FormalParameters,
+ AsyncGeneratorBody, funcEnv, strict).
+ [...]
+---*/
+
+var f;
+f = async function* g(/*{ elems }*/) {
+ /*{ body }*/
+};
+
+assert.throws(/*{ error }*/, function() {
+ f(/*{ vals }*/);
+});
diff --git a/src/dstr-binding/error/async-gen-meth.template b/src/dstr-binding/error/async-gen-meth.template
new file mode 100644
index 000000000..a98c034f7
--- /dev/null
+++ b/src/dstr-binding/error/async-gen-meth.template
@@ -0,0 +1,32 @@
+// 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/dstr-async-gen-meth-
+name: async generator method
+esid: sec-asyncgenerator-definitions-propertydefinitionevaluation
+features: [async-iteration]
+info: |
+ AsyncGeneratorMethod :
+ async [no LineTerminator here] * PropertyName ( UniqueFormalParameters )
+ { AsyncGeneratorBody }
+
+ 1. Let propKey be the result of evaluating PropertyName.
+ 2. ReturnIfAbrupt(propKey).
+ 3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true.
+ Otherwise let strict be false.
+ 4. Let scope be the running execution context's LexicalEnvironment.
+ 5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters,
+ AsyncGeneratorBody, scope, strict).
+ [...]
+---*/
+
+var obj = {
+ async *method(/*{ elems }*/) {
+ /*{ body }*/
+ }
+};
+
+assert.throws(/*{ error }*/, function() {
+ obj.method(/*{ vals }*/);
+});
diff --git a/src/dstr-binding/error/async-gen-method-dflt.template b/src/dstr-binding/error/async-gen-method-dflt.template
new file mode 100644
index 000000000..fd787e49c
--- /dev/null
+++ b/src/dstr-binding/error/async-gen-method-dflt.template
@@ -0,0 +1,32 @@
+// 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/dstr-async-gen-meth-dflt-
+name: async generator method (default parameter)
+esid: sec-asyncgenerator-definitions-propertydefinitionevaluation
+features: [async-iteration]
+info: |
+ AsyncGeneratorMethod :
+ async [no LineTerminator here] * PropertyName ( UniqueFormalParameters )
+ { AsyncGeneratorBody }
+
+ 1. Let propKey be the result of evaluating PropertyName.
+ 2. ReturnIfAbrupt(propKey).
+ 3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true.
+ Otherwise let strict be false.
+ 4. Let scope be the running execution context's LexicalEnvironment.
+ 5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters,
+ AsyncGeneratorBody, scope, strict).
+ [...]
+---*/
+
+var obj = {
+ async *method(/*{ elems }*/ = /*{ vals }*/) {
+ /*{ body }*/
+ }
+};
+
+assert.throws(/*{ error }*/, function() {
+ obj.method();
+});
diff --git a/src/dstr-binding/error/cls-decl-async-gen-meth-dflt.template b/src/dstr-binding/error/cls-decl-async-gen-meth-dflt.template
new file mode 100644
index 000000000..4a2bcc6aa
--- /dev/null
+++ b/src/dstr-binding/error/cls-decl-async-gen-meth-dflt.template
@@ -0,0 +1,52 @@
+// 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/dstr-async-gen-meth-dflt-
+name: class expression async generator method (default parameters)
+esid: sec-class-definitions-runtime-semantics-evaluation
+features: [async-iteration]
+info: |
+ ClassDeclaration : class BindingIdentifier ClassTail
+
+ 1. Let className be StringValue of BindingIdentifier.
+ 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with
+ argument className.
+ [...]
+
+ 14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+ 21. For each ClassElement m in order from methods
+ a. If IsStatic of m is false, then
+ i. Let status be the result of performing
+ PropertyDefinitionEvaluation for m with arguments proto and
+ false.
+ [...]
+
+ Runtime Semantics: PropertyDefinitionEvaluation
+
+ AsyncGeneratorMethod :
+ async [no LineTerminator here] * PropertyName ( UniqueFormalParameters )
+ { AsyncGeneratorBody }
+
+ 1. Let propKey be the result of evaluating PropertyName.
+ 2. ReturnIfAbrupt(propKey).
+ 3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true.
+ Otherwise let strict be false.
+ 4. Let scope be the running execution context's LexicalEnvironment.
+ 5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters,
+ AsyncGeneratorBody, scope, strict).
+ [...]
+---*/
+
+class C {
+ async *method(/*{ elems }*/ = /*{ vals }*/) {
+ /*{ body }*/
+ }
+};
+
+var method = C.prototype.method;
+
+assert.throws(/*{ error }*/, function() {
+ method();
+});
diff --git a/src/dstr-binding/error/cls-decl-async-gen-meth-static-dflt.template b/src/dstr-binding/error/cls-decl-async-gen-meth-static-dflt.template
new file mode 100644
index 000000000..1794cd64e
--- /dev/null
+++ b/src/dstr-binding/error/cls-decl-async-gen-meth-static-dflt.template
@@ -0,0 +1,52 @@
+// 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/dstr-async-gen-meth-static-dflt-
+name: static class expression async generator method (default parameter)
+esid: sec-runtime-semantics-bindingclassdeclarationevaluation
+features: [async-iteration]
+info: |
+ ClassDeclaration : class BindingIdentifier ClassTail
+
+ 1. Let className be StringValue of BindingIdentifier.
+ 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with
+ argument className.
+ [...]
+
+ 14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+ 21. For each ClassElement m in order from methods
+ a. If IsStatic of m is false, then
+ b. Else,
+ Let status be the result of performing PropertyDefinitionEvaluation for
+ m with arguments F and false.
+ [...]
+
+ Runtime Semantics: PropertyDefinitionEvaluation
+
+ AsyncGeneratorMethod :
+ async [no LineTerminator here] * PropertyName ( UniqueFormalParameters )
+ { AsyncGeneratorBody }
+
+ 1. Let propKey be the result of evaluating PropertyName.
+ 2. ReturnIfAbrupt(propKey).
+ 3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true.
+ Otherwise let strict be false.
+ 4. Let scope be the running execution context's LexicalEnvironment.
+ 5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters,
+ AsyncGeneratorBody, scope, strict).
+ [...]
+---*/
+
+class C {
+ static async *method(/*{ elems }*/ = /*{ vals }*/) {
+ /*{ body }*/
+ }
+};
+
+var method = C.method;
+
+assert.throws(/*{ error }*/, function() {
+ method();
+});
diff --git a/src/dstr-binding/error/cls-decl-async-gen-meth-static.template b/src/dstr-binding/error/cls-decl-async-gen-meth-static.template
new file mode 100644
index 000000000..98038e374
--- /dev/null
+++ b/src/dstr-binding/error/cls-decl-async-gen-meth-static.template
@@ -0,0 +1,52 @@
+// 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/dstr-async-gen-meth-static-
+name: static class expression async generator method
+esid: sec-runtime-semantics-bindingclassdeclarationevaluation
+features: [async-iteration]
+info: |
+ ClassDeclaration : class BindingIdentifier ClassTail
+
+ 1. Let className be StringValue of BindingIdentifier.
+ 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with
+ argument className.
+ [...]
+
+ 14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+ 21. For each ClassElement m in order from methods
+ a. If IsStatic of m is false, then
+ b. Else,
+ Let status be the result of performing PropertyDefinitionEvaluation for
+ m with arguments F and false.
+ [...]
+
+ Runtime Semantics: PropertyDefinitionEvaluation
+
+ AsyncGeneratorMethod :
+ async [no LineTerminator here] * PropertyName ( UniqueFormalParameters )
+ { AsyncGeneratorBody }
+
+ 1. Let propKey be the result of evaluating PropertyName.
+ 2. ReturnIfAbrupt(propKey).
+ 3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true.
+ Otherwise let strict be false.
+ 4. Let scope be the running execution context's LexicalEnvironment.
+ 5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters,
+ AsyncGeneratorBody, scope, strict).
+ [...]
+---*/
+
+class C {
+ static async *method(/*{ elems }*/) {
+ /*{ body }*/
+ }
+};
+
+var method = C.method;
+
+assert.throws(/*{ error }*/, function() {
+ method(/*{ vals }*/);
+});
diff --git a/src/dstr-binding/error/cls-decl-async-gen-meth.template b/src/dstr-binding/error/cls-decl-async-gen-meth.template
new file mode 100644
index 000000000..25745f17c
--- /dev/null
+++ b/src/dstr-binding/error/cls-decl-async-gen-meth.template
@@ -0,0 +1,52 @@
+// 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/dstr-async-gen-meth-
+name: class expression method
+esid: sec-class-definitions-runtime-semantics-evaluation
+features: [async-iteration]
+info: |
+ ClassDeclaration : class BindingIdentifier ClassTail
+
+ 1. Let className be StringValue of BindingIdentifier.
+ 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with
+ argument className.
+ [...]
+
+ 14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+ 21. For each ClassElement m in order from methods
+ a. If IsStatic of m is false, then
+ i. Let status be the result of performing
+ PropertyDefinitionEvaluation for m with arguments proto and
+ false.
+ [...]
+
+ Runtime Semantics: PropertyDefinitionEvaluation
+
+ AsyncGeneratorMethod :
+ async [no LineTerminator here] * PropertyName ( UniqueFormalParameters )
+ { AsyncGeneratorBody }
+
+ 1. Let propKey be the result of evaluating PropertyName.
+ 2. ReturnIfAbrupt(propKey).
+ 3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true.
+ Otherwise let strict be false.
+ 4. Let scope be the running execution context's LexicalEnvironment.
+ 5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters,
+ AsyncGeneratorBody, scope, strict).
+ [...]
+---*/
+
+class C {
+ async *method(/*{ elems }*/) {
+ /*{ body }*/
+ }
+};
+
+var method = C.prototype.method;
+
+assert.throws(/*{ error }*/, function() {
+ method(/*{ vals }*/);
+});
diff --git a/src/dstr-binding/error/cls-expr-async-gen-meth-dflt.template b/src/dstr-binding/error/cls-expr-async-gen-meth-dflt.template
new file mode 100644
index 000000000..05f0c41e2
--- /dev/null
+++ b/src/dstr-binding/error/cls-expr-async-gen-meth-dflt.template
@@ -0,0 +1,53 @@
+// 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/dstr-async-gen-meth-dflt-
+name: class expression async generator method (default parameter)
+esid: sec-class-definitions-runtime-semantics-evaluation
+features: [async-iteration]
+info: |
+ ClassExpression : class BindingIdentifieropt ClassTail
+
+ 1. If BindingIdentifieropt is not present, let className be undefined.
+ 2. Else, let className be StringValue of BindingIdentifier.
+ 3. Let value be the result of ClassDefinitionEvaluation of ClassTail
+ with argument className.
+ [...]
+
+ 14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+ 21. For each ClassElement m in order from methods
+ a. If IsStatic of m is false, then
+ i. Let status be the result of performing
+ PropertyDefinitionEvaluation for m with arguments proto and
+ false.
+ [...]
+
+ Runtime Semantics: PropertyDefinitionEvaluation
+
+ AsyncGeneratorMethod :
+ async [no LineTerminator here] * PropertyName ( UniqueFormalParameters )
+ { AsyncGeneratorBody }
+
+ 1. Let propKey be the result of evaluating PropertyName.
+ 2. ReturnIfAbrupt(propKey).
+ 3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true.
+ Otherwise let strict be false.
+ 4. Let scope be the running execution context's LexicalEnvironment.
+ 5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters,
+ AsyncGeneratorBody, scope, strict).
+ [...]
+---*/
+
+var C = class {
+ async *method(/*{ elems }*/ = /*{ vals }*/) {
+ /*{ body }*/
+ }
+};
+
+var method = C.prototype.method;
+
+assert.throws(/*{ error }*/, function() {
+ method();
+});
diff --git a/src/dstr-binding/error/cls-expr-async-gen-meth-static-dflt.template b/src/dstr-binding/error/cls-expr-async-gen-meth-static-dflt.template
new file mode 100644
index 000000000..37fc8cb66
--- /dev/null
+++ b/src/dstr-binding/error/cls-expr-async-gen-meth-static-dflt.template
@@ -0,0 +1,53 @@
+// 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/dstr-async-gen-meth-static-dflt-
+name: static class expression async generator method (default parameter)
+esid: sec-class-definitions-runtime-semantics-evaluation
+features: [async-iteration]
+info: |
+ ClassExpression : class BindingIdentifieropt ClassTail
+
+ 1. If BindingIdentifieropt is not present, let className be undefined.
+ 2. Else, let className be StringValue of BindingIdentifier.
+ 3. Let value be the result of ClassDefinitionEvaluation of ClassTail
+ with argument className.
+ [...]
+
+ 14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+ 21. For each ClassElement m in order from methods
+ a. If IsStatic of m is false, then
+ b. Else,
+ Let status be the result of performing PropertyDefinitionEvaluation
+ for m with arguments F and false.
+ [...]
+
+ Runtime Semantics: PropertyDefinitionEvaluation
+
+ AsyncGeneratorMethod :
+ async [no LineTerminator here] * PropertyName ( UniqueFormalParameters )
+ { AsyncGeneratorBody }
+
+ 1. Let propKey be the result of evaluating PropertyName.
+ 2. ReturnIfAbrupt(propKey).
+ 3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true.
+ Otherwise let strict be false.
+ 4. Let scope be the running execution context's LexicalEnvironment.
+ 5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters,
+ AsyncGeneratorBody, scope, strict).
+ [...]
+---*/
+
+var C = class {
+ static async *method(/*{ elems }*/ = /*{ vals }*/) {
+ /*{ body }*/
+ }
+};
+
+var method = C.method;
+
+assert.throws(/*{ error }*/, function() {
+ method();
+});
diff --git a/src/dstr-binding/error/cls-expr-async-gen-meth-static.template b/src/dstr-binding/error/cls-expr-async-gen-meth-static.template
new file mode 100644
index 000000000..0830cf447
--- /dev/null
+++ b/src/dstr-binding/error/cls-expr-async-gen-meth-static.template
@@ -0,0 +1,53 @@
+// 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/dstr-async-gen-meth-static-
+name: static class expression async generator method
+esid: sec-class-definitions-runtime-semantics-evaluation
+features: [async-iteration]
+info: |
+ ClassExpression : class BindingIdentifieropt ClassTail
+
+ 1. If BindingIdentifieropt is not present, let className be undefined.
+ 2. Else, let className be StringValue of BindingIdentifier.
+ 3. Let value be the result of ClassDefinitionEvaluation of ClassTail
+ with argument className.
+ [...]
+
+ 14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+ 21. For each ClassElement m in order from methods
+ a. If IsStatic of m is false, then
+ b. Else,
+ Let status be the result of performing PropertyDefinitionEvaluation
+ for m with arguments F and false.
+ [...]
+
+ Runtime Semantics: PropertyDefinitionEvaluation
+
+ AsyncGeneratorMethod :
+ async [no LineTerminator here] * PropertyName ( UniqueFormalParameters )
+ { AsyncGeneratorBody }
+
+ 1. Let propKey be the result of evaluating PropertyName.
+ 2. ReturnIfAbrupt(propKey).
+ 3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true.
+ Otherwise let strict be false.
+ 4. Let scope be the running execution context's LexicalEnvironment.
+ 5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters,
+ AsyncGeneratorBody, scope, strict).
+ [...]
+---*/
+
+var C = class {
+ static async *method(/*{ elems }*/) {
+ /*{ body }*/
+ }
+};
+
+var method = C.method;
+
+assert.throws(/*{ error }*/, function() {
+ method(/*{ vals }*/);
+});
diff --git a/src/dstr-binding/error/cls-expr-async-gen-meth.template b/src/dstr-binding/error/cls-expr-async-gen-meth.template
new file mode 100644
index 000000000..0e7433a4d
--- /dev/null
+++ b/src/dstr-binding/error/cls-expr-async-gen-meth.template
@@ -0,0 +1,53 @@
+// 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/dstr-async-gen-meth-
+name: class expression method
+esid: sec-class-definitions-runtime-semantics-evaluation
+features: [async-iteration]
+info: |
+ ClassExpression : class BindingIdentifieropt ClassTail
+
+ 1. If BindingIdentifieropt is not present, let className be undefined.
+ 2. Else, let className be StringValue of BindingIdentifier.
+ 3. Let value be the result of ClassDefinitionEvaluation of ClassTail
+ with argument className.
+ [...]
+
+ 14.5.14 Runtime Semantics: ClassDefinitionEvaluation
+
+ 21. For each ClassElement m in order from methods
+ a. If IsStatic of m is false, then
+ i. Let status be the result of performing
+ PropertyDefinitionEvaluation for m with arguments proto and
+ false.
+ [...]
+
+ Runtime Semantics: PropertyDefinitionEvaluation
+
+ AsyncGeneratorMethod :
+ async [no LineTerminator here] * PropertyName ( UniqueFormalParameters )
+ { AsyncGeneratorBody }
+
+ 1. Let propKey be the result of evaluating PropertyName.
+ 2. ReturnIfAbrupt(propKey).
+ 3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true.
+ Otherwise let strict be false.
+ 4. Let scope be the running execution context's LexicalEnvironment.
+ 5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters,
+ AsyncGeneratorBody, scope, strict).
+ [...]
+---*/
+
+var C = class {
+ async *method(/*{ elems }*/) {
+ /*{ body }*/
+ }
+};
+
+var method = C.prototype.method;
+
+assert.throws(/*{ error }*/, function() {
+ method(/*{ vals }*/);
+});