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
|
=== tests/cases/compiler/selfInLambdas.ts ===
interface MouseEvent {
x: number;
>x : number
y: number;
>y : number
}
declare var window: Window;
>window : Window
interface Window {
onmousemove: (ev: MouseEvent) => any;
>onmousemove : (ev: MouseEvent) => any
>ev : MouseEvent
}
var o = {
>o : { counter: number; start: () => void; }
>{ counter: 0, start: function() { window.onmousemove = () => { this.counter++ var f = () => this.counter; } }} : { counter: number; start: () => void; }
counter: 0,
>counter : number
>0 : 0
start: function() {
>start : () => void
>function() { window.onmousemove = () => { this.counter++ var f = () => this.counter; } } : () => void
window.onmousemove = () => {
>window.onmousemove = () => { this.counter++ var f = () => this.counter; } : () => void
>window.onmousemove : (ev: MouseEvent) => any
>window : Window
>onmousemove : (ev: MouseEvent) => any
>() => { this.counter++ var f = () => this.counter; } : () => void
this.counter++
>this.counter++ : number
>this.counter : number
>this : { counter: number; start: () => void; }
>counter : number
var f = () => this.counter;
>f : () => number
>() => this.counter : () => number
>this.counter : number
>this : { counter: number; start: () => void; }
>counter : number
}
}
}
class X {
>X : X
private value = "value";
>value : string
>"value" : "value"
public foo() {
>foo : () => void
var outer= () => {
>outer : () => void
>() => { var x = this.value; var inner = () => { var y = this.value; } inner(); } : () => void
var x = this.value;
>x : string
>this.value : string
>this : this
>value : string
var inner = () => {
>inner : () => void
>() => { var y = this.value; } : () => void
var y = this.value;
>y : string
>this.value : string
>this : this
>value : string
}
inner();
>inner() : void
>inner : () => void
};
outer();
>outer() : void
>outer : () => void
}
}
|