classfields: add tests for early error delete private field

This commit is contained in:
Valerie R Young 2017-10-25 12:56:00 -04:00
parent c39eeb9276
commit f8c4f381df
14 changed files with 396 additions and 0 deletions

View File

@ -0,0 +1,18 @@
// Copyright (C) 2017 Valerie Young. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
desc: Syntax error if you call delete on call expressions . privatename
template: delete-error
---*/
//- infieldsetup
g = this.f;
//- infunctionsetup
var g = this.f;
//- expression
g().#x
//- functiondeclaration
f() {
return this;
}

View File

@ -0,0 +1,29 @@
// 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/statements/class/err-field-delete-covered-
name: in field, 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-fields]
negative:
type: SyntaxError
phase: early
---*/
throw "Test262: This statement should not be evaluated.";
class C {
#x;
/*{ infieldsetup }*/
x = delete (/*{ expression }*/);
/*{ functiondeclaration }*/
}

View File

@ -0,0 +1,30 @@
// 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/statements/class/err-field-delete-twice-covered-
name: in field, recursively 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-fields]
negative:
type: SyntaxError
phase: early
---*/
throw "Test262: This statement should not be evaluated.";
class C {
#x;
/*{ infieldsetup }*/
x = delete ((/*{ expression }*/));
/*{ functiondeclaration }*/
}

View File

@ -0,0 +1,27 @@
// 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/statements/class/err-field-delete-
name: in field
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 .
features: [class-fields]
negative:
type: SyntaxError
phase: early
---*/
throw "Test262: This statement should not be evaluated.";
class C {
#x;
/*{ infieldsetup }*/
x = delete /*{ expression }*/;
/*{ functiondeclaration }*/
}

View File

@ -0,0 +1,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/statements/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-fields]
negative:
type: SyntaxError
phase: early
---*/
throw "Test262: This statement should not be evaluated.";
class C {
#x;
x() {
/*{ infunctionsetup }*/
delete (/*{ expression }*/);
}
/*{ functiondeclaration }*/
}

View File

@ -0,0 +1,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/statements/class/err-method-delete-twice-covered-
name: in method, recursively 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-fields]
negative:
type: SyntaxError
phase: early
---*/
throw "Test262: This statement should not be evaluated.";
class C {
#x;
x() {
/*{ infunctionsetup }*/
delete ((/*{ expression }*/));
}
/*{ functiondeclaration }*/
}

View File

@ -0,0 +1,31 @@
// 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/statements/class/err-method-delete-
name: in method
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 .
features: [class-fields]
negative:
type: SyntaxError
phase: early
---*/
throw "Test262: This statement should not be evaluated.";
class C {
#x;
x() {
/*{ infunctionsetup }*/
delete /*{ expression }*/;
}
/*{ functiondeclaration }*/
}

View File

@ -0,0 +1,30 @@
// 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-field-delete-covered-
name: in field, 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-fields]
negative:
type: SyntaxError
phase: early
---*/
throw "Test262: This statement should not be evaluated.";
var C = class {
#x;
/*{ infieldsetup }*/
x = delete (/*{ expression }*/);
/*{ functiondeclaration }*/
}

View File

@ -0,0 +1,30 @@
// 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-field-delete-twice-covered-
name: in field, recursively 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-fields]
negative:
type: SyntaxError
phase: early
---*/
throw "Test262: This statement should not be evaluated.";
var C = class {
#x;
/*{ infieldsetup }*/
x = delete ((/*{ expression }*/));
/*{ functiondeclaration }*/
}

View File

@ -0,0 +1,28 @@
// 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-field-delete-
name: in field
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 .
features: [class-fields]
negative:
type: SyntaxError
phase: early
---*/
throw "Test262: This statement should not be evaluated.";
var C = class {
#x;
/*{ infieldsetup }*/
x = delete /*{ expression }*/;
/*{ functiondeclaration }*/
}

View File

@ -0,0 +1,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-fields]
negative:
type: SyntaxError
phase: early
---*/
throw "Test262: This statement should not be evaluated.";
var C = class {
#x;
x() {
/*{ infunctionsetup }*/
delete (/*{ expression }*/);
}
/*{ functiondeclaration }*/
}

View File

@ -0,0 +1,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-twice-covered-
name: in method, recursively 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-fields]
negative:
type: SyntaxError
phase: early
---*/
throw "Test262: This statement should not be evaluated.";
var C = class {
#x;
x() {
/*{ infunctionsetup }*/
delete ((/*{ expression }*/));
}
/*{ functiondeclaration }*/
}

View File

@ -0,0 +1,31 @@
// 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-
name: in method
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 .
features: [class-fields]
negative:
type: SyntaxError
phase: early
---*/
throw "Test262: This statement should not be evaluated.";
var C = class {
#x;
x() {
/*{ infunctionsetup }*/
delete /*{ expression }*/;
}
/*{ functiondeclaration }*/
}

View File

@ -0,0 +1,10 @@
// Copyright (C) 2017 Valerie Young. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
desc: Syntax error if you call delete on member expressions . privatename
template: delete-error
---*/
//- expression
this.#x