summaryrefslogtreecommitdiff
path: root/src/class-fields/delete-error/cls-expr-method-delete-covered.template
blob: cc3757715f11952bc2e48ba3515885283db8970a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// 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/err-method-delete-covered-
name: in method, covered
info: |
  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]
negative:
  type: SyntaxError
  phase: early
---*/

throw "Test262: This statement should not be evaluated.";

var C = class {
  #x;

  x() {
    /*{ infunctionsetup }*/
    delete (/*{ expression }*/);
  }

  /*{ functiondeclaration }*/
}