tor-browser

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

prop-expr-cls-null-proto.js (1120B)


      1 // Copyright (C) 2016 the V8 project authors. All rights reserved.
      2 // This code is governed by the BSD license found in the LICENSE file.
      3 /*---
      4 esid: sec-super-keyword
      5 es6id: 12.3.5
      6 description: >
      7  SuperProperty evaluation when the "home" object's prototype is not
      8  object-coercible.
      9 info: |
     10  [...]
     11  4. If the code matched by the syntactic production that is being evaluated is
     12     strict mode code, let strict be true, else let strict be false.
     13  5. Return ? MakeSuperPropertyReference(propertyKey, strict).
     14 
     15  12.3.5.3 Runtime Semantics: MakeSuperPropertyReference
     16 
     17  1. Let env be GetThisEnvironment( ).
     18  2. If env.HasSuperBinding() is false, throw a ReferenceError exception.
     19  3. Let actualThis be ? env.GetThisBinding().
     20  4. Let baseValue be ? env.GetSuperBase().
     21  5. Let bv be ? RequireObjectCoercible(baseValue).
     22 features: [class]
     23 ---*/
     24 
     25 var caught;
     26 class C extends null {
     27  method() {
     28    try {
     29      super['x'];
     30    } catch (err) {
     31      caught = err;
     32    }
     33  }
     34 }
     35 
     36 C.prototype.method();
     37 
     38 assert.sameValue(typeof caught, 'object');
     39 assert.sameValue(caught.constructor, TypeError);
     40 
     41 reportCompare(0, 0);