tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

public-class-field-initialization-on-super-class-with-setter.js (920B)


      1 // Copyright (C) 2019 Caio Lima. All rights reserved.
      2 // This code is governed by the BSD license found in the LICENSE file.
      3 
      4 /*---
      5 description: Public class field initialization calls [[DefineOwnProperty]] and don't execute super's getter
      6 esid: sec-define-field
      7 info: |
      8  DefineField(receiver, fieldRecord)
      9    ...
     10    8. If fieldName is a Private Name,
     11      a. Perform ? PrivateFieldAdd(fieldName, receiver, initValue).
     12    9. Else,
     13      a. Assert: IsPropertyKey(fieldName) is true.
     14      b. Perform ? CreateDataPropertyOrThrow(receiver, fieldName, initValue).
     15    10. Return.
     16 includes: [propertyHelper.js]
     17 features: [class, class-fields-public]
     18 ---*/
     19 
     20 class Super {
     21  set f(v) {
     22    throw new Test262Error();
     23  }
     24 }
     25 
     26 class Base extends Super {
     27  f = "Test262";
     28 }
     29 
     30 let o = new Base();
     31 
     32 verifyProperty(o, "f", {
     33  value: "Test262",
     34  enumerable: true,
     35  writable: true,
     36  configurable: true,
     37 });
     38 
     39 reportCompare(0, 0);