diff --git a/test/language/expressions/async-arrow-function/async-lineterminator-identifier-throws.js b/test/language/expressions/async-arrow-function/async-lineterminator-identifier-throws.js new file mode 100644 index 0000000000000000000000000000000000000000..0716b5d4c44ded6c54f0ebc7ed886eb36b7b7a21 --- /dev/null +++ b/test/language/expressions/async-arrow-function/async-lineterminator-identifier-throws.js @@ -0,0 +1,19 @@ +// Copyright (C) 2017 Mozilla Corporation. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-AsyncArrowFunction +description: > + async arrows cannot have a line terminator between "async" and the AsyncArrowBindingIdentifier +info: | + 14.7 Async Arrow Function Definitions + + AsyncArrowFunction: + async [no LineTerminator here] AsyncArrowBindingIdentifier [no LineTerminator here] => AsyncConciseBody + [...] +---*/ + +assert.throws(ReferenceError, function() { + async + identifier => {} +}); diff --git a/test/language/expressions/async-arrow-function/early-errors-arrow-formals-lineterminator.js b/test/language/expressions/async-arrow-function/early-errors-arrow-formals-lineterminator.js new file mode 100644 index 0000000000000000000000000000000000000000..8794324b1e357ab9f413c321be8cd3431c7ff739 --- /dev/null +++ b/test/language/expressions/async-arrow-function/early-errors-arrow-formals-lineterminator.js @@ -0,0 +1,31 @@ +// Copyright (C) 2017 Mozilla Corporation. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-AsyncArrowHead +description: async arrows cannot have a line terminator between "async" and the formals +info: | + 14.7 Async Arrow Function Definitions + + AsyncArrowFunction: + [...] + CoverCallExpressionAndAsyncArrowHead [no LineTerminator here] => AsyncConciseBody + + Supplemental Syntax + + When processing an instance of the production + + AsyncArrowFunction: + CoverCallExpressionAndAsyncArrowHead [no LineTerminator here] => AsyncConciseBody + + the interpretation of CoverCallExpressionAndAsyncArrowHead is refined using the following grammar: + + AsyncArrowHead: + async [no LineTerminator here] ArrowFormalParameters +negative: + phase: early + type: SyntaxError +---*/ + +async +(foo) => { } diff --git a/test/language/expressions/object/method-definition/early-errors-object-method-arguments-in-formal-parameters.js b/test/language/expressions/object/method-definition/early-errors-object-method-arguments-in-formal-parameters.js index 4d67144a28f9b259705885b51acf4115de173e34..a7266b66b475f5fe2a097c1b2c66b20425f83cdf 100644 --- a/test/language/expressions/object/method-definition/early-errors-object-method-arguments-in-formal-parameters.js +++ b/test/language/expressions/object/method-definition/early-errors-object-method-arguments-in-formal-parameters.js @@ -10,6 +10,6 @@ negative: type: SyntaxError flags: [onlyStrict] ---*/ -!{ +({ async foo (arguments) { } -} +}) diff --git a/test/language/expressions/object/method-definition/early-errors-object-method-async-lineterminator.js b/test/language/expressions/object/method-definition/early-errors-object-method-async-lineterminator.js new file mode 100644 index 0000000000000000000000000000000000000000..35d23cf6fc9227a3e66de3f89c78a1ff82a4487d --- /dev/null +++ b/test/language/expressions/object/method-definition/early-errors-object-method-async-lineterminator.js @@ -0,0 +1,20 @@ +// Copyright (C) 2017 Mozilla Corporation. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-AsyncMethod +description: async methods cannot have a line terminator between "async" and the property name +info: | + 14.6 Async Function Definitions + + AsyncMethod: + async [no LineTerminator here] PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } +negative: + phase: early + type: SyntaxError +---*/ + +({ + async + foo() { } +}) diff --git a/test/language/expressions/object/method-definition/early-errors-object-method-await-in-formals-default.js b/test/language/expressions/object/method-definition/early-errors-object-method-await-in-formals-default.js index 8b6dc5ebff34f59cf652751fa1d9d9a27b19e6f4..256aeb536b16989fc96e62df57fe97b02584aaf9 100644 --- a/test/language/expressions/object/method-definition/early-errors-object-method-await-in-formals-default.js +++ b/test/language/expressions/object/method-definition/early-errors-object-method-await-in-formals-default.js @@ -9,7 +9,7 @@ negative: phase: early type: SyntaxError ---*/ -!{ +({ async foo (x = await) { } -} +}) diff --git a/test/language/expressions/object/method-definition/early-errors-object-method-await-in-formals.js b/test/language/expressions/object/method-definition/early-errors-object-method-await-in-formals.js index c606a9a4499191a9d1a06ca66f0129b5c6313e3e..566c98f698586c6416452c9274e80dfd2d08a51b 100644 --- a/test/language/expressions/object/method-definition/early-errors-object-method-await-in-formals.js +++ b/test/language/expressions/object/method-definition/early-errors-object-method-await-in-formals.js @@ -9,6 +9,6 @@ negative: phase: early type: SyntaxError ---*/ -!{ +({ async foo (await) { } -} +}) diff --git a/test/language/expressions/object/method-definition/early-errors-object-method-body-contains-super-call.js b/test/language/expressions/object/method-definition/early-errors-object-method-body-contains-super-call.js index 8f8852146ca894679feac6f0e41f63a7551a3ee2..9a226b56695f09a927479a7e46005c7b36b4bcb2 100644 --- a/test/language/expressions/object/method-definition/early-errors-object-method-body-contains-super-call.js +++ b/test/language/expressions/object/method-definition/early-errors-object-method-body-contains-super-call.js @@ -9,6 +9,6 @@ negative: phase: early type: SyntaxError ---*/ -!{ +({ async foo () { super() } -} +}) diff --git a/test/language/expressions/object/method-definition/early-errors-object-method-duplicate-parameters.js b/test/language/expressions/object/method-definition/early-errors-object-method-duplicate-parameters.js index aee8ea55e851fe800329bf82e8ee5d18d6db9335..0f135f62945848078e4932046cb50e2bdfa4aba7 100644 --- a/test/language/expressions/object/method-definition/early-errors-object-method-duplicate-parameters.js +++ b/test/language/expressions/object/method-definition/early-errors-object-method-duplicate-parameters.js @@ -10,6 +10,6 @@ negative: phase: early type: SyntaxError ---*/ -!{ +({ async foo(a, a) { } -} +}) diff --git a/test/language/expressions/object/method-definition/early-errors-object-method-eval-in-formal-parameters.js b/test/language/expressions/object/method-definition/early-errors-object-method-eval-in-formal-parameters.js index b80ee27ac1c8d0fe9cc98136bc311dcdaf843033..b1a0da9fa57a2bec147170b9b673629da5fd350f 100644 --- a/test/language/expressions/object/method-definition/early-errors-object-method-eval-in-formal-parameters.js +++ b/test/language/expressions/object/method-definition/early-errors-object-method-eval-in-formal-parameters.js @@ -10,6 +10,6 @@ negative: type: SyntaxError flags: [onlyStrict] ---*/ -!{ +({ async foo(eval) { } -} +}) diff --git a/test/language/expressions/object/method-definition/early-errors-object-method-formals-body-duplicate.js b/test/language/expressions/object/method-definition/early-errors-object-method-formals-body-duplicate.js index 62bc0144e40c363a0d11edf4f12ec65dedcfc51c..a356280bde3ebf36e30e3ca43fc09d1cf65ab385 100644 --- a/test/language/expressions/object/method-definition/early-errors-object-method-formals-body-duplicate.js +++ b/test/language/expressions/object/method-definition/early-errors-object-method-formals-body-duplicate.js @@ -10,6 +10,6 @@ negative: type: SyntaxError ---*/ -!{ +({ async function foo(bar) { let bar; } -} +}) diff --git a/test/language/expressions/object/method-definition/early-errors-object-method-formals-contains-super-call.js b/test/language/expressions/object/method-definition/early-errors-object-method-formals-contains-super-call.js index b3b50267ad22d004476121fec88a4faeaf2870cd..afc07f534704683520c54fbc085e50912332954a 100644 --- a/test/language/expressions/object/method-definition/early-errors-object-method-formals-contains-super-call.js +++ b/test/language/expressions/object/method-definition/early-errors-object-method-formals-contains-super-call.js @@ -9,6 +9,6 @@ negative: phase: early type: SyntaxError ---*/ -!{ +({ async foo(foo = super()) { } -} +})