diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts
index d57f9eaed1b..c4da6e3d320 100644
--- a/src/compiler/checker.ts
+++ b/src/compiler/checker.ts
@@ -7463,7 +7463,9 @@ namespace ts {
// Look up the value in the current scope
if (valueSymbol && valueSymbol !== unknownSymbol) {
links.jsxFlags |= JsxFlags.ClassElement;
- getSymbolLinks(valueSymbol).referenced = true;
+ if (valueSymbol.flags & SymbolFlags.Alias) {
+ markAliasSymbolAsReferenced(valueSymbol);
+ }
}
return valueSymbol || unknownSymbol;
diff --git a/tests/baselines/reference/tsxPreserveEmit1.js b/tests/baselines/reference/tsxPreserveEmit1.js
new file mode 100644
index 00000000000..80aeef6b297
--- /dev/null
+++ b/tests/baselines/reference/tsxPreserveEmit1.js
@@ -0,0 +1,32 @@
+//// [tests/cases/conformance/jsx/tsxPreserveEmit1.tsx] ////
+
+//// [react.d.ts]
+
+declare module 'react' {
+ var x: any;
+ export = x;
+}
+
+declare module ReactRouter {
+ var Route: any;
+ interface Thing { }
+}
+declare module 'react-router' {
+ export = ReactRouter;
+}
+
+//// [test.tsx]
+// Should emit 'react-router' in the AMD dependency list
+import React = require('react');
+import ReactRouter = require('react-router');
+
+import Route = ReactRouter.Route;
+
+var routes = ;
+
+
+//// [test.jsx]
+define(["require", "exports", 'react-router'], function (require, exports, ReactRouter) {
+ var Route = ReactRouter.Route;
+ var routes = ;
+});
diff --git a/tests/baselines/reference/tsxPreserveEmit1.symbols b/tests/baselines/reference/tsxPreserveEmit1.symbols
new file mode 100644
index 00000000000..6dcf4d9ac49
--- /dev/null
+++ b/tests/baselines/reference/tsxPreserveEmit1.symbols
@@ -0,0 +1,41 @@
+=== tests/cases/conformance/jsx/test.tsx ===
+// Should emit 'react-router' in the AMD dependency list
+import React = require('react');
+>React : Symbol(React, Decl(test.tsx, 0, 0))
+
+import ReactRouter = require('react-router');
+>ReactRouter : Symbol(ReactRouter, Decl(test.tsx, 1, 32))
+
+import Route = ReactRouter.Route;
+>Route : Symbol(Route, Decl(test.tsx, 2, 45))
+>ReactRouter : Symbol(ReactRouter, Decl(react.d.ts, 4, 1))
+>Route : Symbol(ReactRouter.Route, Decl(react.d.ts, 7, 4))
+
+var routes = ;
+>routes : Symbol(routes, Decl(test.tsx, 6, 3))
+>Route : Symbol(Route, Decl(test.tsx, 2, 45))
+
+=== tests/cases/conformance/jsx/react.d.ts ===
+
+declare module 'react' {
+ var x: any;
+>x : Symbol(x, Decl(react.d.ts, 2, 4))
+
+ export = x;
+>x : Symbol(x, Decl(react.d.ts, 2, 4))
+}
+
+declare module ReactRouter {
+>ReactRouter : Symbol(ReactRouter, Decl(react.d.ts, 4, 1))
+
+ var Route: any;
+>Route : Symbol(Route, Decl(react.d.ts, 7, 4))
+
+ interface Thing { }
+>Thing : Symbol(Thing, Decl(react.d.ts, 7, 16))
+}
+declare module 'react-router' {
+ export = ReactRouter;
+>ReactRouter : Symbol(ReactRouter, Decl(react.d.ts, 4, 1))
+}
+
diff --git a/tests/baselines/reference/tsxPreserveEmit1.types b/tests/baselines/reference/tsxPreserveEmit1.types
new file mode 100644
index 00000000000..ea64e2d2e94
--- /dev/null
+++ b/tests/baselines/reference/tsxPreserveEmit1.types
@@ -0,0 +1,42 @@
+=== tests/cases/conformance/jsx/test.tsx ===
+// Should emit 'react-router' in the AMD dependency list
+import React = require('react');
+>React : any
+
+import ReactRouter = require('react-router');
+>ReactRouter : typeof ReactRouter
+
+import Route = ReactRouter.Route;
+>Route : any
+>ReactRouter : typeof ReactRouter
+>Route : any
+
+var routes = ;
+>routes : any
+> : any
+>Route : any
+
+=== tests/cases/conformance/jsx/react.d.ts ===
+
+declare module 'react' {
+ var x: any;
+>x : any
+
+ export = x;
+>x : any
+}
+
+declare module ReactRouter {
+>ReactRouter : typeof ReactRouter
+
+ var Route: any;
+>Route : any
+
+ interface Thing { }
+>Thing : Thing
+}
+declare module 'react-router' {
+ export = ReactRouter;
+>ReactRouter : typeof ReactRouter
+}
+
diff --git a/tests/cases/conformance/jsx/tsxPreserveEmit1.tsx b/tests/cases/conformance/jsx/tsxPreserveEmit1.tsx
new file mode 100644
index 00000000000..e75a1dbfde2
--- /dev/null
+++ b/tests/cases/conformance/jsx/tsxPreserveEmit1.tsx
@@ -0,0 +1,26 @@
+//@module: amd
+//@jsx: preserve
+//@target: ES5
+
+//@Filename: react.d.ts
+declare module 'react' {
+ var x: any;
+ export = x;
+}
+
+declare module ReactRouter {
+ var Route: any;
+ interface Thing { }
+}
+declare module 'react-router' {
+ export = ReactRouter;
+}
+
+//@Filename: test.tsx
+// Should emit 'react-router' in the AMD dependency list
+import React = require('react');
+import ReactRouter = require('react-router');
+
+import Route = ReactRouter.Route;
+
+var routes = ;