blob: f79b7b35e4d410edf98de54e43053d50d998c393 [file] [log] [blame] [edit]
// Copyright (C) 2017 Valerie Young. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-class-definitions-static-semantics-early-errors
path: language/expressions/class/elements/syntax/early-errors/delete/field-delete-covered-
name: in field, covered
info: |
This file must never use the onlyStrict flag as the strict mode should always
be observed inside class bodies.
Static Semantics: Early Errors
UnaryExpression : delete UnaryExpression
It is a Syntax Error if the UnaryExpression is contained in strict mode
code and the derived UnaryExpression is
PrimaryExpression : IdentifierReference ,
MemberExpression : MemberExpression.PrivateName , or
CallExpression : CallExpression.PrivateName .
It is a Syntax Error if the derived UnaryExpression is
PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and
CoverParenthesizedExpressionAndArrowParameterList ultimately derives a
phrase that, if used in place of UnaryExpression, would produce a
Syntax Error according to these rules. This rule is recursively applied.
features: [class, class-fields-private, class-fields-public]
negative:
type: SyntaxError
phase: parse
---*/
$DONOTEVALUATE();
var C = class {
#x;
/*{ infieldsetup }*/
x = delete (/*{ expression }*/);
/*{ functiondeclaration }*/
}