after-same-line-static-async-method-grammar-privatename-identifier-semantics-stringvalue.js (3205B)
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-static-async-method.template 5 /*--- 6 description: PrivateName Static Semantics, StringValue (field definitions after a static async method in the same line) 7 esid: prod-FieldDefinition 8 features: [class-fields-private, class, class-fields-public, async-functions] 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 static 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( 97 !Object.prototype.hasOwnProperty.call(C.prototype, "m"), 98 "m doesn't appear as an own property on the C prototype" 99 ); 100 101 verifyProperty(C, "m", { 102 enumerable: false, 103 configurable: true, 104 writable: true, 105 }, {restore: true}); 106 107 C.m().then(function(v) { 108 assert.sameValue(v, 42); 109 110 function assertions() { 111 // Cover $DONE handler for async cases. 112 function $DONE(error) { 113 if (error) { 114 throw new Test262Error('Test262:AsyncTestFailure') 115 } 116 } 117 assert.sameValue(c.o(1), 1); 118 assert.sameValue(c.℘(1), 1); 119 assert.sameValue(c.ZW__NJ(1), 1); 120 assert.sameValue(c.ZW__J(1), 1); 121 } 122 123 return Promise.resolve(assertions()); 124 }).then($DONE, $DONE);