File: privateNameWhenNotUseDefineForClassFieldsInEsNext%28target%3Desnext%29.js

package info (click to toggle)
node-typescript 5.0.4%2Bds1-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 459,116 kB
  • sloc: javascript: 1,972,754; makefile: 6; sh: 1
file content (109 lines) | stat: -rw-r--r-- 2,844 bytes parent folder | download
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
//// [privateNameWhenNotUseDefineForClassFieldsInEsNext.ts]
class TestWithStatics {
    #prop = 0
    static dd = new TestWithStatics().#prop; // OK
    static ["X_ z_ zz"] = class Inner {
        #foo  = 10
        m() {
            new TestWithStatics().#prop // OK
        }
        static C = class InnerInner {
            m() {
                new TestWithStatics().#prop // OK
                new Inner().#foo; // OK
            }
        }

        static M(){
            return class {
                m() {
                    new TestWithStatics().#prop // OK
                    new Inner().#foo; // OK
                }
            }
        }
    }
}

class TestNonStatics {
    #prop = 0
    dd = new TestNonStatics().#prop; // OK
    ["X_ z_ zz"] = class Inner {
        #foo  = 10
        m() {
            new TestNonStatics().#prop // Ok
        }
        C = class InnerInner {
            m() {
                new TestNonStatics().#prop // Ok
                new Inner().#foo; // Ok
            }
        }

        static M(){
            return class {
                m() {
                    new TestNonStatics().#prop // OK
                    new Inner().#foo; // OK
                }
            }
        }
    }
}

//// [privateNameWhenNotUseDefineForClassFieldsInEsNext.js]
"use strict";
class TestWithStatics {
    #prop = 0;
    static { this.dd = new TestWithStatics().#prop; } // OK
    static { this["X_ z_ zz"] = class Inner {
        #foo = 10;
        m() {
            new TestWithStatics().#prop; // OK
        }
        static { this.C = class InnerInner {
            m() {
                new TestWithStatics().#prop; // OK
                new Inner().#foo; // OK
            }
        }; }
        static M() {
            return class {
                m() {
                    new TestWithStatics().#prop; // OK
                    new Inner().#foo; // OK
                }
            };
        }
    }; }
}
class TestNonStatics {
    constructor() {
        this.#prop = 0;
        this.dd = new TestNonStatics().#prop; // OK
        this["X_ z_ zz"] = class Inner {
            constructor() {
                this.#foo = 10;
                this.C = class InnerInner {
                    m() {
                        new TestNonStatics().#prop; // Ok
                        new Inner().#foo; // Ok
                    }
                };
            }
            #foo;
            m() {
                new TestNonStatics().#prop; // Ok
            }
            static M() {
                return class {
                    m() {
                        new TestNonStatics().#prop; // OK
                        new Inner().#foo; // OK
                    }
                };
            }
        };
    }
    #prop;
}