diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts
index fd0d4ad796e..3dd06ea4515 100644
--- a/src/compiler/emitter.ts
+++ b/src/compiler/emitter.ts
@@ -1425,6 +1425,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
case SyntaxKind.IfStatement:
case SyntaxKind.JsxSelfClosingElement:
case SyntaxKind.JsxOpeningElement:
+ case SyntaxKind.JsxExpression:
case SyntaxKind.NewExpression:
case SyntaxKind.ParenthesizedExpression:
case SyntaxKind.PostfixUnaryExpression:
@@ -1484,6 +1485,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
}
}
else if (languageVersion < ScriptTarget.ES6) {
+ debugger;
let declaration = resolver.getReferencedImportDeclaration(node);
if (declaration) {
if (declaration.kind === SyntaxKind.ImportClause) {
diff --git a/tests/baselines/reference/jsxImportInAttribute.js b/tests/baselines/reference/jsxImportInAttribute.js
new file mode 100644
index 00000000000..40b21e87c3f
--- /dev/null
+++ b/tests/baselines/reference/jsxImportInAttribute.js
@@ -0,0 +1,21 @@
+//// [tests/cases/compiler/jsxImportInAttribute.tsx] ////
+
+//// [component.d.ts]
+
+declare module "Test" {
+ export default class Text { }
+}
+
+//// [consumer.tsx]
+///
+import Test from 'Test';
+
+let x = Test; // emit test_1.default
+; // ?
+
+
+//// [consumer.jsx]
+///
+var Test_1 = require('Test');
+var x = Test_1["default"]; // emit test_1.default
+; // ?
diff --git a/tests/baselines/reference/jsxImportInAttribute.symbols b/tests/baselines/reference/jsxImportInAttribute.symbols
new file mode 100644
index 00000000000..8481771f085
--- /dev/null
+++ b/tests/baselines/reference/jsxImportInAttribute.symbols
@@ -0,0 +1,19 @@
+=== tests/cases/compiler/consumer.tsx ===
+///
+import Test from 'Test';
+>Test : Symbol(Test, Decl(consumer.tsx, 1, 6))
+
+let x = Test; // emit test_1.default
+>x : Symbol(x, Decl(consumer.tsx, 3, 3))
+>Test : Symbol(Test, Decl(consumer.tsx, 1, 6))
+
+; // ?
+>attr : Symbol(unknown)
+
+=== tests/cases/compiler/component.d.ts ===
+
+declare module "Test" {
+ export default class Text { }
+>Text : Symbol(Text, Decl(component.d.ts, 1, 23))
+}
+
diff --git a/tests/baselines/reference/jsxImportInAttribute.types b/tests/baselines/reference/jsxImportInAttribute.types
new file mode 100644
index 00000000000..8dfbe292fe0
--- /dev/null
+++ b/tests/baselines/reference/jsxImportInAttribute.types
@@ -0,0 +1,22 @@
+=== tests/cases/compiler/consumer.tsx ===
+///
+import Test from 'Test';
+>Test : typeof Test
+
+let x = Test; // emit test_1.default
+>x : typeof Test
+>Test : typeof Test
+
+; // ?
+> : any
+>anything : any
+>attr : any
+>Test : any
+
+=== tests/cases/compiler/component.d.ts ===
+
+declare module "Test" {
+ export default class Text { }
+>Text : Text
+}
+
diff --git a/tests/cases/compiler/jsxImportInAttribute.tsx b/tests/cases/compiler/jsxImportInAttribute.tsx
new file mode 100644
index 00000000000..c4f16f55ddb
--- /dev/null
+++ b/tests/cases/compiler/jsxImportInAttribute.tsx
@@ -0,0 +1,14 @@
+//@jsx: preserve
+//@module: commonjs
+
+//@filename: component.d.ts
+declare module "Test" {
+ export default class Text { }
+}
+
+//@filename: consumer.tsx
+///
+import Test from 'Test';
+
+let x = Test; // emit test_1.default
+; // ?