mirror of https://github.com/tc39/test262.git
class fields: add early errors for argument and super
# Conflicts: # src/class-fields/init-err-contains-super.case
This commit is contained in:
parent
9cb6333cb9
commit
f2d76e60f2
|
@ -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.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
desc: Syntax error if `arguments` used in class field
|
||||||
|
info: |
|
||||||
|
Static Semantics: Early Errors
|
||||||
|
|
||||||
|
FieldDefinition:
|
||||||
|
PropertyNameInitializeropt
|
||||||
|
|
||||||
|
- It is a Syntax Error if ContainsArguments of Initializer is true.
|
||||||
|
|
||||||
|
Static Semantics: ContainsArguments
|
||||||
|
IdentifierReference : Identifier
|
||||||
|
|
||||||
|
1. If the StringValue of Identifier is "arguments", return true.
|
||||||
|
...
|
||||||
|
For all other grammatical productions, recurse on all nonterminals. If any piece returns true, then return true. Otherwise return false.
|
||||||
|
features: [class-fields]
|
||||||
|
negative:
|
||||||
|
type: SyntaxError
|
||||||
|
phase: early
|
||||||
|
template: initializer-error
|
||||||
|
---*/
|
||||||
|
|
||||||
|
//- initializer
|
||||||
|
arguments
|
|
@ -0,0 +1,15 @@
|
||||||
|
// 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/fields-comp-name-
|
||||||
|
name: computed ClassElementName
|
||||||
|
---*/
|
||||||
|
|
||||||
|
throw "Test262: This statement should not be evaluated.";
|
||||||
|
|
||||||
|
var x = "string";
|
||||||
|
class C {
|
||||||
|
static [x] = /*{ initializer }*/;
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
// 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/fields-static-comp-name-
|
||||||
|
name: static computed ClassElementName
|
||||||
|
---*/
|
||||||
|
|
||||||
|
throw "Test262: This statement should not be evaluated.";
|
||||||
|
|
||||||
|
var x = "string";
|
||||||
|
class C {
|
||||||
|
static [x] = /*{ initializer }*/;
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
// 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/fields-static-literal-
|
||||||
|
name: static literal ClassElementName
|
||||||
|
---*/
|
||||||
|
|
||||||
|
throw "Test262: This statement should not be evaluated.";
|
||||||
|
|
||||||
|
class C {
|
||||||
|
static x = /*{ initializer }*/;
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
// 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/fields-static-string-literal-name-
|
||||||
|
name: static string literal ClassElementName
|
||||||
|
---*/
|
||||||
|
|
||||||
|
throw "Test262: This statement should not be evaluated.";
|
||||||
|
|
||||||
|
class C {
|
||||||
|
static 'x' = /*{ initializer }*/;
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
// 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/fields-static-comp-name-
|
||||||
|
name: static computed ClassElementName
|
||||||
|
---*/
|
||||||
|
|
||||||
|
throw "Test262: This statement should not be evaluated.";
|
||||||
|
|
||||||
|
var x = "string";
|
||||||
|
var C = class {
|
||||||
|
static [x] = /*{ initializer }*/;
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
// 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/fields-static-literal-
|
||||||
|
name: static literal ClassElementName
|
||||||
|
---*/
|
||||||
|
|
||||||
|
throw "Test262: This statement should not be evaluated.";
|
||||||
|
|
||||||
|
var C = class {
|
||||||
|
static x = /*{ initializer }*/;
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
// 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/fields-static-string-literal-name-
|
||||||
|
name: static string literal ClassElementName
|
||||||
|
---*/
|
||||||
|
|
||||||
|
throw "Test262: This statement should not be evaluated.";
|
||||||
|
|
||||||
|
var C = class {
|
||||||
|
static 'x' = /*{ initializer }*/;
|
||||||
|
}
|
Loading…
Reference in New Issue