private-getter-is-not-a-own-property.js (1424B)
1 // This file was procedurally generated from the following sources: 2 // - src/class-elements/private-getter-is-not-a-own-property.case 3 // - src/class-elements/default/cls-decl.template 4 /*--- 5 description: Private getter is not stored as an own property of objects (field definitions in a class declaration) 6 esid: prod-FieldDefinition 7 features: [class-methods-private, class] 8 flags: [generated] 9 info: | 10 PrivateFieldGet (P, O) 11 1. Assert: P is a Private Name. 12 2. If O is not an object, throw a TypeError exception. 13 3. If P.[[Kind]] is "field", 14 a. Let entry be PrivateFieldFind(P, O). 15 b. If entry is empty, throw a TypeError exception. 16 c. Return entry.[[PrivateFieldValue]]. 17 4. Perform ? PrivateBrandCheck(O, P). 18 5. If P.[[Kind]] is "method", 19 a. Return P.[[Value]]. 20 6. Else, 21 a. Assert: P.[[Kind]] is "accessor". 22 b. If P does not have a [[Get]] field, throw a TypeError exception. 23 c. Let getter be P.[[Get]]. 24 d. Return ? Call(getter, O). 25 26 ---*/ 27 28 29 class C { 30 get #m() { return "Test262"; } 31 32 checkPrivateGetter() { 33 assert.sameValue(this.hasOwnProperty("#m"), false); 34 assert.sameValue("#m" in this, false); 35 36 assert.sameValue(this.__lookupGetter__("#m"), undefined); 37 38 assert.sameValue(this.#m, "Test262"); 39 40 return 0; 41 } 42 } 43 44 let c = new C(); 45 assert.sameValue(c.checkPrivateGetter(), 0); 46 47 reportCompare(0, 0);