File: superInLambdas.js

package info (click to toggle)
node-typescript 2.1.5-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 203,952 kB
  • ctags: 52,987
  • sloc: sh: 11; makefile: 5
file content (152 lines) | stat: -rw-r--r-- 4,981 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
//// [superInLambdas.ts]
class User {
    name: string = "Bob";
    sayHello(): void {
        //console.log("Hello, " + this.name);
    }
}

class RegisteredUser extends User {
    name: string = "Frank";
    constructor() {
        super();

        // super call in a constructor
        super.sayHello();

        // super call in a lambda in a constructor 
        var x = () => super.sayHello();
    }
    sayHello(): void {
        // super call in a method
        super.sayHello();

        // super call in a lambda in a method
       var x = () => super.sayHello();
    }
}
class RegisteredUser2 extends User {
    name: string = "Joe";
    constructor() {
        super();

        // super call in a nested lambda in a constructor 
        var x = () => () => () => super.sayHello();
    }
    sayHello(): void {
        // super call in a nested lambda in a method
        var x = () => () => () => super.sayHello();
    }
}

class RegisteredUser3 extends User {
    name: string = "Sam";
    constructor() {
        super();

        // super property in a nested lambda in a constructor 
        var superName = () => () => () => super.name;
    }
    sayHello(): void {
        // super property in a nested lambda in a method
        var superName = () => () => () => super.name;
    }
}

class RegisteredUser4 extends User {
    name: string = "Mark";
    constructor() {
        super();

        // super in a nested lambda in a constructor 
        var x = () => () => super;
    }
    sayHello(): void {
        // super in a nested lambda in a method
        var x = () => () => super;
    }
}

//// [superInLambdas.js]
var __extends = (this && this.__extends) || function (d, b) {
    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
    function __() { this.constructor = d; }
    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
var User = (function () {
    function User() {
        this.name = "Bob";
    }
    User.prototype.sayHello = function () {
        //console.log("Hello, " + this.name);
    };
    return User;
}());
var RegisteredUser = (function (_super) {
    __extends(RegisteredUser, _super);
    function RegisteredUser() {
        var _this = _super.call(this) || this;
        _this.name = "Frank";
        // super call in a constructor
        _super.prototype.sayHello.call(_this);
        // super call in a lambda in a constructor 
        var x = function () { return _super.prototype.sayHello.call(_this); };
        return _this;
    }
    RegisteredUser.prototype.sayHello = function () {
        var _this = this;
        // super call in a method
        _super.prototype.sayHello.call(this);
        // super call in a lambda in a method
        var x = function () { return _super.prototype.sayHello.call(_this); };
    };
    return RegisteredUser;
}(User));
var RegisteredUser2 = (function (_super) {
    __extends(RegisteredUser2, _super);
    function RegisteredUser2() {
        var _this = _super.call(this) || this;
        _this.name = "Joe";
        // super call in a nested lambda in a constructor 
        var x = function () { return function () { return function () { return _super.prototype.sayHello.call(_this); }; }; };
        return _this;
    }
    RegisteredUser2.prototype.sayHello = function () {
        var _this = this;
        // super call in a nested lambda in a method
        var x = function () { return function () { return function () { return _super.prototype.sayHello.call(_this); }; }; };
    };
    return RegisteredUser2;
}(User));
var RegisteredUser3 = (function (_super) {
    __extends(RegisteredUser3, _super);
    function RegisteredUser3() {
        var _this = _super.call(this) || this;
        _this.name = "Sam";
        // super property in a nested lambda in a constructor 
        var superName = function () { return function () { return function () { return _super.prototype.name; }; }; };
        return _this;
    }
    RegisteredUser3.prototype.sayHello = function () {
        var _this = this;
        // super property in a nested lambda in a method
        var superName = function () { return function () { return function () { return _super.prototype.name; }; }; };
    };
    return RegisteredUser3;
}(User));
var RegisteredUser4 = (function (_super) {
    __extends(RegisteredUser4, _super);
    function RegisteredUser4() {
        var _this = _super.call(this) || this;
        _this.name = "Mark";
        // super in a nested lambda in a constructor 
        var x = function () { return function () { return _super.prototype.; }; };
        return _this;
    }
    RegisteredUser4.prototype.sayHello = function () {
        var _this = this;
        // super in a nested lambda in a method
        var x = function () { return function () { return _super.prototype.; }; };
    };
    return RegisteredUser4;
}(User));