tor-browser

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

super-property-uninitialized-this.js (1052B)


      1 // Copyright (C) 2024 André Bargull. All rights reserved.
      2 // This code is governed by the BSD license found in the LICENSE file.
      3 
      4 /*---
      5 esid: sec-delete-operator-runtime-semantics-evaluation
      6 description: >
      7  Element expression in delete super not evaluated when this is uninitialized.
      8 info: |
      9  13.5.1.2 Runtime Semantics: Evaluation
     10 
     11    UnaryExpression : delete UnaryExpression
     12 
     13    1. Let ref be ? Evaluation of UnaryExpression.
     14    ...
     15 
     16  13.3.7.1 Runtime Semantics: Evaluation
     17 
     18    SuperProperty : super [ Expression ]
     19 
     20    ...
     21    2. Let actualThis be ? env.GetThisBinding().
     22    3. Let propertyNameReference be ? Evaluation of Expression.
     23    ...
     24 
     25  9.1.1.3.4 GetThisBinding ( )
     26    ...
     27    2. If envRec.[[ThisBindingStatus]] is uninitialized, throw a ReferenceError exception.
     28    ...
     29 ---*/
     30 
     31 class Base {
     32  constructor() {
     33    throw new Test262Error("base constructor called");
     34  }
     35 }
     36 
     37 class Derived extends Base {
     38  constructor() {
     39    delete super[(super(), 0)];
     40  }
     41 }
     42 
     43 assert.throws(ReferenceError, () => new Derived);
     44 
     45 reportCompare(0, 0);