Merge pull request #30719 from andrewbranch/bug/30668

Fix crash when binding deep module.exports assignment
This commit is contained in:
Andrew Branch 2019-04-03 09:19:36 -07:00 committed by GitHub
commit fed46ea3bf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 31 additions and 2 deletions

View File

@ -2710,8 +2710,7 @@ namespace ts {
}
else {
const s = forEachIdentifierInEntityName(e.expression, parent, action);
if (!s || !s.exports) return Debug.fail();
return action(e.name, s.exports.get(e.name.escapedText), s);
return action(e.name, s && s.exports && s.exports.get(e.name.escapedText), s);
}
}

View File

@ -0,0 +1,8 @@
tests/cases/compiler/a.js(1,9): error TS2339: Property 'a' does not exist on type 'typeof import("tests/cases/compiler/a")'.
==== tests/cases/compiler/a.js (1 errors) ====
exports.a.b.c = 0;
~
!!! error TS2339: Property 'a' does not exist on type 'typeof import("tests/cases/compiler/a")'.

View File

@ -0,0 +1,4 @@
=== tests/cases/compiler/a.js ===
exports.a.b.c = 0;
>exports : Symbol("tests/cases/compiler/a", Decl(a.js, 0, 0))

View File

@ -0,0 +1,12 @@
=== tests/cases/compiler/a.js ===
exports.a.b.c = 0;
>exports.a.b.c = 0 : 0
>exports.a.b.c : any
>exports.a.b : any
>exports.a : any
>exports : typeof import("tests/cases/compiler/a")
>a : any
>b : any
>c : any
>0 : 0

View File

@ -0,0 +1,6 @@
// @allowJs: true
// @noEmit: true
// @checkJs: true
// @filename: a.js
exports.a.b.c = 0;