constructor() {
    hasProp(this, '#m', false, 'private methods are defined in an special internal slot and cannot be found as own properties');
    assert.sameValue(typeof this.#m, 'function');
    assert.sameValue(this.ref, this.#m, 'returns the same value');
    assert.sameValue(this.#m, (() => this)().#m, 'memberexpression and call expression forms');

    var ctorIter = this.#m();
    var p = ctorIter.next();
    ctorPromise = p.then(({ value, done }) => {
        assert.sameValue(value, 42, 'return from generator method, inside ctor');
        assert.sameValue(done, true, 'iterator is done, inside ctor');
    }, $DONE);
    assert.sameValue(this.#m.name, '#m', 'function name inside constructor');

  }
template notes
method should always be #m
the template provides c.ref() for external reference