Add tests for rest parameter with "use strict" (expecting syntax error)

This commit is contained in:
Richard Gibson 2019-07-03 18:54:21 -04:00
parent b41b0577a0
commit 4af2c34eb2
2 changed files with 98 additions and 0 deletions

View File

@ -187,6 +187,7 @@ regexp-dotall
regexp-lookbehind
regexp-named-groups
regexp-unicode-property-escapes
rest-parameters
Set
SharedArrayBuffer
String.fromCodePoint

View File

@ -0,0 +1,97 @@
// Copyright (C) 2018 Richard Gibson. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
desc: >
RestParameter and Use Strict Directive are not allowed to coexist for the
same function.
template: syntax
negative:
phase: parse
type: SyntaxError
info: |
14.1.2 Static Semantics: Early Errors
FunctionDeclaration : function BindingIdentifier ( FormalParameters ) { FunctionBody }
FunctionDeclaration : function ( FormalParameters ) { FunctionBody }
FunctionExpression : function BindingIdentifier ( FormalParameters ) { FunctionBody }
- It is a Syntax Error if ContainsUseStrict of FunctionBody is true and
IsSimpleParameterList of FormalParameters is false.
14.2.1 Static Semantics: Early Errors
ArrowFunction : ArrowParameters => ConciseBody
- It is a Syntax Error if ContainsUseStrict of ConciseBody is true and
IsSimpleParameterList of ArrowParameters is false.
14.3.1 Static Semantics: Early Errors
MethodDefinition : PropertyName ( UniqueFormalParameters ) { FunctionBody }
- It is a Syntax Error if ContainsUseStrict of FunctionBody is true and
IsSimpleParameterList of UniqueFormalParameters is false.
MethodDefinition : set PropertyName ( PropertySetParameterList ) { FunctionBody }
- It is a Syntax Error if ContainsUseStrict of FunctionBody is true and
IsSimpleParameterList of PropertySetParameterList is false.
14.4.1 Static Semantics: Early Errors
GeneratorMethod : * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
- It is a Syntax Error if ContainsUseStrict of GeneratorBody is true and
IsSimpleParameterList of UniqueFormalParameters is false.
GeneratorDeclaration : function * BindingIdentifier ( FormalParameters ) { GeneratorBody }
GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
GeneratorExpression : function * BindingIdentifier ( FormalParameters ) { GeneratorBody }
- It is a Syntax Error if ContainsUseStrict of GeneratorBody is true and
IsSimpleParameterList of UniqueFormalParameters is false.
14.5.1 Static Semantics: Early Errors
AsyncGeneratorMethod : async * PropertyName ( UniqueFormalParameters ) { AsyncGeneratorBody }
- It is a Syntax Error if ContainsUseStrict of AsyncGeneratorBody is true and
IsSimpleParameterList of UniqueFormalParameters is false.
AsyncGeneratorDeclaration : async function * BindingIdentifier ( FormalParameters ) { AsyncGeneratorBody }
AsyncGeneratorDeclaration : async function * ( FormalParameters ) { AsyncGeneratorBody }
AsyncGeneratorExpression : async function * BindingIdentifier ( FormalParameters ) { AsyncGeneratorBody }
- It is a Syntax Error if ContainsUseStrict of AsyncGeneratorBody is true and
IsSimpleParameterList of FormalParameters is false.
14.7.1 Static Semantics: Early Errors
AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody }
- It is a Syntax Error if ContainsUseStrict of AsyncFunctionBody is true and
IsSimpleParameterList of UniqueFormalParameters is false.
AsyncFunctionDeclaration : async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody }
AsyncFunctionDeclaration : async function ( FormalParameters ) { AsyncFunctionBody }
AsyncFunctionExpression : async function ( FormalParameters ) { AsyncFunctionBody }
AsyncFunctionExpression : async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody }
- It is a Syntax Error if ContainsUseStrict of AsyncFunctionBody is true and
IsSimpleParameterList of FormalParameters is false.
14.8.1 Static Semantics: Early Errors
AsyncArrowFunction : CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody
- It is a Syntax Error if ContainsUseStrict of AsyncConciseBody is true and
IsSimpleParameterList of CoverCallExpressionAndAsyncArrowHead is false.
features: [rest-parameters]
---*/
//- setup
$DONOTEVALUATE();
//- params
...rest
//- body
"use strict";