regular-definitions-grammar-privatename-identifier-semantics-stringvalue.js (2390B)
1 // This file was procedurally generated from the following sources: 2 // - src/class-elements/grammar-privatename-identifier-semantics-stringvalue.case 3 // - src/class-elements/productions/cls-expr-regular-definitions.template 4 /*--- 5 description: PrivateName Static Semantics, StringValue (regular fields defintion) 6 esid: prod-FieldDefinition 7 features: [class-fields-private, class, class-fields-public] 8 flags: [generated] 9 info: | 10 ClassElement : 11 MethodDefinition 12 static MethodDefinition 13 FieldDefinition ; 14 ; 15 16 FieldDefinition : 17 ClassElementName Initializer _opt 18 19 ClassElementName : 20 PropertyName 21 PrivateName 22 23 PrivateName :: 24 # IdentifierName 25 26 IdentifierName :: 27 IdentifierStart 28 IdentifierName IdentifierPart 29 30 IdentifierStart :: 31 UnicodeIDStart 32 $ 33 _ 34 \ UnicodeEscapeSequence 35 36 IdentifierPart:: 37 UnicodeIDContinue 38 $ 39 \ UnicodeEscapeSequence 40 <ZWNJ> <ZWJ> 41 42 UnicodeIDStart:: 43 any Unicode code point with the Unicode property "ID_Start" 44 45 UnicodeIDContinue:: 46 any Unicode code point with the Unicode property "ID_Continue" 47 48 49 NOTE 3 50 The sets of code points with Unicode properties "ID_Start" and 51 "ID_Continue" include, respectively, the code points with Unicode 52 properties "Other_ID_Start" and "Other_ID_Continue". 53 54 55 1. Return the String value consisting of the sequence of code 56 units corresponding to PrivateName. In determining the sequence 57 any occurrences of \ UnicodeEscapeSequence are first replaced 58 with the code point represented by the UnicodeEscapeSequence 59 and then the code points of the entire PrivateName are converted 60 to code units by UTF16Encoding (10.1.1) each code point. 61 62 ---*/ 63 64 65 var C = class { 66 #\u{6F}; 67 #\u2118; 68 #ZW_\u200C_NJ; 69 #ZW_\u200D_J; 70 o(value) { 71 this.#o = value; 72 return this.#o; 73 } 74 ℘(value) { 75 this.#℘ = value; 76 return this.#℘; 77 } 78 ZW__NJ(value) { // DO NOT CHANGE THE NAME OF THIS METHOD 79 this.#ZW__NJ = value; 80 return this.#ZW__NJ; 81 } 82 ZW__J(value) { // DO NOT CHANGE THE NAME OF THIS METHOD 83 this.#ZW__J = value; 84 return this.#ZW__J; 85 } 86 } 87 88 var c = new C(); 89 90 assert.sameValue(c.o(1), 1); 91 assert.sameValue(c.℘(1), 1); 92 assert.sameValue(c.ZW__NJ(1), 1); 93 assert.sameValue(c.ZW__J(1), 1); 94 95 reportCompare(0, 0);