mirror of
https://github.com/tc39/test262.git
synced 2025-07-23 14:04:51 +02:00
Decorators: add initial tests on class
This commit is contained in:
parent
509363bcfd
commit
6f8e0f67ca
@ -272,6 +272,10 @@ Intl.DurationFormat
|
|||||||
# https://github.com/tc39/proposal-regexp-set-notation
|
# https://github.com/tc39/proposal-regexp-set-notation
|
||||||
regexp-v-flag
|
regexp-v-flag
|
||||||
|
|
||||||
|
# Decorators
|
||||||
|
# https://github.com/tc39/proposal-decorators
|
||||||
|
decorators
|
||||||
|
|
||||||
## Standard language features
|
## Standard language features
|
||||||
#
|
#
|
||||||
# Language features that have been included in a published version of the
|
# Language features that have been included in a published version of the
|
||||||
|
@ -0,0 +1,28 @@
|
|||||||
|
// Copyright (C) 2022 Chengzhong Wu. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
desc: Valid accessor FieldDefinition, ClassElementName, PropertyName Syntax
|
||||||
|
info: |
|
||||||
|
FieldDefinition[Yield, Await] :
|
||||||
|
accessor [no LineTerminator here] ClassElementName[?Yield, ?Await] Initializer[+In, ?Yield, ?Await]opt
|
||||||
|
|
||||||
|
template: default
|
||||||
|
features: [decorators]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
//- elements
|
||||||
|
accessor
|
||||||
|
$;
|
||||||
|
static accessor
|
||||||
|
$;
|
||||||
|
|
||||||
|
//- assertions
|
||||||
|
let c = new C();
|
||||||
|
|
||||||
|
assert.sameValue(Object.hasOwnProperty.call(C.prototype, 'accessor'), false);
|
||||||
|
assert.sameValue(Object.hasOwnProperty.call(C.prototype, '$'), false);
|
||||||
|
assert.sameValue(Object.hasOwnProperty.call(C, 'accessor'), true);
|
||||||
|
assert.sameValue(Object.hasOwnProperty.call(C, '$'), true);
|
||||||
|
assert.sameValue(Object.hasOwnProperty.call(c, 'accessor'), true);
|
||||||
|
assert.sameValue(Object.hasOwnProperty.call(c, '$'), true);
|
21
src/class-elements/grammar-field-accessor.case
Normal file
21
src/class-elements/grammar-field-accessor.case
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
// Copyright (C) 2022 Chengzhong Wu. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
desc: Valid accessor FieldDefinition, ClassElementName, PropertyName Syntax
|
||||||
|
info: |
|
||||||
|
FieldDefinition[Yield, Await] :
|
||||||
|
ClassElementName[?Yield, ?Await] Initializer[+In, ?Yield, ?Await]opt
|
||||||
|
accessor [no LineTerminator here] ClassElementName[?Yield, ?Await] Initializer[+In, ?Yield, ?Await]opt
|
||||||
|
|
||||||
|
template: syntax/valid
|
||||||
|
features: [decorators]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
//- elements
|
||||||
|
accessor $;
|
||||||
|
accessor _;
|
||||||
|
accessor \u{6F};
|
||||||
|
accessor \u2118;
|
||||||
|
accessor ZW_\u200C_NJ;
|
||||||
|
accessor ZW_\u200D_J;
|
44
src/decorator/decorator-call-expr-identifier-reference.case
Normal file
44
src/decorator/decorator-call-expr-identifier-reference.case
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
// Copyright (C) 2022 Chengzhong Wu. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
desc: >
|
||||||
|
Decorator @ DecoratorCallExpression
|
||||||
|
info: |
|
||||||
|
DecoratorCallExpression[Yield, Await] :
|
||||||
|
DecoratorMemberExpression[?Yield, ?Await] Arguments[?Yield, ?Await]
|
||||||
|
|
||||||
|
DecoratorMemberExpression[Yield, Await] :
|
||||||
|
IdentifierReference[?Yield, ?Await]
|
||||||
|
PrivateIdentifier
|
||||||
|
DecoratorMemberExpression[?Yield, ?Await] . IdentifierName
|
||||||
|
|
||||||
|
IdentifierReference[Yield, Await] :
|
||||||
|
Identifier
|
||||||
|
[~Yield] yield
|
||||||
|
[~Await] await
|
||||||
|
|
||||||
|
template: syntax/valid
|
||||||
|
---*/
|
||||||
|
|
||||||
|
//- setup
|
||||||
|
function decorator() {
|
||||||
|
return () => {};
|
||||||
|
}
|
||||||
|
var _ = decorator;
|
||||||
|
var \u{6F} = decorator;
|
||||||
|
var \u2118 = decorator;
|
||||||
|
var ZW_\u200C_NJ = decorator;
|
||||||
|
var ZW_\u200D_J = decorator;
|
||||||
|
var yield = decorator;
|
||||||
|
var await = decorator;
|
||||||
|
|
||||||
|
//- decorators
|
||||||
|
@$()
|
||||||
|
@_()
|
||||||
|
@\u{6F}()
|
||||||
|
@\u2118()
|
||||||
|
@ZW_\u200C_NJ()
|
||||||
|
@ZW_\u200D_J()
|
||||||
|
@yield()
|
||||||
|
@await()
|
@ -0,0 +1,36 @@
|
|||||||
|
// Copyright (C) 2022 Chengzhong Wu. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
desc: >
|
||||||
|
Decorator @ DecoratorMemberExpression
|
||||||
|
info: |
|
||||||
|
DecoratorMemberExpression[Yield, Await] :
|
||||||
|
IdentifierReference[?Yield, ?Await]
|
||||||
|
PrivateIdentifier
|
||||||
|
DecoratorMemberExpression[?Yield, ?Await] . IdentifierName
|
||||||
|
|
||||||
|
template: syntax/valid
|
||||||
|
---*/
|
||||||
|
|
||||||
|
//- setup
|
||||||
|
let ns = {
|
||||||
|
$() {}
|
||||||
|
_() {}
|
||||||
|
\u{6F}() {}
|
||||||
|
\u2118() {}
|
||||||
|
ZW_\u200C_NJ() {}
|
||||||
|
ZW_\u200D_J() {}
|
||||||
|
yield() {}
|
||||||
|
await() {}
|
||||||
|
}
|
||||||
|
|
||||||
|
//- decorators
|
||||||
|
@ns.$
|
||||||
|
@ns._
|
||||||
|
@ns.\u{6F}
|
||||||
|
@ns.\u2118
|
||||||
|
@ns.ZW_\u200C_NJ
|
||||||
|
@ns.ZW_\u200D_J
|
||||||
|
@ns.yield
|
||||||
|
@ns.await
|
@ -0,0 +1,33 @@
|
|||||||
|
// Copyright (C) 2022 Chengzhong Wu. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
desc: >
|
||||||
|
Decorator @ DecoratorMemberExpression
|
||||||
|
info: |
|
||||||
|
IdentifierReference[Yield, Await] :
|
||||||
|
Identifier
|
||||||
|
[~Yield] yield
|
||||||
|
[~Await] await
|
||||||
|
template: syntax/valid
|
||||||
|
---*/
|
||||||
|
|
||||||
|
//- setup
|
||||||
|
function $() {}
|
||||||
|
function _() {}
|
||||||
|
function \u{6F}() {}
|
||||||
|
function \u2118() {}
|
||||||
|
function ZW_\u200C_NJ() {}
|
||||||
|
function ZW_\u200D_J() {}
|
||||||
|
function yield() {}
|
||||||
|
function await() {}
|
||||||
|
|
||||||
|
//- decorators
|
||||||
|
@$
|
||||||
|
@_
|
||||||
|
@\u{6F}
|
||||||
|
@\u2118
|
||||||
|
@ZW_\u200C_NJ
|
||||||
|
@ZW_\u200D_J
|
||||||
|
@yield
|
||||||
|
@await
|
35
src/decorator/decorator-member-expr-private-identifier.case
Normal file
35
src/decorator/decorator-member-expr-private-identifier.case
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
// Copyright (C) 2022 Chengzhong Wu. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
desc: >
|
||||||
|
Decorator @ DecoratorMemberExpression
|
||||||
|
info: |
|
||||||
|
DecoratorMemberExpression[Yield, Await] :
|
||||||
|
PrivateIdentifier
|
||||||
|
|
||||||
|
PrivateIdentifier ::
|
||||||
|
# IdentifierName
|
||||||
|
|
||||||
|
template: syntax/class-valid
|
||||||
|
---*/
|
||||||
|
|
||||||
|
//- elements
|
||||||
|
static #$() {}
|
||||||
|
static #_() {}
|
||||||
|
static #\u{6F}() {}
|
||||||
|
static #\u2118() {}
|
||||||
|
static #ZW_\u200C_NJ() {}
|
||||||
|
static #ZW_\u200D_J() {}
|
||||||
|
static #yield() {}
|
||||||
|
static #await() {}
|
||||||
|
|
||||||
|
//- decorators
|
||||||
|
@#$
|
||||||
|
@#_
|
||||||
|
@#\u{6F}
|
||||||
|
@#\u2118
|
||||||
|
@#ZW_\u200C_NJ
|
||||||
|
@#ZW_\u200D_J
|
||||||
|
@#yield
|
||||||
|
@#await
|
@ -0,0 +1,47 @@
|
|||||||
|
// Copyright (C) 2022 Chengzhong Wu. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
desc: >
|
||||||
|
Decorator @ DecoratorParenthesizedExpression
|
||||||
|
info: |
|
||||||
|
DecoratorParenthesizedExpression[Yield, Await] :
|
||||||
|
( Expression[+In, ?Yield, ?Await] )
|
||||||
|
|
||||||
|
PrimaryExpression[Yield, Await] :
|
||||||
|
this
|
||||||
|
IdentifierReference[?Yield, ?Await]
|
||||||
|
Literal
|
||||||
|
ArrayLiteral[?Yield, ?Await]
|
||||||
|
ObjectLiteral[?Yield, ?Await]
|
||||||
|
FunctionExpression
|
||||||
|
ClassExpression[?Yield, ?Await]
|
||||||
|
GeneratorExpression
|
||||||
|
AsyncFunctionExpression
|
||||||
|
AsyncGeneratorExpression
|
||||||
|
RegularExpressionLiteral
|
||||||
|
TemplateLiteral[?Yield, ?Await, ~Tagged]
|
||||||
|
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
|
||||||
|
|
||||||
|
template: syntax/valid
|
||||||
|
---*/
|
||||||
|
|
||||||
|
//- setup
|
||||||
|
function $() {}
|
||||||
|
function _() {}
|
||||||
|
function \u{6F}() {}
|
||||||
|
function \u2118() {}
|
||||||
|
function ZW_\u200C_NJ() {}
|
||||||
|
function ZW_\u200D_J() {}
|
||||||
|
function yield() {}
|
||||||
|
function await() {}
|
||||||
|
|
||||||
|
//- decorators
|
||||||
|
@($)
|
||||||
|
@(_)
|
||||||
|
@(\u{6F})
|
||||||
|
@(\u2118)
|
||||||
|
@(ZW_\u200C_NJ)
|
||||||
|
@(ZW_\u200D_J)
|
||||||
|
@(yield)
|
||||||
|
@(await)
|
@ -0,0 +1,30 @@
|
|||||||
|
// Copyright (C) 2022 Chengzhong Wu. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: prod-ClassDeclaration
|
||||||
|
name: Valid syntax for decorator on class declaration in class body.
|
||||||
|
path: language/statements/class/decorator/syntax/class-valid/
|
||||||
|
info: |
|
||||||
|
ClassDeclaration[Yield, Await, Default] :
|
||||||
|
DecoratorList[?Yield, ?Await]opt class BindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
|
||||||
|
[+Default] DecoratorList[?Yield, ?Await]opt class ClassTail[?Yield, ?Await]
|
||||||
|
|
||||||
|
DecoratorList[Yield, Await] :
|
||||||
|
DecoratorList[?Yield, ?Await]opt Decorator[?Yield, ?Await]
|
||||||
|
|
||||||
|
Decorator[Yield, Await] :
|
||||||
|
@ DecoratorMemberExpression[?Yield, ?Await]
|
||||||
|
@ DecoratorParenthesizedExpression[?Yield, ?Await]
|
||||||
|
@ DecoratorCallExpression[?Yield, ?Await]
|
||||||
|
|
||||||
|
...
|
||||||
|
features: [class, decorators]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
class C {
|
||||||
|
/*{ elements }*/
|
||||||
|
static {
|
||||||
|
/*{ decorators }*/ class C {}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,29 @@
|
|||||||
|
// Copyright (C) 2022 Chengzhong Wu. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: prod-ClassExpression
|
||||||
|
name: Valid syntax for decorator on class expression in class body.
|
||||||
|
path: language/expressions/class/decorator/syntax/class-valid/
|
||||||
|
info: |
|
||||||
|
ClassExpression[Yield, Await] :
|
||||||
|
DecoratorList[?Yield, ?Await]opt class BindingIdentifier[?Yield, ?Await]opt ClassTail[?Yield, ?Await]
|
||||||
|
|
||||||
|
DecoratorList[Yield, Await] :
|
||||||
|
DecoratorList[?Yield, ?Await]opt Decorator[?Yield, ?Await]
|
||||||
|
|
||||||
|
Decorator[Yield, Await] :
|
||||||
|
@ DecoratorMemberExpression[?Yield, ?Await]
|
||||||
|
@ DecoratorParenthesizedExpression[?Yield, ?Await]
|
||||||
|
@ DecoratorCallExpression[?Yield, ?Await]
|
||||||
|
|
||||||
|
...
|
||||||
|
features: [class, decorators]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
var C = class {
|
||||||
|
/*{ elements }*/
|
||||||
|
static {
|
||||||
|
var C = /*{ decorators }*/ class {}
|
||||||
|
}
|
||||||
|
};
|
@ -0,0 +1,25 @@
|
|||||||
|
// Copyright (C) 2022 Chengzhong Wu. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: prod-ClassDeclaration
|
||||||
|
name: Valid syntax for decorator on class.
|
||||||
|
path: language/statements/class/decorator/syntax/valid/
|
||||||
|
info: |
|
||||||
|
ClassDeclaration[Yield, Await, Default] :
|
||||||
|
DecoratorList[?Yield, ?Await]opt class BindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
|
||||||
|
[+Default] DecoratorList[?Yield, ?Await]opt class ClassTail[?Yield, ?Await]
|
||||||
|
|
||||||
|
DecoratorList[Yield, Await] :
|
||||||
|
DecoratorList[?Yield, ?Await]opt Decorator[?Yield, ?Await]
|
||||||
|
|
||||||
|
Decorator[Yield, Await] :
|
||||||
|
@ DecoratorMemberExpression[?Yield, ?Await]
|
||||||
|
@ DecoratorParenthesizedExpression[?Yield, ?Await]
|
||||||
|
@ DecoratorCallExpression[?Yield, ?Await]
|
||||||
|
|
||||||
|
...
|
||||||
|
features: [class, decorators]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
/*{ decorators }*/ class C {}
|
@ -0,0 +1,34 @@
|
|||||||
|
// Copyright (C) 2022 Chengzhong Wu. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: prod-ClassDeclaration
|
||||||
|
name: Valid syntax for decorator on class.
|
||||||
|
path: language/statements/class/decorator/syntax/valid/
|
||||||
|
info: |
|
||||||
|
ClassElement[Yield, Await] :
|
||||||
|
DecoratorList[?Yield, ?Await]opt MethodDefinition[?Yield, ?Await]
|
||||||
|
DecoratorList[?Yield, ?Await]opt static MethodDefinition[?Yield, ?Await]
|
||||||
|
DecoratorList[?Yield, ?Await]opt FieldDefinition[?Yield, ?Await] ;
|
||||||
|
DecoratorList[?Yield, ?Await]opt static FieldDefinition[?Yield, ?Await] ;
|
||||||
|
ClassStaticBlock
|
||||||
|
;
|
||||||
|
|
||||||
|
DecoratorList[Yield, Await] :
|
||||||
|
DecoratorList[?Yield, ?Await]opt Decorator[?Yield, ?Await]
|
||||||
|
|
||||||
|
Decorator[Yield, Await] :
|
||||||
|
@ DecoratorMemberExpression[?Yield, ?Await]
|
||||||
|
@ DecoratorParenthesizedExpression[?Yield, ?Await]
|
||||||
|
@ DecoratorCallExpression[?Yield, ?Await]
|
||||||
|
|
||||||
|
...
|
||||||
|
features: [class, decorators]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
class C {
|
||||||
|
/*{ decorators }*/ method() {}
|
||||||
|
/*{ decorators }*/ static method() {}
|
||||||
|
/*{ decorators }*/ field;
|
||||||
|
/*{ decorators }*/ static field;
|
||||||
|
}
|
@ -0,0 +1,24 @@
|
|||||||
|
// Copyright (C) 2022 Chengzhong Wu. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: prod-ClassExpression
|
||||||
|
name: Valid syntax for decorator on class expression
|
||||||
|
path: language/expressions/class/decorator/syntax/valid/
|
||||||
|
info: |
|
||||||
|
ClassExpression[Yield, Await] :
|
||||||
|
DecoratorList[?Yield, ?Await]opt class BindingIdentifier[?Yield, ?Await]opt ClassTail[?Yield, ?Await]
|
||||||
|
|
||||||
|
DecoratorList[Yield, Await] :
|
||||||
|
DecoratorList[?Yield, ?Await]opt Decorator[?Yield, ?Await]
|
||||||
|
|
||||||
|
Decorator[Yield, Await] :
|
||||||
|
@ DecoratorMemberExpression[?Yield, ?Await]
|
||||||
|
@ DecoratorParenthesizedExpression[?Yield, ?Await]
|
||||||
|
@ DecoratorCallExpression[?Yield, ?Await]
|
||||||
|
|
||||||
|
...
|
||||||
|
features: [class, decorators]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
var C = /*{ decorators }*/ class {};
|
@ -0,0 +1,53 @@
|
|||||||
|
// This file was procedurally generated from the following sources:
|
||||||
|
// - src/decorator/decorator-member-expr-private-identifier.case
|
||||||
|
// - src/decorator/syntax/class-valid/cls-expr-decorators-valid-syntax.template
|
||||||
|
/*---
|
||||||
|
description: Decorator @ DecoratorMemberExpression (Valid syntax for decorator on class expression in class body.)
|
||||||
|
esid: prod-ClassExpression
|
||||||
|
features: [class, decorators]
|
||||||
|
flags: [generated]
|
||||||
|
info: |
|
||||||
|
ClassExpression[Yield, Await] :
|
||||||
|
DecoratorList[?Yield, ?Await]opt class BindingIdentifier[?Yield, ?Await]opt ClassTail[?Yield, ?Await]
|
||||||
|
|
||||||
|
DecoratorList[Yield, Await] :
|
||||||
|
DecoratorList[?Yield, ?Await]opt Decorator[?Yield, ?Await]
|
||||||
|
|
||||||
|
Decorator[Yield, Await] :
|
||||||
|
@ DecoratorMemberExpression[?Yield, ?Await]
|
||||||
|
@ DecoratorParenthesizedExpression[?Yield, ?Await]
|
||||||
|
@ DecoratorCallExpression[?Yield, ?Await]
|
||||||
|
|
||||||
|
...
|
||||||
|
|
||||||
|
|
||||||
|
DecoratorMemberExpression[Yield, Await] :
|
||||||
|
PrivateIdentifier
|
||||||
|
|
||||||
|
PrivateIdentifier ::
|
||||||
|
# IdentifierName
|
||||||
|
|
||||||
|
---*/
|
||||||
|
|
||||||
|
|
||||||
|
var C = class {
|
||||||
|
static #$() {}
|
||||||
|
static #_() {}
|
||||||
|
static #\u{6F}() {}
|
||||||
|
static #\u2118() {}
|
||||||
|
static #ZW_\u200C_NJ() {}
|
||||||
|
static #ZW_\u200D_J() {}
|
||||||
|
static #yield() {}
|
||||||
|
static #await() {}
|
||||||
|
|
||||||
|
static {
|
||||||
|
var C = @#$
|
||||||
|
@#_
|
||||||
|
@#\u{6F}
|
||||||
|
@#\u2118
|
||||||
|
@#ZW_\u200C_NJ
|
||||||
|
@#ZW_\u200D_J
|
||||||
|
@#yield
|
||||||
|
@#await class {}
|
||||||
|
}
|
||||||
|
};
|
@ -0,0 +1,58 @@
|
|||||||
|
// This file was procedurally generated from the following sources:
|
||||||
|
// - src/decorator/decorator-call-expr-identifier-reference.case
|
||||||
|
// - src/decorator/syntax/valid/cls-expr-decorators-valid-syntax.template
|
||||||
|
/*---
|
||||||
|
description: Decorator @ DecoratorCallExpression (Valid syntax for decorator on class expression)
|
||||||
|
esid: prod-ClassExpression
|
||||||
|
features: [class, decorators]
|
||||||
|
flags: [generated]
|
||||||
|
info: |
|
||||||
|
ClassExpression[Yield, Await] :
|
||||||
|
DecoratorList[?Yield, ?Await]opt class BindingIdentifier[?Yield, ?Await]opt ClassTail[?Yield, ?Await]
|
||||||
|
|
||||||
|
DecoratorList[Yield, Await] :
|
||||||
|
DecoratorList[?Yield, ?Await]opt Decorator[?Yield, ?Await]
|
||||||
|
|
||||||
|
Decorator[Yield, Await] :
|
||||||
|
@ DecoratorMemberExpression[?Yield, ?Await]
|
||||||
|
@ DecoratorParenthesizedExpression[?Yield, ?Await]
|
||||||
|
@ DecoratorCallExpression[?Yield, ?Await]
|
||||||
|
|
||||||
|
...
|
||||||
|
|
||||||
|
|
||||||
|
DecoratorCallExpression[Yield, Await] :
|
||||||
|
DecoratorMemberExpression[?Yield, ?Await] Arguments[?Yield, ?Await]
|
||||||
|
|
||||||
|
DecoratorMemberExpression[Yield, Await] :
|
||||||
|
IdentifierReference[?Yield, ?Await]
|
||||||
|
PrivateIdentifier
|
||||||
|
DecoratorMemberExpression[?Yield, ?Await] . IdentifierName
|
||||||
|
|
||||||
|
IdentifierReference[Yield, Await] :
|
||||||
|
Identifier
|
||||||
|
[~Yield] yield
|
||||||
|
[~Await] await
|
||||||
|
|
||||||
|
---*/
|
||||||
|
function decorator() {
|
||||||
|
return () => {};
|
||||||
|
}
|
||||||
|
var _ = decorator;
|
||||||
|
var \u{6F} = decorator;
|
||||||
|
var \u2118 = decorator;
|
||||||
|
var ZW_\u200C_NJ = decorator;
|
||||||
|
var ZW_\u200D_J = decorator;
|
||||||
|
var yield = decorator;
|
||||||
|
var await = decorator;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var C = @$()
|
||||||
|
@_()
|
||||||
|
@\u{6F}()
|
||||||
|
@\u2118()
|
||||||
|
@ZW_\u200C_NJ()
|
||||||
|
@ZW_\u200D_J()
|
||||||
|
@yield()
|
||||||
|
@await() class {};
|
@ -0,0 +1,50 @@
|
|||||||
|
// This file was procedurally generated from the following sources:
|
||||||
|
// - src/decorator/decorator-member-expr-decorator-member-expr.case
|
||||||
|
// - src/decorator/syntax/valid/cls-expr-decorators-valid-syntax.template
|
||||||
|
/*---
|
||||||
|
description: Decorator @ DecoratorMemberExpression (Valid syntax for decorator on class expression)
|
||||||
|
esid: prod-ClassExpression
|
||||||
|
features: [class, decorators]
|
||||||
|
flags: [generated]
|
||||||
|
info: |
|
||||||
|
ClassExpression[Yield, Await] :
|
||||||
|
DecoratorList[?Yield, ?Await]opt class BindingIdentifier[?Yield, ?Await]opt ClassTail[?Yield, ?Await]
|
||||||
|
|
||||||
|
DecoratorList[Yield, Await] :
|
||||||
|
DecoratorList[?Yield, ?Await]opt Decorator[?Yield, ?Await]
|
||||||
|
|
||||||
|
Decorator[Yield, Await] :
|
||||||
|
@ DecoratorMemberExpression[?Yield, ?Await]
|
||||||
|
@ DecoratorParenthesizedExpression[?Yield, ?Await]
|
||||||
|
@ DecoratorCallExpression[?Yield, ?Await]
|
||||||
|
|
||||||
|
...
|
||||||
|
|
||||||
|
|
||||||
|
DecoratorMemberExpression[Yield, Await] :
|
||||||
|
IdentifierReference[?Yield, ?Await]
|
||||||
|
PrivateIdentifier
|
||||||
|
DecoratorMemberExpression[?Yield, ?Await] . IdentifierName
|
||||||
|
|
||||||
|
---*/
|
||||||
|
let ns = {
|
||||||
|
$() {}
|
||||||
|
_() {}
|
||||||
|
\u{6F}() {}
|
||||||
|
\u2118() {}
|
||||||
|
ZW_\u200C_NJ() {}
|
||||||
|
ZW_\u200D_J() {}
|
||||||
|
yield() {}
|
||||||
|
await() {}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var C = @ns.$
|
||||||
|
@ns._
|
||||||
|
@ns.\u{6F}
|
||||||
|
@ns.\u2118
|
||||||
|
@ns.ZW_\u200C_NJ
|
||||||
|
@ns.ZW_\u200D_J
|
||||||
|
@ns.yield
|
||||||
|
@ns.await class {};
|
@ -0,0 +1,48 @@
|
|||||||
|
// This file was procedurally generated from the following sources:
|
||||||
|
// - src/decorator/decorator-member-expr-identifier-reference.case
|
||||||
|
// - src/decorator/syntax/valid/cls-expr-decorators-valid-syntax.template
|
||||||
|
/*---
|
||||||
|
description: Decorator @ DecoratorMemberExpression (Valid syntax for decorator on class expression)
|
||||||
|
esid: prod-ClassExpression
|
||||||
|
features: [class, decorators]
|
||||||
|
flags: [generated]
|
||||||
|
info: |
|
||||||
|
ClassExpression[Yield, Await] :
|
||||||
|
DecoratorList[?Yield, ?Await]opt class BindingIdentifier[?Yield, ?Await]opt ClassTail[?Yield, ?Await]
|
||||||
|
|
||||||
|
DecoratorList[Yield, Await] :
|
||||||
|
DecoratorList[?Yield, ?Await]opt Decorator[?Yield, ?Await]
|
||||||
|
|
||||||
|
Decorator[Yield, Await] :
|
||||||
|
@ DecoratorMemberExpression[?Yield, ?Await]
|
||||||
|
@ DecoratorParenthesizedExpression[?Yield, ?Await]
|
||||||
|
@ DecoratorCallExpression[?Yield, ?Await]
|
||||||
|
|
||||||
|
...
|
||||||
|
|
||||||
|
|
||||||
|
IdentifierReference[Yield, Await] :
|
||||||
|
Identifier
|
||||||
|
[~Yield] yield
|
||||||
|
[~Await] await
|
||||||
|
|
||||||
|
---*/
|
||||||
|
function $() {}
|
||||||
|
function _() {}
|
||||||
|
function \u{6F}() {}
|
||||||
|
function \u2118() {}
|
||||||
|
function ZW_\u200C_NJ() {}
|
||||||
|
function ZW_\u200D_J() {}
|
||||||
|
function yield() {}
|
||||||
|
function await() {}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var C = @$
|
||||||
|
@_
|
||||||
|
@\u{6F}
|
||||||
|
@\u2118
|
||||||
|
@ZW_\u200C_NJ
|
||||||
|
@ZW_\u200D_J
|
||||||
|
@yield
|
||||||
|
@await class {};
|
@ -0,0 +1,61 @@
|
|||||||
|
// This file was procedurally generated from the following sources:
|
||||||
|
// - src/decorator/decorator-parenthesized-expr-identifier-reference.case
|
||||||
|
// - src/decorator/syntax/valid/cls-expr-decorators-valid-syntax.template
|
||||||
|
/*---
|
||||||
|
description: Decorator @ DecoratorParenthesizedExpression (Valid syntax for decorator on class expression)
|
||||||
|
esid: prod-ClassExpression
|
||||||
|
features: [class, decorators]
|
||||||
|
flags: [generated]
|
||||||
|
info: |
|
||||||
|
ClassExpression[Yield, Await] :
|
||||||
|
DecoratorList[?Yield, ?Await]opt class BindingIdentifier[?Yield, ?Await]opt ClassTail[?Yield, ?Await]
|
||||||
|
|
||||||
|
DecoratorList[Yield, Await] :
|
||||||
|
DecoratorList[?Yield, ?Await]opt Decorator[?Yield, ?Await]
|
||||||
|
|
||||||
|
Decorator[Yield, Await] :
|
||||||
|
@ DecoratorMemberExpression[?Yield, ?Await]
|
||||||
|
@ DecoratorParenthesizedExpression[?Yield, ?Await]
|
||||||
|
@ DecoratorCallExpression[?Yield, ?Await]
|
||||||
|
|
||||||
|
...
|
||||||
|
|
||||||
|
|
||||||
|
DecoratorParenthesizedExpression[Yield, Await] :
|
||||||
|
( Expression[+In, ?Yield, ?Await] )
|
||||||
|
|
||||||
|
PrimaryExpression[Yield, Await] :
|
||||||
|
this
|
||||||
|
IdentifierReference[?Yield, ?Await]
|
||||||
|
Literal
|
||||||
|
ArrayLiteral[?Yield, ?Await]
|
||||||
|
ObjectLiteral[?Yield, ?Await]
|
||||||
|
FunctionExpression
|
||||||
|
ClassExpression[?Yield, ?Await]
|
||||||
|
GeneratorExpression
|
||||||
|
AsyncFunctionExpression
|
||||||
|
AsyncGeneratorExpression
|
||||||
|
RegularExpressionLiteral
|
||||||
|
TemplateLiteral[?Yield, ?Await, ~Tagged]
|
||||||
|
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
|
||||||
|
|
||||||
|
---*/
|
||||||
|
function $() {}
|
||||||
|
function _() {}
|
||||||
|
function \u{6F}() {}
|
||||||
|
function \u2118() {}
|
||||||
|
function ZW_\u200C_NJ() {}
|
||||||
|
function ZW_\u200D_J() {}
|
||||||
|
function yield() {}
|
||||||
|
function await() {}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var C = @($)
|
||||||
|
@(_)
|
||||||
|
@(\u{6F})
|
||||||
|
@(\u2118)
|
||||||
|
@(ZW_\u200C_NJ)
|
||||||
|
@(ZW_\u200D_J)
|
||||||
|
@(yield)
|
||||||
|
@(await) class {};
|
@ -0,0 +1,31 @@
|
|||||||
|
// This file was procedurally generated from the following sources:
|
||||||
|
// - src/class-elements/field-definition-accessor-no-line-terminator.case
|
||||||
|
// - src/class-elements/default/cls-expr.template
|
||||||
|
/*---
|
||||||
|
description: Valid accessor FieldDefinition, ClassElementName, PropertyName Syntax (field definitions in a class expression)
|
||||||
|
esid: prod-FieldDefinition
|
||||||
|
features: [decorators, class]
|
||||||
|
flags: [generated]
|
||||||
|
info: |
|
||||||
|
FieldDefinition[Yield, Await] :
|
||||||
|
accessor [no LineTerminator here] ClassElementName[?Yield, ?Await] Initializer[+In, ?Yield, ?Await]opt
|
||||||
|
|
||||||
|
---*/
|
||||||
|
|
||||||
|
|
||||||
|
var C = class {
|
||||||
|
accessor
|
||||||
|
$;
|
||||||
|
static accessor
|
||||||
|
$;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
let c = new C();
|
||||||
|
|
||||||
|
assert.sameValue(Object.hasOwnProperty.call(C.prototype, 'accessor'), false);
|
||||||
|
assert.sameValue(Object.hasOwnProperty.call(C.prototype, '$'), false);
|
||||||
|
assert.sameValue(Object.hasOwnProperty.call(C, 'accessor'), true);
|
||||||
|
assert.sameValue(Object.hasOwnProperty.call(C, '$'), true);
|
||||||
|
assert.sameValue(Object.hasOwnProperty.call(c, 'accessor'), true);
|
||||||
|
assert.sameValue(Object.hasOwnProperty.call(c, '$'), true);
|
@ -0,0 +1,24 @@
|
|||||||
|
// This file was procedurally generated from the following sources:
|
||||||
|
// - src/class-elements/grammar-field-accessor.case
|
||||||
|
// - src/class-elements/syntax/valid/cls-expr-elements-valid-syntax.template
|
||||||
|
/*---
|
||||||
|
description: Valid accessor FieldDefinition, ClassElementName, PropertyName Syntax (class expression)
|
||||||
|
esid: prod-ClassElement
|
||||||
|
features: [decorators, class]
|
||||||
|
flags: [generated]
|
||||||
|
info: |
|
||||||
|
FieldDefinition[Yield, Await] :
|
||||||
|
ClassElementName[?Yield, ?Await] Initializer[+In, ?Yield, ?Await]opt
|
||||||
|
accessor [no LineTerminator here] ClassElementName[?Yield, ?Await] Initializer[+In, ?Yield, ?Await]opt
|
||||||
|
|
||||||
|
---*/
|
||||||
|
|
||||||
|
|
||||||
|
var C = class {
|
||||||
|
accessor $;
|
||||||
|
accessor _;
|
||||||
|
accessor \u{6F};
|
||||||
|
accessor \u2118;
|
||||||
|
accessor ZW_\u200C_NJ;
|
||||||
|
accessor ZW_\u200D_J;
|
||||||
|
};
|
@ -0,0 +1,54 @@
|
|||||||
|
// This file was procedurally generated from the following sources:
|
||||||
|
// - src/decorator/decorator-member-expr-private-identifier.case
|
||||||
|
// - src/decorator/syntax/class-valid/cls-decl-decorators-valid-syntax.template
|
||||||
|
/*---
|
||||||
|
description: Decorator @ DecoratorMemberExpression (Valid syntax for decorator on class declaration in class body.)
|
||||||
|
esid: prod-ClassDeclaration
|
||||||
|
features: [class, decorators]
|
||||||
|
flags: [generated]
|
||||||
|
info: |
|
||||||
|
ClassDeclaration[Yield, Await, Default] :
|
||||||
|
DecoratorList[?Yield, ?Await]opt class BindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
|
||||||
|
[+Default] DecoratorList[?Yield, ?Await]opt class ClassTail[?Yield, ?Await]
|
||||||
|
|
||||||
|
DecoratorList[Yield, Await] :
|
||||||
|
DecoratorList[?Yield, ?Await]opt Decorator[?Yield, ?Await]
|
||||||
|
|
||||||
|
Decorator[Yield, Await] :
|
||||||
|
@ DecoratorMemberExpression[?Yield, ?Await]
|
||||||
|
@ DecoratorParenthesizedExpression[?Yield, ?Await]
|
||||||
|
@ DecoratorCallExpression[?Yield, ?Await]
|
||||||
|
|
||||||
|
...
|
||||||
|
|
||||||
|
|
||||||
|
DecoratorMemberExpression[Yield, Await] :
|
||||||
|
PrivateIdentifier
|
||||||
|
|
||||||
|
PrivateIdentifier ::
|
||||||
|
# IdentifierName
|
||||||
|
|
||||||
|
---*/
|
||||||
|
|
||||||
|
|
||||||
|
class C {
|
||||||
|
static #$() {}
|
||||||
|
static #_() {}
|
||||||
|
static #\u{6F}() {}
|
||||||
|
static #\u2118() {}
|
||||||
|
static #ZW_\u200C_NJ() {}
|
||||||
|
static #ZW_\u200D_J() {}
|
||||||
|
static #yield() {}
|
||||||
|
static #await() {}
|
||||||
|
|
||||||
|
static {
|
||||||
|
@#$
|
||||||
|
@#_
|
||||||
|
@#\u{6F}
|
||||||
|
@#\u2118
|
||||||
|
@#ZW_\u200C_NJ
|
||||||
|
@#ZW_\u200D_J
|
||||||
|
@#yield
|
||||||
|
@#await class C {}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,59 @@
|
|||||||
|
// This file was procedurally generated from the following sources:
|
||||||
|
// - src/decorator/decorator-call-expr-identifier-reference.case
|
||||||
|
// - src/decorator/syntax/valid/cls-decl-decorators-valid-syntax.template
|
||||||
|
/*---
|
||||||
|
description: Decorator @ DecoratorCallExpression (Valid syntax for decorator on class.)
|
||||||
|
esid: prod-ClassDeclaration
|
||||||
|
features: [class, decorators]
|
||||||
|
flags: [generated]
|
||||||
|
info: |
|
||||||
|
ClassDeclaration[Yield, Await, Default] :
|
||||||
|
DecoratorList[?Yield, ?Await]opt class BindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
|
||||||
|
[+Default] DecoratorList[?Yield, ?Await]opt class ClassTail[?Yield, ?Await]
|
||||||
|
|
||||||
|
DecoratorList[Yield, Await] :
|
||||||
|
DecoratorList[?Yield, ?Await]opt Decorator[?Yield, ?Await]
|
||||||
|
|
||||||
|
Decorator[Yield, Await] :
|
||||||
|
@ DecoratorMemberExpression[?Yield, ?Await]
|
||||||
|
@ DecoratorParenthesizedExpression[?Yield, ?Await]
|
||||||
|
@ DecoratorCallExpression[?Yield, ?Await]
|
||||||
|
|
||||||
|
...
|
||||||
|
|
||||||
|
|
||||||
|
DecoratorCallExpression[Yield, Await] :
|
||||||
|
DecoratorMemberExpression[?Yield, ?Await] Arguments[?Yield, ?Await]
|
||||||
|
|
||||||
|
DecoratorMemberExpression[Yield, Await] :
|
||||||
|
IdentifierReference[?Yield, ?Await]
|
||||||
|
PrivateIdentifier
|
||||||
|
DecoratorMemberExpression[?Yield, ?Await] . IdentifierName
|
||||||
|
|
||||||
|
IdentifierReference[Yield, Await] :
|
||||||
|
Identifier
|
||||||
|
[~Yield] yield
|
||||||
|
[~Await] await
|
||||||
|
|
||||||
|
---*/
|
||||||
|
function decorator() {
|
||||||
|
return () => {};
|
||||||
|
}
|
||||||
|
var _ = decorator;
|
||||||
|
var \u{6F} = decorator;
|
||||||
|
var \u2118 = decorator;
|
||||||
|
var ZW_\u200C_NJ = decorator;
|
||||||
|
var ZW_\u200D_J = decorator;
|
||||||
|
var yield = decorator;
|
||||||
|
var await = decorator;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@$()
|
||||||
|
@_()
|
||||||
|
@\u{6F}()
|
||||||
|
@\u2118()
|
||||||
|
@ZW_\u200C_NJ()
|
||||||
|
@ZW_\u200D_J()
|
||||||
|
@yield()
|
||||||
|
@await() class C {}
|
@ -0,0 +1,51 @@
|
|||||||
|
// This file was procedurally generated from the following sources:
|
||||||
|
// - src/decorator/decorator-member-expr-decorator-member-expr.case
|
||||||
|
// - src/decorator/syntax/valid/cls-decl-decorators-valid-syntax.template
|
||||||
|
/*---
|
||||||
|
description: Decorator @ DecoratorMemberExpression (Valid syntax for decorator on class.)
|
||||||
|
esid: prod-ClassDeclaration
|
||||||
|
features: [class, decorators]
|
||||||
|
flags: [generated]
|
||||||
|
info: |
|
||||||
|
ClassDeclaration[Yield, Await, Default] :
|
||||||
|
DecoratorList[?Yield, ?Await]opt class BindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
|
||||||
|
[+Default] DecoratorList[?Yield, ?Await]opt class ClassTail[?Yield, ?Await]
|
||||||
|
|
||||||
|
DecoratorList[Yield, Await] :
|
||||||
|
DecoratorList[?Yield, ?Await]opt Decorator[?Yield, ?Await]
|
||||||
|
|
||||||
|
Decorator[Yield, Await] :
|
||||||
|
@ DecoratorMemberExpression[?Yield, ?Await]
|
||||||
|
@ DecoratorParenthesizedExpression[?Yield, ?Await]
|
||||||
|
@ DecoratorCallExpression[?Yield, ?Await]
|
||||||
|
|
||||||
|
...
|
||||||
|
|
||||||
|
|
||||||
|
DecoratorMemberExpression[Yield, Await] :
|
||||||
|
IdentifierReference[?Yield, ?Await]
|
||||||
|
PrivateIdentifier
|
||||||
|
DecoratorMemberExpression[?Yield, ?Await] . IdentifierName
|
||||||
|
|
||||||
|
---*/
|
||||||
|
let ns = {
|
||||||
|
$() {}
|
||||||
|
_() {}
|
||||||
|
\u{6F}() {}
|
||||||
|
\u2118() {}
|
||||||
|
ZW_\u200C_NJ() {}
|
||||||
|
ZW_\u200D_J() {}
|
||||||
|
yield() {}
|
||||||
|
await() {}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ns.$
|
||||||
|
@ns._
|
||||||
|
@ns.\u{6F}
|
||||||
|
@ns.\u2118
|
||||||
|
@ns.ZW_\u200C_NJ
|
||||||
|
@ns.ZW_\u200D_J
|
||||||
|
@ns.yield
|
||||||
|
@ns.await class C {}
|
@ -0,0 +1,49 @@
|
|||||||
|
// This file was procedurally generated from the following sources:
|
||||||
|
// - src/decorator/decorator-member-expr-identifier-reference.case
|
||||||
|
// - src/decorator/syntax/valid/cls-decl-decorators-valid-syntax.template
|
||||||
|
/*---
|
||||||
|
description: Decorator @ DecoratorMemberExpression (Valid syntax for decorator on class.)
|
||||||
|
esid: prod-ClassDeclaration
|
||||||
|
features: [class, decorators]
|
||||||
|
flags: [generated]
|
||||||
|
info: |
|
||||||
|
ClassDeclaration[Yield, Await, Default] :
|
||||||
|
DecoratorList[?Yield, ?Await]opt class BindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
|
||||||
|
[+Default] DecoratorList[?Yield, ?Await]opt class ClassTail[?Yield, ?Await]
|
||||||
|
|
||||||
|
DecoratorList[Yield, Await] :
|
||||||
|
DecoratorList[?Yield, ?Await]opt Decorator[?Yield, ?Await]
|
||||||
|
|
||||||
|
Decorator[Yield, Await] :
|
||||||
|
@ DecoratorMemberExpression[?Yield, ?Await]
|
||||||
|
@ DecoratorParenthesizedExpression[?Yield, ?Await]
|
||||||
|
@ DecoratorCallExpression[?Yield, ?Await]
|
||||||
|
|
||||||
|
...
|
||||||
|
|
||||||
|
|
||||||
|
IdentifierReference[Yield, Await] :
|
||||||
|
Identifier
|
||||||
|
[~Yield] yield
|
||||||
|
[~Await] await
|
||||||
|
|
||||||
|
---*/
|
||||||
|
function $() {}
|
||||||
|
function _() {}
|
||||||
|
function \u{6F}() {}
|
||||||
|
function \u2118() {}
|
||||||
|
function ZW_\u200C_NJ() {}
|
||||||
|
function ZW_\u200D_J() {}
|
||||||
|
function yield() {}
|
||||||
|
function await() {}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@$
|
||||||
|
@_
|
||||||
|
@\u{6F}
|
||||||
|
@\u2118
|
||||||
|
@ZW_\u200C_NJ
|
||||||
|
@ZW_\u200D_J
|
||||||
|
@yield
|
||||||
|
@await class C {}
|
@ -0,0 +1,62 @@
|
|||||||
|
// This file was procedurally generated from the following sources:
|
||||||
|
// - src/decorator/decorator-parenthesized-expr-identifier-reference.case
|
||||||
|
// - src/decorator/syntax/valid/cls-decl-decorators-valid-syntax.template
|
||||||
|
/*---
|
||||||
|
description: Decorator @ DecoratorParenthesizedExpression (Valid syntax for decorator on class.)
|
||||||
|
esid: prod-ClassDeclaration
|
||||||
|
features: [class, decorators]
|
||||||
|
flags: [generated]
|
||||||
|
info: |
|
||||||
|
ClassDeclaration[Yield, Await, Default] :
|
||||||
|
DecoratorList[?Yield, ?Await]opt class BindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
|
||||||
|
[+Default] DecoratorList[?Yield, ?Await]opt class ClassTail[?Yield, ?Await]
|
||||||
|
|
||||||
|
DecoratorList[Yield, Await] :
|
||||||
|
DecoratorList[?Yield, ?Await]opt Decorator[?Yield, ?Await]
|
||||||
|
|
||||||
|
Decorator[Yield, Await] :
|
||||||
|
@ DecoratorMemberExpression[?Yield, ?Await]
|
||||||
|
@ DecoratorParenthesizedExpression[?Yield, ?Await]
|
||||||
|
@ DecoratorCallExpression[?Yield, ?Await]
|
||||||
|
|
||||||
|
...
|
||||||
|
|
||||||
|
|
||||||
|
DecoratorParenthesizedExpression[Yield, Await] :
|
||||||
|
( Expression[+In, ?Yield, ?Await] )
|
||||||
|
|
||||||
|
PrimaryExpression[Yield, Await] :
|
||||||
|
this
|
||||||
|
IdentifierReference[?Yield, ?Await]
|
||||||
|
Literal
|
||||||
|
ArrayLiteral[?Yield, ?Await]
|
||||||
|
ObjectLiteral[?Yield, ?Await]
|
||||||
|
FunctionExpression
|
||||||
|
ClassExpression[?Yield, ?Await]
|
||||||
|
GeneratorExpression
|
||||||
|
AsyncFunctionExpression
|
||||||
|
AsyncGeneratorExpression
|
||||||
|
RegularExpressionLiteral
|
||||||
|
TemplateLiteral[?Yield, ?Await, ~Tagged]
|
||||||
|
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
|
||||||
|
|
||||||
|
---*/
|
||||||
|
function $() {}
|
||||||
|
function _() {}
|
||||||
|
function \u{6F}() {}
|
||||||
|
function \u2118() {}
|
||||||
|
function ZW_\u200C_NJ() {}
|
||||||
|
function ZW_\u200D_J() {}
|
||||||
|
function yield() {}
|
||||||
|
function await() {}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@($)
|
||||||
|
@(_)
|
||||||
|
@(\u{6F})
|
||||||
|
@(\u2118)
|
||||||
|
@(ZW_\u200C_NJ)
|
||||||
|
@(ZW_\u200D_J)
|
||||||
|
@(yield)
|
||||||
|
@(await) class C {}
|
@ -0,0 +1,31 @@
|
|||||||
|
// This file was procedurally generated from the following sources:
|
||||||
|
// - src/class-elements/field-definition-accessor-no-line-terminator.case
|
||||||
|
// - src/class-elements/default/cls-decl.template
|
||||||
|
/*---
|
||||||
|
description: Valid accessor FieldDefinition, ClassElementName, PropertyName Syntax (field definitions in a class declaration)
|
||||||
|
esid: prod-FieldDefinition
|
||||||
|
features: [decorators, class]
|
||||||
|
flags: [generated]
|
||||||
|
info: |
|
||||||
|
FieldDefinition[Yield, Await] :
|
||||||
|
accessor [no LineTerminator here] ClassElementName[?Yield, ?Await] Initializer[+In, ?Yield, ?Await]opt
|
||||||
|
|
||||||
|
---*/
|
||||||
|
|
||||||
|
|
||||||
|
class C {
|
||||||
|
accessor
|
||||||
|
$;
|
||||||
|
static accessor
|
||||||
|
$;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
let c = new C();
|
||||||
|
|
||||||
|
assert.sameValue(Object.hasOwnProperty.call(C.prototype, 'accessor'), false);
|
||||||
|
assert.sameValue(Object.hasOwnProperty.call(C.prototype, '$'), false);
|
||||||
|
assert.sameValue(Object.hasOwnProperty.call(C, 'accessor'), true);
|
||||||
|
assert.sameValue(Object.hasOwnProperty.call(C, '$'), true);
|
||||||
|
assert.sameValue(Object.hasOwnProperty.call(c, 'accessor'), true);
|
||||||
|
assert.sameValue(Object.hasOwnProperty.call(c, '$'), true);
|
@ -0,0 +1,24 @@
|
|||||||
|
// This file was procedurally generated from the following sources:
|
||||||
|
// - src/class-elements/grammar-field-accessor.case
|
||||||
|
// - src/class-elements/syntax/valid/cls-decl-elements-valid-syntax.template
|
||||||
|
/*---
|
||||||
|
description: Valid accessor FieldDefinition, ClassElementName, PropertyName Syntax (class declaration)
|
||||||
|
esid: prod-ClassElement
|
||||||
|
features: [decorators, class]
|
||||||
|
flags: [generated]
|
||||||
|
info: |
|
||||||
|
FieldDefinition[Yield, Await] :
|
||||||
|
ClassElementName[?Yield, ?Await] Initializer[+In, ?Yield, ?Await]opt
|
||||||
|
accessor [no LineTerminator here] ClassElementName[?Yield, ?Await] Initializer[+In, ?Yield, ?Await]opt
|
||||||
|
|
||||||
|
---*/
|
||||||
|
|
||||||
|
|
||||||
|
class C {
|
||||||
|
accessor $;
|
||||||
|
accessor _;
|
||||||
|
accessor \u{6F};
|
||||||
|
accessor \u2118;
|
||||||
|
accessor ZW_\u200C_NJ;
|
||||||
|
accessor ZW_\u200D_J;
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user