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
|
=== tests/cases/conformance/salsa/module.js ===
var Inner = function() {}
>Inner : typeof Inner
>function() {} : typeof Inner
Inner.prototype = {
>Inner.prototype = { m() { }, i: 1} : { m(): void; i: number; }
>Inner.prototype : { m(): void; i: number; }
>Inner : typeof Inner
>prototype : { m(): void; i: number; }
>{ m() { }, i: 1} : { m(): void; i: number; }
m() { },
>m : () => void
i: 1
>i : number
>1 : 1
}
// incremental assignments still work
Inner.prototype.j = 2
>Inner.prototype.j = 2 : 2
>Inner.prototype.j : any
>Inner.prototype : { m(): void; i: number; }
>Inner : typeof Inner
>prototype : { m(): void; i: number; }
>j : any
>2 : 2
/** @type {string} */
Inner.prototype.k;
>Inner.prototype.k : any
>Inner.prototype : { m(): void; i: number; }
>Inner : typeof Inner
>prototype : { m(): void; i: number; }
>k : any
var inner = new Inner()
>inner : Inner & { m(): void; i: number; }
>new Inner() : Inner & { m(): void; i: number; }
>Inner : typeof Inner
inner.m()
>inner.m() : void
>inner.m : () => void
>inner : Inner & { m(): void; i: number; }
>m : () => void
inner.i
>inner.i : number
>inner : Inner & { m(): void; i: number; }
>i : number
inner.j
>inner.j : number
>inner : Inner & { m(): void; i: number; }
>j : number
inner.k
>inner.k : string
>inner : Inner & { m(): void; i: number; }
>k : string
|