Skip to content

Commit fed46ea

Browse files
authored
Merge pull request microsoft#30719 from andrewbranch/bug/30668
Fix crash when binding deep module.exports assignment
2 parents 3f3444b + 85135c3 commit fed46ea

File tree

5 files changed

+31
-2
lines changed

5 files changed

+31
-2
lines changed

src/compiler/binder.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2710,8 +2710,7 @@ namespace ts {
27102710
}
27112711
else {
27122712
const s = forEachIdentifierInEntityName(e.expression, parent, action);
2713-
if (!s || !s.exports) return Debug.fail();
2714-
return action(e.name, s.exports.get(e.name.escapedText), s);
2713+
return action(e.name, s && s.exports && s.exports.get(e.name.escapedText), s);
27152714
}
27162715
}
27172716

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
tests/cases/compiler/a.js(1,9): error TS2339: Property 'a' does not exist on type 'typeof import("tests/cases/compiler/a")'.
2+
3+
4+
==== tests/cases/compiler/a.js (1 errors) ====
5+
exports.a.b.c = 0;
6+
~
7+
!!! error TS2339: Property 'a' does not exist on type 'typeof import("tests/cases/compiler/a")'.
8+
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
=== tests/cases/compiler/a.js ===
2+
exports.a.b.c = 0;
3+
>exports : Symbol("tests/cases/compiler/a", Decl(a.js, 0, 0))
4+
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
=== tests/cases/compiler/a.js ===
2+
exports.a.b.c = 0;
3+
>exports.a.b.c = 0 : 0
4+
>exports.a.b.c : any
5+
>exports.a.b : any
6+
>exports.a : any
7+
>exports : typeof import("tests/cases/compiler/a")
8+
>a : any
9+
>b : any
10+
>c : any
11+
>0 : 0
12+
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
// @allowJs: true
2+
// @noEmit: true
3+
// @checkJs: true
4+
// @filename: a.js
5+
6+
exports.a.b.c = 0;

0 commit comments

Comments
 (0)