new-no-sc-line-method-grammar-privatename-identifier-semantics-stringvalue.js (2778B)
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-new-no-sc-line-method.template 4 /*--- 5 description: PrivateName Static Semantics, StringValue (field definitions followed by a method in a new line without a semicolon) 6 esid: prod-FieldDefinition 7 features: [class-fields-private, class, class-fields-public] 8 flags: [generated] 9 includes: [propertyHelper.js] 10 info: | 11 ClassElement : 12 MethodDefinition 13 static MethodDefinition 14 FieldDefinition ; 15 ; 16 17 FieldDefinition : 18 ClassElementName Initializer _opt 19 20 ClassElementName : 21 PropertyName 22 PrivateName 23 24 PrivateName :: 25 # IdentifierName 26 27 IdentifierName :: 28 IdentifierStart 29 IdentifierName IdentifierPart 30 31 IdentifierStart :: 32 UnicodeIDStart 33 $ 34 _ 35 \ UnicodeEscapeSequence 36 37 IdentifierPart:: 38 UnicodeIDContinue 39 $ 40 \ UnicodeEscapeSequence 41 <ZWNJ> <ZWJ> 42 43 UnicodeIDStart:: 44 any Unicode code point with the Unicode property "ID_Start" 45 46 UnicodeIDContinue:: 47 any Unicode code point with the Unicode property "ID_Continue" 48 49 50 NOTE 3 51 The sets of code points with Unicode properties "ID_Start" and 52 "ID_Continue" include, respectively, the code points with Unicode 53 properties "Other_ID_Start" and "Other_ID_Continue". 54 55 56 1. Return the String value consisting of the sequence of code 57 units corresponding to PrivateName. In determining the sequence 58 any occurrences of \ UnicodeEscapeSequence are first replaced 59 with the code point represented by the UnicodeEscapeSequence 60 and then the code points of the entire PrivateName are converted 61 to code units by UTF16Encoding (10.1.1) each code point. 62 63 ---*/ 64 65 66 var C = class { 67 #\u{6F}; 68 #\u2118; 69 #ZW_\u200C_NJ; 70 #ZW_\u200D_J; 71 m() { return 42; } 72 o(value) { 73 this.#o = value; 74 return this.#o; 75 } 76 ℘(value) { 77 this.#℘ = value; 78 return this.#℘; 79 } 80 ZW__NJ(value) { // DO NOT CHANGE THE NAME OF THIS METHOD 81 this.#ZW__NJ = value; 82 return this.#ZW__NJ; 83 } 84 ZW__J(value) { // DO NOT CHANGE THE NAME OF THIS METHOD 85 this.#ZW__J = value; 86 return this.#ZW__J; 87 } 88 } 89 90 var c = new C(); 91 92 assert.sameValue(c.m(), 42); 93 assert.sameValue(c.m, C.prototype.m); 94 assert( 95 !Object.prototype.hasOwnProperty.call(c, "m"), 96 "m doesn't appear as an own property on the C instance" 97 ); 98 99 verifyProperty(C.prototype, "m", { 100 enumerable: false, 101 configurable: true, 102 writable: true, 103 }); 104 105 assert.sameValue(c.o(1), 1); 106 assert.sameValue(c.℘(1), 1); 107 assert.sameValue(c.ZW__NJ(1), 1); 108 assert.sameValue(c.ZW__J(1), 1); 109 110 reportCompare(0, 0);