Skip to content

Commit d338ecd

Browse files
committed
Tests:more JS static property assignments
export default fails right now; I haven't got it to work and it's not in dev tools, so I don't know if it's worth the effort.
1 parent 4199038 commit d338ecd

9 files changed

Lines changed: 165 additions & 6 deletions
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
tests/cases/conformance/salsa/b.js(2,4): error TS2339: Property 'bar' does not exist on type '() => void'.
2+
tests/cases/conformance/salsa/b.js(3,12): error TS2503: Cannot find namespace 'MC'.
3+
4+
5+
==== tests/cases/conformance/salsa/a.js (0 errors) ====
6+
export default function MyClass() {
7+
}
8+
MyClass.bar = class C {
9+
}
10+
MyClass.bar
11+
12+
==== tests/cases/conformance/salsa/b.js (2 errors) ====
13+
import MC from './a'
14+
MC.bar
15+
~~~
16+
!!! error TS2339: Property 'bar' does not exist on type '() => void'.
17+
/** @type {MC.bar} */
18+
~~
19+
!!! error TS2503: Cannot find namespace 'MC'.
20+
var x
21+
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
=== tests/cases/conformance/salsa/a.js ===
2+
export default function MyClass() {
3+
>MyClass : Symbol(MyClass, Decl(a.js, 0, 0))
4+
}
5+
MyClass.bar = class C {
6+
>MyClass : Symbol(MyClass, Decl(a.js, 0, 0))
7+
>C : Symbol(C, Decl(a.js, 2, 13))
8+
}
9+
MyClass.bar
10+
>MyClass : Symbol(MyClass, Decl(a.js, 0, 0))
11+
12+
=== tests/cases/conformance/salsa/b.js ===
13+
import MC from './a'
14+
>MC : Symbol(MC, Decl(b.js, 0, 6))
15+
16+
MC.bar
17+
>MC : Symbol(MC, Decl(b.js, 0, 6))
18+
19+
/** @type {MC.bar} */
20+
var x
21+
>x : Symbol(x, Decl(b.js, 3, 3))
22+
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
=== tests/cases/conformance/salsa/a.js ===
2+
export default function MyClass() {
3+
>MyClass : () => void
4+
}
5+
MyClass.bar = class C {
6+
>MyClass.bar = class C {} : typeof C
7+
>MyClass.bar : any
8+
>MyClass : any
9+
>bar : any
10+
>class C {} : typeof C
11+
>C : typeof C
12+
}
13+
MyClass.bar
14+
>MyClass.bar : any
15+
>MyClass : any
16+
>bar : any
17+
18+
=== tests/cases/conformance/salsa/b.js ===
19+
import MC from './a'
20+
>MC : () => void
21+
22+
MC.bar
23+
>MC.bar : any
24+
>MC : () => void
25+
>bar : any
26+
27+
/** @type {MC.bar} */
28+
var x
29+
>x : any
30+
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
=== tests/cases/conformance/salsa/a.js ===
2+
var Outer = class { }
3+
>Outer : Symbol(Outer, Decl(a.js, 0, 3), Decl(a.js, 0, 21), Decl(a.js, 3, 1))
4+
5+
Outer.Inner = class {
6+
>Outer.Inner : Symbol(Outer.Inner, Decl(a.js, 0, 21))
7+
>Outer : Symbol(Outer, Decl(a.js, 0, 3), Decl(a.js, 0, 21), Decl(a.js, 3, 1))
8+
>Inner : Symbol(Outer.Inner, Decl(a.js, 0, 21))
9+
10+
messages() { return [] }
11+
>messages : Symbol((Anonymous class).messages, Decl(a.js, 1, 21))
12+
}
13+
/** @type {!Outer.Inner} */
14+
Outer.i
15+
>Outer.i : Symbol(Outer.i, Decl(a.js, 3, 1))
16+
>Outer : Symbol(Outer, Decl(a.js, 0, 3), Decl(a.js, 0, 21), Decl(a.js, 3, 1))
17+
>i : Symbol(Outer.i, Decl(a.js, 3, 1))
18+
19+
=== tests/cases/conformance/salsa/b.js ===
20+
var msgs = Outer.i.messages()
21+
>msgs : Symbol(msgs, Decl(b.js, 0, 3))
22+
>Outer.i.messages : Symbol((Anonymous class).messages, Decl(a.js, 1, 21))
23+
>Outer.i : Symbol(Outer.i, Decl(a.js, 3, 1))
24+
>Outer : Symbol(Outer, Decl(a.js, 0, 3), Decl(a.js, 0, 21), Decl(a.js, 3, 1))
25+
>i : Symbol(Outer.i, Decl(a.js, 3, 1))
26+
>messages : Symbol((Anonymous class).messages, Decl(a.js, 1, 21))
27+
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
=== tests/cases/conformance/salsa/a.js ===
2+
var Outer = class { }
3+
>Outer : typeof Outer
4+
>class { } : typeof Outer
5+
6+
Outer.Inner = class {
7+
>Outer.Inner = class { messages() { return [] }} : typeof (Anonymous class)
8+
>Outer.Inner : typeof (Anonymous class)
9+
>Outer : typeof Outer
10+
>Inner : typeof (Anonymous class)
11+
>class { messages() { return [] }} : typeof (Anonymous class)
12+
13+
messages() { return [] }
14+
>messages : () => any[]
15+
>[] : undefined[]
16+
}
17+
/** @type {!Outer.Inner} */
18+
Outer.i
19+
>Outer.i : (Anonymous class)
20+
>Outer : typeof Outer
21+
>i : (Anonymous class)
22+
23+
=== tests/cases/conformance/salsa/b.js ===
24+
var msgs = Outer.i.messages()
25+
>msgs : any[]
26+
>Outer.i.messages() : any[]
27+
>Outer.i.messages : () => any[]
28+
>Outer.i : (Anonymous class)
29+
>Outer : typeof Outer
30+
>i : (Anonymous class)
31+
>messages : () => any[]
32+

tests/baselines/reference/user/chrome-devtools-frontend.log

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1773,15 +1773,11 @@ node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/crc-
17731773
node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/crc-details-renderer.js(150,44): error TS2694: Namespace '"/home/nathansa/ts/tests/cases/user/chrome-devtools-frontend/node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/crc-details-renderer".CriticalRequestChainRenderer' has no exported member 'CRCDetailsJSON'.
17741774
node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/crc-details-renderer.js(158,9): error TS2304: Cannot find name 'Util'.
17751775
node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/crc-details-renderer.js(161,9): error TS2304: Cannot find name 'Util'.
1776-
node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/crc-details-renderer.js(182,3): error TS2309: An export assignment cannot be used in a module with other exported elements.
17771776
node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/crc-details-renderer.js(184,8): error TS2339: Property 'CriticalRequestChainRenderer' does not exist on type 'Window'.
17781777
node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/crc-details-renderer.js(188,2): error TS1131: Property or signature expected.
17791778
node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/crc-details-renderer.js(194,30): error TS2339: Property 'CRCDetailsJSON' does not exist on type 'typeof CriticalRequestChainRenderer'.
17801779
node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/crc-details-renderer.js(197,2): error TS1131: Property or signature expected.
17811780
node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/crc-details-renderer.js(204,30): error TS2339: Property 'CRCRequest' does not exist on type 'typeof CriticalRequestChainRenderer'.
1782-
node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/crc-details-renderer.js(211,30): error TS2339: Property 'CRCNode' does not exist on type 'typeof CriticalRequestChainRenderer'.
1783-
node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/crc-details-renderer.js(214,30): error TS2339: Property 'CRCNode' does not exist on type 'typeof CriticalRequestChainRenderer'.
1784-
node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/crc-details-renderer.js(217,30): error TS2339: Property 'CRCNode' does not exist on type 'typeof CriticalRequestChainRenderer'.
17851781
node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/crc-details-renderer.js(220,2): error TS1131: Property or signature expected.
17861782
node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/crc-details-renderer.js(228,30): error TS2339: Property 'CRCSegment' does not exist on type 'typeof CriticalRequestChainRenderer'.
17871783
node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/details-renderer.js(12,15): error TS2304: Cannot find name 'DOM'.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
// @noEmit: true
2+
// @allowJs: true
3+
// @checkJs: true
4+
// @Filename: a.js
5+
// @target: es6
6+
export default function MyClass() {
7+
}
8+
MyClass.bar = class C {
9+
}
10+
MyClass.bar
11+
12+
// @Filename: b.js
13+
import MC from './a'
14+
MC.bar
15+
/** @type {MC.bar} */
16+
var x
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
// @noEmit: true
2+
// @allowJs: true
3+
// @checkJs: true
4+
// @Filename: a.js
5+
// @target: es6
6+
var Outer = class { }
7+
Outer.Inner = class {
8+
messages() { return [] }
9+
}
10+
/** @type {!Outer.Inner} */
11+
Outer.i
12+
13+
// @Filename: b.js
14+
var msgs = Outer.i.messages()

tests/cases/user/chrome-devtools-frontend/tsconfig.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
"types": []
88
},
99
"include": [
10-
"./node_modules/chrome-devtools-frontend/front_end/**/*.js"
10+
"./node_modules/chrome-devtools-frontend/front_end/**/*.js",
11+
"definitions.js"
1112
]
12-
}
13+
}

0 commit comments

Comments
 (0)