File: typeFromPropertyAssignment23.symbols

package info (click to toggle)
node-typescript 4.9.5%2Bds1-2
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 533,908 kB
  • sloc: javascript: 2,018,330; makefile: 7; sh: 1
file content (79 lines) | stat: -rw-r--r-- 2,344 bytes parent folder | download | duplicates (4)
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
=== tests/cases/conformance/salsa/a.js ===
class B {
>B : Symbol(B, Decl(a.js, 0, 0))

    constructor () {
        this.n = 1
>this.n : Symbol(B.n, Decl(a.js, 1, 20))
>this : Symbol(B, Decl(a.js, 0, 0))
>n : Symbol(B.n, Decl(a.js, 1, 20))
    }
    foo() {
>foo : Symbol(B.foo, Decl(a.js, 3, 5))
    }
}

class C extends B { }
>C : Symbol(C, Decl(a.js, 6, 1))
>B : Symbol(B, Decl(a.js, 0, 0))

// this override should be fine (even if it's a little odd)
C.prototype.foo = function() {
>C.prototype.foo : Symbol(C.foo, Decl(a.js, 8, 21))
>C.prototype : Symbol(C.foo, Decl(a.js, 8, 21))
>C : Symbol(C, Decl(a.js, 6, 1))
>prototype : Symbol(C.prototype)
>foo : Symbol(C.foo, Decl(a.js, 8, 21))
}

class D extends B { }
>D : Symbol(D, Decl(a.js, 12, 1))
>B : Symbol(B, Decl(a.js, 0, 0))

D.prototype.foo = () =>  {
>D.prototype.foo : Symbol(D.foo, Decl(a.js, 14, 21))
>D.prototype : Symbol(D.foo, Decl(a.js, 14, 21))
>D : Symbol(D, Decl(a.js, 12, 1))
>prototype : Symbol(D.prototype)
>foo : Symbol(D.foo, Decl(a.js, 14, 21))

    this.n = 'not checked, so no error'
>this : Symbol(globalThis)
>n : Symbol(n, Decl(a.js, 15, 26))
}

// post-class prototype assignments are trying to show that these properties are abstract
class Module {
>Module : Symbol(Module, Decl(a.js, 17, 1))
}
Module.prototype.identifier = undefined
>Module.prototype.identifier : Symbol(Module.identifier, Decl(a.js, 21, 1))
>Module.prototype : Symbol(Module.identifier, Decl(a.js, 21, 1))
>Module : Symbol(Module, Decl(a.js, 17, 1))
>prototype : Symbol(Module.prototype)
>identifier : Symbol(Module.identifier, Decl(a.js, 21, 1))
>undefined : Symbol(undefined)

Module.prototype.size = null
>Module.prototype.size : Symbol(Module.size, Decl(a.js, 22, 39))
>Module.prototype : Symbol(Module.size, Decl(a.js, 22, 39))
>Module : Symbol(Module, Decl(a.js, 17, 1))
>prototype : Symbol(Module.prototype)
>size : Symbol(Module.size, Decl(a.js, 22, 39))

class NormalModule extends Module {
>NormalModule : Symbol(NormalModule, Decl(a.js, 23, 28))
>Module : Symbol(Module, Decl(a.js, 17, 1))

    identifier() {
>identifier : Symbol(NormalModule.identifier, Decl(a.js, 25, 35))

        return 'normal'
    }
    size() {
>size : Symbol(NormalModule.size, Decl(a.js, 28, 5))

        return 0
    }
}