//// [typeOfThisInInstanceMember.ts]
class C {
    x = this;
    foo() {
        return this;
    }
    constructor(x: number) {
        var t = this;
        t.x;
        t.y;
        t.z;
        var r = t.foo();
    }

    get y() {
        return this;
    }
}

var c: C;
// all ok
var r = c.x;
var ra = c.x.x.x;
var r2 = c.y;
var r3 = c.foo();
var rs = [r, r2, r3];

rs.forEach(x => {
    x.foo;
    x.x;
    x.y;
});

//// [typeOfThisInInstanceMember.js]
var C = (function () {
    function C(x) {
        this.x = this;
        var t = this;
        t.x;
        t.y;
        t.z;
        var r = t.foo();
    }
    C.prototype.foo = function () {
        return this;
    };
    Object.defineProperty(C.prototype, "y", {
        get: function () {
            return this;
        },
        enumerable: true,
        configurable: true
    });
    return C;
})();
var c;
// all ok
var r = c.x;
var ra = c.x.x.x;
var r2 = c.y;
var r3 = c.foo();
var rs = [r, r2, r3];
rs.forEach(function (x) {
    x.foo;
    x.x;
    x.y;
});
