same-line-async-gen-grammar-privatename-identifier-semantics-stringvalue.js (3152B)
1 // |reftest| async 2 // This file was procedurally generated from the following sources: 3 // - src/class-elements/grammar-privatename-identifier-semantics-stringvalue.case 4 // - src/class-elements/productions/cls-decl-after-same-line-async-gen.template 5 /*--- 6 description: PrivateName Static Semantics, StringValue (field definitions after an async generator in the same line) 7 esid: prod-FieldDefinition 8 features: [class-fields-private, class, class-fields-public, async-iteration] 9 flags: [generated, async] 10 includes: [propertyHelper.js] 11 info: | 12 ClassElement : 13 MethodDefinition 14 static MethodDefinition 15 FieldDefinition ; 16 ; 17 18 FieldDefinition : 19 ClassElementName Initializer _opt 20 21 ClassElementName : 22 PropertyName 23 PrivateName 24 25 PrivateName :: 26 # IdentifierName 27 28 IdentifierName :: 29 IdentifierStart 30 IdentifierName IdentifierPart 31 32 IdentifierStart :: 33 UnicodeIDStart 34 $ 35 _ 36 \ UnicodeEscapeSequence 37 38 IdentifierPart:: 39 UnicodeIDContinue 40 $ 41 \ UnicodeEscapeSequence 42 <ZWNJ> <ZWJ> 43 44 UnicodeIDStart:: 45 any Unicode code point with the Unicode property "ID_Start" 46 47 UnicodeIDContinue:: 48 any Unicode code point with the Unicode property "ID_Continue" 49 50 51 NOTE 3 52 The sets of code points with Unicode properties "ID_Start" and 53 "ID_Continue" include, respectively, the code points with Unicode 54 properties "Other_ID_Start" and "Other_ID_Continue". 55 56 57 1. Return the String value consisting of the sequence of code 58 units corresponding to PrivateName. In determining the sequence 59 any occurrences of \ UnicodeEscapeSequence are first replaced 60 with the code point represented by the UnicodeEscapeSequence 61 and then the code points of the entire PrivateName are converted 62 to code units by UTF16Encoding (10.1.1) each code point. 63 64 ---*/ 65 66 67 class C { 68 async *m() { return 42; } #\u{6F}; 69 #\u2118; 70 #ZW_\u200C_NJ; 71 #ZW_\u200D_J;; 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( 93 !Object.prototype.hasOwnProperty.call(c, "m"), 94 "m doesn't appear as an own property on the C instance" 95 ); 96 assert.sameValue(c.m, C.prototype.m); 97 98 verifyProperty(C.prototype, "m", { 99 enumerable: false, 100 configurable: true, 101 writable: true, 102 }, {restore: true}); 103 104 c.m().next().then(function(v) { 105 assert.sameValue(v.value, 42); 106 assert.sameValue(v.done, true); 107 108 function assertions() { 109 // Cover $DONE handler for async cases. 110 function $DONE(error) { 111 if (error) { 112 throw new Test262Error('Test262:AsyncTestFailure') 113 } 114 } 115 assert.sameValue(c.o(1), 1); 116 assert.sameValue(c.℘(1), 1); 117 assert.sameValue(c.ZW__NJ(1), 1); 118 assert.sameValue(c.ZW__J(1), 1); 119 } 120 121 return Promise.resolve(assertions()); 122 }).then($DONE, $DONE);