Class Fields: static method productions

This commit is contained in:
Rick Waldron 2018-08-08 14:08:18 -04:00 committed by Leo Balter
parent aee9dc163e
commit b3869474c5
11 changed files with 954 additions and 12 deletions

View File

@ -0,0 +1,117 @@
// Copyright (C) 2018 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
desc: Valid Static AsyncGeneratorMethod PrivateName
info: |
ClassElement :
MethodDefinition
static MethodDefinition
FieldDefinition ;
static FieldDefinition ;
;
MethodDefinition :
AsyncGeneratorMethod
AsyncGeneratorMethod :
async [no LineTerminator here] * ClassElementName ( UniqueFormalParameters){ AsyncGeneratorBody }
ClassElementName :
PropertyName
PrivateName
PrivateName ::
# IdentifierName
IdentifierName ::
IdentifierStart
IdentifierName IdentifierPart
IdentifierStart ::
UnicodeIDStart
$
_
\ UnicodeEscapeSequence
IdentifierPart::
UnicodeIDContinue
$
\ UnicodeEscapeSequence
<ZWNJ> <ZWJ>
UnicodeIDStart::
any Unicode code point with the Unicode property "ID_Start"
UnicodeIDContinue::
any Unicode code point with the Unicode property "ID_Continue"
NOTE 3
The sets of code points with Unicode properties "ID_Start" and
"ID_Continue" include, respectively, the code points with Unicode
properties "Other_ID_Start" and "Other_ID_Continue".
template: productions
flags: [async]
features: [class-static-methods-private]
---*/
//- fields
static async #$(value) {
yield await value;
}
static async #_(value) {
yield await value;
}
static async #o(value) {
yield await value;
}
static async #℘(value) {
yield await value;
}
static async #ZW__NJ(value) {
yield await value;
}
static async #ZW__J(value) {
yield await value;
}
//- privateinspectionfunctions
static async $(value) {
yield * await this.#$(value);
}
static async _(value) {
yield * await this.#_(value);
}
static async o(value) {
yield * await this.#o(value);
}
static async ℘(value) { // DO NOT CHANGE THE NAME OF THIS FIELD
yield * await this.#℘(value);
}
static async ZW__NJ(value) { // DO NOT CHANGE THE NAME OF THIS FIELD
yield * await this.#ZW__NJ(value);
}
static async ZW__J(value) { // DO NOT CHANGE THE NAME OF THIS FIELD
yield * await this.#ZW__J(value);
}
//- assertions
Promise.all([
C.$(1).next(),
C._(1).next(),
C.o(1).next(),
C.℘(1).next(), // DO NOT CHANGE THE NAME OF THIS FIELD
C.ZW__NJ(1).next(), // DO NOT CHANGE THE NAME OF THIS FIELD
C.ZW__J(1).next(), // DO NOT CHANGE THE NAME OF THIS FIELD
]).then(results => {
assert.sameValue(results[0].value, 1);
assert.sameValue(results[1].value, 1);
assert.sameValue(results[2].value, 1);
assert.sameValue(results[3].value, 1);
assert.sameValue(results[4].value, 1);
assert.sameValue(results[5].value, 1);
}, $DONE).then($DONE, $DONE);

View File

@ -0,0 +1,118 @@
// Copyright (C) 2018 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
desc: Valid Static AsyncGeneratorMethod PrivateName
info: |
ClassElement :
MethodDefinition
static MethodDefinition
FieldDefinition ;
static FieldDefinition ;
;
MethodDefinition :
AsyncGeneratorMethod
AsyncGeneratorMethod :
async [no LineTerminator here] * ClassElementName ( UniqueFormalParameters){ AsyncGeneratorBody }
ClassElementName :
PropertyName
PrivateName
PrivateName ::
# IdentifierName
IdentifierName ::
IdentifierStart
IdentifierName IdentifierPart
IdentifierStart ::
UnicodeIDStart
$
_
\ UnicodeEscapeSequence
IdentifierPart::
UnicodeIDContinue
$
\ UnicodeEscapeSequence
<ZWNJ> <ZWJ>
UnicodeIDStart::
any Unicode code point with the Unicode property "ID_Start"
UnicodeIDContinue::
any Unicode code point with the Unicode property "ID_Continue"
NOTE 3
The sets of code points with Unicode properties "ID_Start" and
"ID_Continue" include, respectively, the code points with Unicode
properties "Other_ID_Start" and "Other_ID_Continue".
template: productions
flags: [async]
features: [class-static-methods-private]
---*/
//- fields
static async * #$(value) {
yield await value;
}
static async * #_(value) {
yield await value;
}
static async * #\u{6F}(value) {
yield await value;
}
static async * #\u2118(value) {
yield await value;
}
static async * #ZW_\u200C_NJ(value) {
yield await value;
}
static async * #ZW_\u200D_J(value) {
yield await value;
}
//- privateinspectionfunctions
static async * $(value) {
yield * await this.#$(value);
}
static async * _(value) {
yield * await this.#_(value);
}
static async * \u{6F}(value) {
yield * await this.#\u{6F}(value);
}
static async * \u2118(value) {
yield * await this.#\u2118(value);
}
static async * ZW_\u200C_NJ(value) {
yield * await this.#ZW_\u200C_NJ(value);
}
static async * ZW_\u200D_J(value) {
yield * await this.#ZW_\u200D_J(value);
}
//- assertions
Promise.all([
C.$(1).next(),
C._(1).next(),
C.\u{6F}(1).next(),
C.\u2118(1).next(),
C.ZW_\u200C_NJ(1).next(),
C.ZW_\u200D_J(1).next(),
]).then(results => {
assert.sameValue(results[0].value, 1);
assert.sameValue(results[1].value, 1);
assert.sameValue(results[2].value, 1);
assert.sameValue(results[3].value, 1);
assert.sameValue(results[4].value, 1);
assert.sameValue(results[5].value, 1);
}, $DONE).then($DONE, $DONE);

View File

@ -0,0 +1,117 @@
// Copyright (C) 2018 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
desc: Valid Static AsyncMethod PrivateName
info: |
ClassElement :
MethodDefinition
static MethodDefinition
FieldDefinition ;
static FieldDefinition ;
;
MethodDefinition :
AsyncMethod
AsyncMethod :
async [no LineTerminator here] ClassElementName ( UniqueFormalParameters ){ AsyncFunctionBody }
ClassElementName :
PropertyName
PrivateName
PrivateName ::
# IdentifierName
IdentifierName ::
IdentifierStart
IdentifierName IdentifierPart
IdentifierStart ::
UnicodeIDStart
$
_
\ UnicodeEscapeSequence
IdentifierPart::
UnicodeIDContinue
$
\ UnicodeEscapeSequence
<ZWNJ> <ZWJ>
UnicodeIDStart::
any Unicode code point with the Unicode property "ID_Start"
UnicodeIDContinue::
any Unicode code point with the Unicode property "ID_Continue"
NOTE 3
The sets of code points with Unicode properties "ID_Start" and
"ID_Continue" include, respectively, the code points with Unicode
properties "Other_ID_Start" and "Other_ID_Continue".
template: productions
flags: [async]
features: [class-static-methods-private]
---*/
//- fields
static async #$(value) {
return await value;
}
static async #_(value) {
return await value;
}
static async #o(value) {
return await value;
}
static async #℘(value) {
return await value;
}
static async #ZW__NJ(value) {
return await value;
}
static async #ZW__J(value) {
return await value;
}
//- privateinspectionfunctions
static async $(value) {
return await this.#$(value);
}
static async _(value) {
return await this.#_(value);
}
static async o(value) {
return await this.#o(value);
}
static async ℘(value) { // DO NOT CHANGE THE NAME OF THIS FIELD
return await this.#℘(value);
}
static async ZW__NJ(value) { // DO NOT CHANGE THE NAME OF THIS FIELD
return await this.#ZW__NJ(value);
}
static async ZW__J(value) { // DO NOT CHANGE THE NAME OF THIS FIELD
return await this.#ZW__J(value);
}
//- assertions
Promise.all([
C.$(1),
C._(1),
C.o(1),
C.℘(1), // DO NOT CHANGE THE NAME OF THIS FIELD
C.ZW__NJ(1), // DO NOT CHANGE THE NAME OF THIS FIELD
C.ZW__J(1), // DO NOT CHANGE THE NAME OF THIS FIELD
]).then(results => {
assert.sameValue(results[0], 1);
assert.sameValue(results[1], 1);
assert.sameValue(results[2], 1);
assert.sameValue(results[3], 1);
assert.sameValue(results[4], 1);
assert.sameValue(results[5], 1);
}, $DONE).then($DONE, $DONE);

View File

@ -0,0 +1,118 @@
// Copyright (C) 2018 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
desc: Valid Static AsyncMethod PrivateName
info: |
ClassElement :
MethodDefinition
static MethodDefinition
FieldDefinition ;
static FieldDefinition ;
;
MethodDefinition :
AsyncMethod
AsyncMethod :
async [no LineTerminator here] ClassElementName ( UniqueFormalParameters ){ AsyncFunctionBody }
ClassElementName :
PropertyName
PrivateName
PrivateName ::
# IdentifierName
IdentifierName ::
IdentifierStart
IdentifierName IdentifierPart
IdentifierStart ::
UnicodeIDStart
$
_
\ UnicodeEscapeSequence
IdentifierPart::
UnicodeIDContinue
$
\ UnicodeEscapeSequence
<ZWNJ> <ZWJ>
UnicodeIDStart::
any Unicode code point with the Unicode property "ID_Start"
UnicodeIDContinue::
any Unicode code point with the Unicode property "ID_Continue"
NOTE 3
The sets of code points with Unicode properties "ID_Start" and
"ID_Continue" include, respectively, the code points with Unicode
properties "Other_ID_Start" and "Other_ID_Continue".
template: productions
flags: [async]
features: [class-static-methods-private]
---*/
//- fields
static async #$(value) {
return await value;
}
static async #_(value) {
return await value;
}
static async #\u{6F}(value) {
return await value;
}
static async #\u2118(value) {
return await value;
}
static async #ZW_\u200C_NJ(value) {
return await value;
}
static async #ZW_\u200D_J(value) {
return await value;
}
//- privateinspectionfunctions
static async $(value) {
return await this.#$(value);
}
static async _(value) {
return await this.#_(value);
}
static async \u{6F}(value) {
return await this.#\u{6F}(value);
}
static async \u2118(value) {
return await this.#\u2118(value);
}
static async ZW_\u200C_NJ(value) {
return await this.#ZW_\u200C_NJ(value);
}
static async ZW_\u200D_J(value) {
return await this.#ZW_\u200D_J(value);
}
//- assertions
Promise.all([
C.$(1),
C._(1),
C.\u{6F}(1),
C.\u2118(1),
C.ZW_\u200C_NJ(1),
C.ZW_\u200D_J(1),
]).then(results => {
assert.sameValue(results[0], 1);
assert.sameValue(results[1], 1);
assert.sameValue(results[2], 1);
assert.sameValue(results[3], 1);
assert.sameValue(results[4], 1);
assert.sameValue(results[5], 1);
}, $DONE).then($DONE, $DONE);

View File

@ -0,0 +1,105 @@
// Copyright (C) 2018 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
desc: Valid Static GeneratorMethod PrivateName
info: |
ClassElement :
MethodDefinition
static MethodDefinition
FieldDefinition ;
static FieldDefinition ;
;
MethodDefinition :
GeneratorMethod
GeneratorMethod :
* ClassElementName ( UniqueFormalParameters ){ GeneratorBody }
ClassElementName :
PropertyName
PrivateName
PrivateName ::
# IdentifierName
IdentifierName ::
IdentifierStart
IdentifierName IdentifierPart
IdentifierStart ::
UnicodeIDStart
$
_
\ UnicodeEscapeSequence
IdentifierPart::
UnicodeIDContinue
$
\ UnicodeEscapeSequence
<ZWNJ> <ZWJ>
UnicodeIDStart::
any Unicode code point with the Unicode property "ID_Start"
UnicodeIDContinue::
any Unicode code point with the Unicode property "ID_Continue"
NOTE 3
The sets of code points with Unicode properties "ID_Start" and
"ID_Continue" include, respectively, the code points with Unicode
properties "Other_ID_Start" and "Other_ID_Continue".
template: productions
features: [class-static-methods-private]
---*/
//- fields
static * #$(value) {
yield value;
}
static * #_(value) {
yield value;
}
static * #o(value) {
yield value;
}
static * #℘(value) {
yield value;
}
static * #ZW__NJ(value) {
yield value;
}
static * #ZW__J(value) {
yield value;
}
//- privateinspectionfunctions
static * $(value) {
yield this.#$(value);
}
static * _(value) {
yield this.#_(value);
}
static * o(value) {
yield this.#o(value);
}
static * ℘(value) { // DO NOT CHANGE THE NAME OF THIS FIELD
yield this.#℘(value);
}
static * ZW__NJ(value) { // DO NOT CHANGE THE NAME OF THIS FIELD
yield this.#ZW__NJ(value);
}
static * ZW__J(value) { // DO NOT CHANGE THE NAME OF THIS FIELD
yield this.#ZW__J(value);
}
//- assertions
assert.sameValue(C.$(1).next().value, 1);
assert.sameValue(C._(1).next().value, 1);
assert.sameValue(C.o(1).next().value, 1);
assert.sameValue(C.℘(1).next().value, 1);
assert.sameValue(C.ZW__NJ(1).next().value, 1);
assert.sameValue(C.ZW__J(1).next().value, 1);

View File

@ -0,0 +1,106 @@
// Copyright (C) 2018 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
desc: Valid Static GeneratorMethod PrivateName
info: |
ClassElement :
MethodDefinition
static MethodDefinition
FieldDefinition ;
static FieldDefinition ;
;
MethodDefinition :
GeneratorMethod
GeneratorMethod :
* ClassElementName ( UniqueFormalParameters ){ GeneratorBody }
ClassElementName :
PropertyName
PrivateName
PrivateName ::
# IdentifierName
IdentifierName ::
IdentifierStart
IdentifierName IdentifierPart
IdentifierStart ::
UnicodeIDStart
$
_
\ UnicodeEscapeSequence
IdentifierPart::
UnicodeIDContinue
$
\ UnicodeEscapeSequence
<ZWNJ> <ZWJ>
UnicodeIDStart::
any Unicode code point with the Unicode property "ID_Start"
UnicodeIDContinue::
any Unicode code point with the Unicode property "ID_Continue"
NOTE 3
The sets of code points with Unicode properties "ID_Start" and
"ID_Continue" include, respectively, the code points with Unicode
properties "Other_ID_Start" and "Other_ID_Continue".
template: productions
features: [class-static-methods-private]
---*/
//- fields
static * #$(value) {
yield value;
}
static * #_(value) {
yield value;
}
static * #\u{6F}(value) {
yield value;
}
static * #\u2118(value) {
yield value;
}
static * #ZW_\u200C_NJ(value) {
yield value;
}
static * #ZW_\u200D_J(value) {
yield value;
}
//- privateinspectionfunctions
static * $(value) {
yield this.#$(value);
}
static * _(value) {
yield this.#_(value);
}
static * \u{6F}(value) {
yield this.#\u{6F}(value);
}
static * \u2118(value) {
yield this.#\u2118(value);
}
static * ZW_\u200C_NJ(value) {
yield this.#ZW_\u200C_NJ(value);
}
static * ZW_\u200D_J(value) {
yield this.#ZW_\u200D_J(value);
}
//- assertions
assert.sameValue(C.$(1).next().value, 1);
assert.sameValue(C._(1).next().value, 1);
assert.sameValue(C.\u{6F}(1).next().value, 1);
assert.sameValue(C.\u2118(1).next().value, 1);
assert.sameValue(C.ZW_\u200C_NJ(1).next().value, 1);
assert.sameValue(C.ZW_\u200D_J(1).next().value, 1);

View File

@ -12,8 +12,8 @@ info: |
static FieldDefinition ;
;
FieldDefinition :
ClassElementName Initializer _opt
MethodDefinition :
ClassElementName ( UniqueFormalParameters ){ FunctionBody }
ClassElementName :
PropertyName
@ -51,32 +51,26 @@ info: |
properties "Other_ID_Start" and "Other_ID_Continue".
template: productions
features: [class-static-fields-private]
features: [class-static-methods-private]
---*/
//- fields
static #$(value) {
this.$ = value;
return value;
}
static #_(value) {
this.#stored = value;
return value;
}
static #o(value) {
this.#stored = value;
return value;
}
static #℘(value) {
this.#stored = value;
return value;
}
static #ZW__NJ(value) {
this.#stored = value;
return value;
}
static #ZW__J(value) {
this.#stored = value;
return value;
}
//- privateinspectionfunctions

View File

@ -12,8 +12,8 @@ info: |
static FieldDefinition ;
;
FieldDefinition :
ClassElementName Initializer _opt
MethodDefinition :
ClassElementName ( UniqueFormalParameters ){ FunctionBody }
ClassElementName :
PropertyName
@ -51,7 +51,7 @@ info: |
properties "Other_ID_Start" and "Other_ID_Continue".
template: productions
features: [class-static-fields-private]
features: [class-static-methods-private]
---*/
//- fields

View File

@ -0,0 +1,91 @@
// Copyright (C) 2018 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
desc: Valid Static PrivateName
info: |
ClassElement :
MethodDefinition
static MethodDefinition
FieldDefinition ;
static FieldDefinition ;
;
FieldDefinition :
ClassElementName Initializer _opt
ClassElementName :
PropertyName
PrivateName
PrivateName ::
# IdentifierName
IdentifierName ::
IdentifierStart
IdentifierName IdentifierPart
IdentifierStart ::
UnicodeIDStart
$
_
\ UnicodeEscapeSequence
IdentifierPart::
UnicodeIDContinue
$
\ UnicodeEscapeSequence
<ZWNJ> <ZWJ>
UnicodeIDStart::
any Unicode code point with the Unicode property "ID_Start"
UnicodeIDContinue::
any Unicode code point with the Unicode property "ID_Continue"
NOTE 3
The sets of code points with Unicode properties "ID_Start" and
"ID_Continue" include, respectively, the code points with Unicode
properties "Other_ID_Start" and "Other_ID_Continue".
template: productions
features: [class-static-fields-private]
---*/
//- fields
static #$; static #_; static #\u{6F}; static #℘; static #ZW__NJ; static #ZW__J
//- privateinspectionfunctions
static $(value) {
C.#$ = value;
return C.#$;
}
static _(value) {
C.#_ = value;
return C.#_;
}
static o(value) {
C.#\u{6F} = value;
return C.#\u{6F};
}
static ℘(value) { // DO NOT CHANGE THE NAME OF THIS FIELD
C.#℘ = value;
return C.#℘;
}
static ZW__NJ(value) { // DO NOT CHANGE THE NAME OF THIS FIELD
C.#ZW__NJ = value;
return C.#ZW__NJ;
}
static ZW__J(value) { // DO NOT CHANGE THE NAME OF THIS FIELD
C.#ZW__J = value;
return C.#ZW__J;
}
//- assertions
assert.sameValue(C.$(1), 1);
assert.sameValue(C._(1), 1);
assert.sameValue(C.o(1), 1);
assert.sameValue(C.℘(1), 1); // DO NOT CHANGE THE NAME OF THIS FIELD
assert.sameValue(C.ZW__NJ(1), 1); // DO NOT CHANGE THE NAME OF THIS FIELD
assert.sameValue(C.ZW__J(1), 1); // DO NOT CHANGE THE NAME OF THIS FIELD

View File

@ -0,0 +1,91 @@
// Copyright (C) 2018 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
desc: Valid Static PrivateName
info: |
ClassElement :
MethodDefinition
static MethodDefinition
FieldDefinition ;
static FieldDefinition ;
;
FieldDefinition :
ClassElementName Initializer _opt
ClassElementName :
PropertyName
PrivateName
PrivateName ::
# IdentifierName
IdentifierName ::
IdentifierStart
IdentifierName IdentifierPart
IdentifierStart ::
UnicodeIDStart
$
_
\ UnicodeEscapeSequence
IdentifierPart::
UnicodeIDContinue
$
\ UnicodeEscapeSequence
<ZWNJ> <ZWJ>
UnicodeIDStart::
any Unicode code point with the Unicode property "ID_Start"
UnicodeIDContinue::
any Unicode code point with the Unicode property "ID_Continue"
NOTE 3
The sets of code points with Unicode properties "ID_Start" and
"ID_Continue" include, respectively, the code points with Unicode
properties "Other_ID_Start" and "Other_ID_Continue".
template: productions
features: [class-static-fields-private]
---*/
//- fields
static #$; static #_; static #\u{6F}; static #\u2118; static #ZW_\u200C_NJ; static #ZW_\u200D_J
//- privateinspectionfunctions
static $(value) {
C.#$ = value;
return C.#$;
}
static _(value) {
C.#_ = value;
return C.#_;
}
static \u{6F}(value) {
C.#\u{6F} = value;
return C.#\u{6F};
}
static \u2118(value) {
C.#\u2118 = value;
return C.#\u2118;
}
static ZW_\u200C_NJ(value) {
C.#ZW_\u200C_NJ = value;
return C.#ZW_\u200C_NJ;
}
static ZW_\u200D_J(value) {
C.#ZW_\u200D_J = value;
return C.#ZW_\u200D_J;
}
//- assertions
assert.sameValue(C.$(1), 1);
assert.sameValue(C._(1), 1);
assert.sameValue(C.\u{6F}(1), 1);
assert.sameValue(C.\u2118(1), 1);
assert.sameValue(C.ZW_\u200C_NJ(1), 1);
assert.sameValue(C.ZW_\u200D_J(1), 1);

View File

@ -0,0 +1,85 @@
// Copyright (C) 2018 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
desc: Valid Static PrivateName
info: |
ClassElement :
MethodDefinition
static MethodDefinition
FieldDefinition ;
static FieldDefinition ;
;
FieldDefinition :
ClassElementName Initializer _opt
ClassElementName :
PropertyName
PrivateName
PrivateName ::
# IdentifierName
IdentifierName ::
IdentifierStart
IdentifierName IdentifierPart
IdentifierStart ::
UnicodeIDStart
$
_
\ UnicodeEscapeSequence
IdentifierPart::
UnicodeIDContinue
$
\ UnicodeEscapeSequence
<ZWNJ> <ZWJ>
UnicodeIDStart::
any Unicode code point with the Unicode property "ID_Start"
UnicodeIDContinue::
any Unicode code point with the Unicode property "ID_Continue"
NOTE 3
The sets of code points with Unicode properties "ID_Start" and
"ID_Continue" include, respectively, the code points with Unicode
properties "Other_ID_Start" and "Other_ID_Continue".
template: productions
features: [class-static-fields-private]
---*/
//- fields
static #$ = 1; static #_ = 1; static #\u{6F} = 1; static #℘ = 1; static #ZW__NJ = 1; static #ZW__J = 1
//- privateinspectionfunctions
static $() {
return C.#$;
}
static _() {
return C.#_;
}
static \u{6F}() {
return C.#\u{6F};
}
static ℘() {
return C.#℘;
}
static ZW__NJ() {
return C.#ZW__NJ;
}
static ZW__J() {
return C.#ZW__J;
}
//- assertions
assert.sameValue(C.$(), 1);
assert.sameValue(C._(), 1);
assert.sameValue(C.\u{6F}(), 1);
assert.sameValue(C.℘(), 1);
assert.sameValue(C.ZW__NJ(), 1);
assert.sameValue(C.ZW__J(), 1);