optional-chaining-this-private.js 536 Bytes
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12
// Copyright 2020 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

class C {
  static #c = C;
  static #m() { return this; }
  static test(C) {
    assertEquals(C?.#m(), C);
    assertEquals((C?.#m)(), C);
    assertEquals(C?.#c?.#m(), C);
    assertEquals((C?.#c?.#m)(), C);
13 14 15 16 17

    assertEquals(C?.#m(42), C);
    assertEquals((C?.#m)(42), C);
    assertEquals(C?.#c?.#m(42), C);
    assertEquals((C?.#c?.#m)(42), C);
18 19 20 21
  }
}

C.test(C);