mirror of https://github.com/tc39/test262.git
Add valid cases for static ctor methods
This commit is contained in:
parent
b64d01d568
commit
35e3f82504
|
@ -0,0 +1,25 @@
|
|||
// Copyright (C) 2018 Leo Balter. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
desc: Static Accessor Methods can be named constructor
|
||||
info: |
|
||||
Class Definitions / Static Semantics: Early Errors
|
||||
|
||||
ClassElement : MethodDefinition
|
||||
It is a Syntax Error if PropName of MethodDefinition is not "constructor" and HasDirectSuper of MethodDefinition is true.
|
||||
It is a Syntax Error if PropName of MethodDefinition is "constructor" and SpecialMethod of MethodDefinition is true.
|
||||
ClassElement : static MethodDefinition
|
||||
It is a Syntax Error if HasDirectSuper of MethodDefinition is true.
|
||||
It is a Syntax Error if PropName of MethodDefinition is "prototype".
|
||||
template: syntax/valid
|
||||
---*/
|
||||
|
||||
//- elements
|
||||
static get constructor() {}
|
||||
static set constructor() {}
|
||||
constructor() {} // stacks with a valid constructor
|
||||
//- teardown
|
||||
assert(C.hasOwnProperty('constructor'));
|
||||
assert(C.prototype.hasOwnProperty('constructor'));
|
||||
assert.notSameValue(C.prototype.constructor, C.constructor);
|
|
@ -0,0 +1,25 @@
|
|||
// Copyright (C) 2018 Leo Balter. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
desc: Static Async Generator Methods can be named constructor
|
||||
info: |
|
||||
Class Definitions / Static Semantics: Early Errors
|
||||
|
||||
ClassElement : MethodDefinition
|
||||
It is a Syntax Error if PropName of MethodDefinition is not "constructor" and HasDirectSuper of MethodDefinition is true.
|
||||
It is a Syntax Error if PropName of MethodDefinition is "constructor" and SpecialMethod of MethodDefinition is true.
|
||||
ClassElement : static MethodDefinition
|
||||
It is a Syntax Error if HasDirectSuper of MethodDefinition is true.
|
||||
It is a Syntax Error if PropName of MethodDefinition is "prototype".
|
||||
template: syntax/valid
|
||||
features: [async-iteration]
|
||||
---*/
|
||||
|
||||
//- elements
|
||||
static async * constructor() {}
|
||||
constructor() {} // stacks with a valid constructor
|
||||
//- teardown
|
||||
assert(C.hasOwnProperty('constructor'));
|
||||
assert(C.prototype.hasOwnProperty('constructor'));
|
||||
assert.notSameValue(C.prototype.constructor, C.constructor);
|
|
@ -0,0 +1,25 @@
|
|||
// Copyright (C) 2018 Leo Balter. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
desc: Static Methods can be named constructor
|
||||
info: |
|
||||
Class Definitions / Static Semantics: Early Errors
|
||||
|
||||
ClassElement : MethodDefinition
|
||||
It is a Syntax Error if PropName of MethodDefinition is not "constructor" and HasDirectSuper of MethodDefinition is true.
|
||||
It is a Syntax Error if PropName of MethodDefinition is "constructor" and SpecialMethod of MethodDefinition is true.
|
||||
ClassElement : static MethodDefinition
|
||||
It is a Syntax Error if HasDirectSuper of MethodDefinition is true.
|
||||
It is a Syntax Error if PropName of MethodDefinition is "prototype".
|
||||
template: syntax/valid
|
||||
features: [async-functions]
|
||||
---*/
|
||||
|
||||
//- elements
|
||||
static async constructor() {}
|
||||
constructor() {} // stacks with a valid constructor
|
||||
//- teardown
|
||||
assert(C.hasOwnProperty('constructor'));
|
||||
assert(C.prototype.hasOwnProperty('constructor'));
|
||||
assert.notSameValue(C.prototype.constructor, C.constructor);
|
|
@ -0,0 +1,25 @@
|
|||
// Copyright (C) 2018 Leo Balter. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
desc: Static Generator Methods can be named constructor
|
||||
info: |
|
||||
Class Definitions / Static Semantics: Early Errors
|
||||
|
||||
ClassElement : MethodDefinition
|
||||
It is a Syntax Error if PropName of MethodDefinition is not "constructor" and HasDirectSuper of MethodDefinition is true.
|
||||
It is a Syntax Error if PropName of MethodDefinition is "constructor" and SpecialMethod of MethodDefinition is true.
|
||||
ClassElement : static MethodDefinition
|
||||
It is a Syntax Error if HasDirectSuper of MethodDefinition is true.
|
||||
It is a Syntax Error if PropName of MethodDefinition is "prototype".
|
||||
template: syntax/valid
|
||||
features: [generators]
|
||||
---*/
|
||||
|
||||
//- elements
|
||||
static * constructor() {}
|
||||
constructor() {} // stacks with a valid constructor
|
||||
//- teardown
|
||||
assert(C.hasOwnProperty('constructor'));
|
||||
assert(C.prototype.hasOwnProperty('constructor'));
|
||||
assert.notSameValue(C.prototype.constructor, C.constructor);
|
|
@ -0,0 +1,24 @@
|
|||
// Copyright (C) 2018 Leo Balter. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
desc: Static Methods can be named constructor
|
||||
info: |
|
||||
Class Definitions / Static Semantics: Early Errors
|
||||
|
||||
ClassElement : MethodDefinition
|
||||
It is a Syntax Error if PropName of MethodDefinition is not "constructor" and HasDirectSuper of MethodDefinition is true.
|
||||
It is a Syntax Error if PropName of MethodDefinition is "constructor" and SpecialMethod of MethodDefinition is true.
|
||||
ClassElement : static MethodDefinition
|
||||
It is a Syntax Error if HasDirectSuper of MethodDefinition is true.
|
||||
It is a Syntax Error if PropName of MethodDefinition is "prototype".
|
||||
template: syntax/valid
|
||||
---*/
|
||||
|
||||
//- elements
|
||||
static constructor() {}
|
||||
constructor() {} // stacks with a valid constructor
|
||||
//- teardown
|
||||
assert(C.hasOwnProperty('constructor'));
|
||||
assert(C.prototype.hasOwnProperty('constructor'));
|
||||
assert.notSameValue(C.prototype.constructor, C.constructor);
|
|
@ -0,0 +1,16 @@
|
|||
// Copyright (C) 2018 Leo Balter. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
desc: Static Methods can be named constructor
|
||||
info: |
|
||||
Class Definitions / Static Semantics: Early Errors
|
||||
|
||||
ClassElement : static MethodDefinition
|
||||
It is a Syntax Error if PropName of MethodDefinition is "prototype"
|
||||
template: syntax/invalid
|
||||
---*/
|
||||
|
||||
//- elements
|
||||
static constructor() {}
|
||||
constructor() {} // stacks with a valid constructor
|
Loading…
Reference in New Issue