// Copyright (C) 2019 Kubilay Kahveci (Bloomberg LP). All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
desc: Static private method referenced from an instance method
info: |
  PrivateFieldGet (P, O)
    1. Assert: P is a Private Name.
    2. If O is not an object, throw a TypeError exception.
    3. If P.[[Kind]] is "field",
        ...
    4. Perform ? PrivateBrandCheck(O, P).
    5. If P.[[Kind]] is "method",
      a. Return P.[[Value]].
    ...

  PrivateBrandCheck(O, P)
    1. If O.[[PrivateBrands]] does not contain an entry e such that SameValue(e, P.[[Brand]]) is true,
      a. Throw a TypeError exception.
template: default
features: [class-static-methods-private]
---*/

//- elements
static #f() { return 42; }
g() {
  return this.#f();
}

//- assertions
assert.sameValue(new C().g.call(C), 42);
assert.throws(TypeError, function() {
  new C().g();
}, 'Accessed static private method from an object which did not contain it');
