diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 7b3b51c3f27..b1a0c1fff5b 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.JsxSpreadAttribute: case SyntaxKind.JsxExpression: case SyntaxKind.NewExpression: case SyntaxKind.ParenthesizedExpression: diff --git a/tests/baselines/reference/tsxExternalModuleEmit2.js b/tests/baselines/reference/tsxExternalModuleEmit2.js new file mode 100644 index 00000000000..f8fe6096090 --- /dev/null +++ b/tests/baselines/reference/tsxExternalModuleEmit2.js @@ -0,0 +1,25 @@ +//// [tests/cases/conformance/jsx/tsxExternalModuleEmit2.tsx] //// + +//// [modules.d.ts] + +declare module 'mod' { + var y: any; + export default y; +} + +//// [app.tsx] +import Main from 'mod'; +declare var Foo, React; +// Should see mod_1['default'] in emit here +; +// Should see mod_1['default'] in emit here +; + + + +//// [app.js] +var mod_1 = require('mod'); +// Should see mod_1['default'] in emit here +React.createElement(Foo, {"handler": mod_1["default"]}); +// Should see mod_1['default'] in emit here +React.createElement(Foo, React.__spread({}, mod_1["default"])); diff --git a/tests/baselines/reference/tsxExternalModuleEmit2.symbols b/tests/baselines/reference/tsxExternalModuleEmit2.symbols new file mode 100644 index 00000000000..6d1c5aaebb8 --- /dev/null +++ b/tests/baselines/reference/tsxExternalModuleEmit2.symbols @@ -0,0 +1,28 @@ +=== tests/cases/conformance/jsx/modules.d.ts === + +declare module 'mod' { + var y: any; +>y : Symbol(y, Decl(modules.d.ts, 2, 5)) + + export default y; +>y : Symbol(y, Decl(modules.d.ts, 2, 5)) +} + +=== tests/cases/conformance/jsx/app.tsx === +import Main from 'mod'; +>Main : Symbol(Main, Decl(app.tsx, 0, 6)) + +declare var Foo, React; +>Foo : Symbol(Foo, Decl(app.tsx, 1, 11)) +>React : Symbol(React, Decl(app.tsx, 1, 16)) + +// Should see mod_1['default'] in emit here +; +>Foo : Symbol(Foo, Decl(app.tsx, 1, 11)) +>handler : Symbol(unknown) + +// Should see mod_1['default'] in emit here +; +>Foo : Symbol(Foo, Decl(app.tsx, 1, 11)) + + diff --git a/tests/baselines/reference/tsxExternalModuleEmit2.types b/tests/baselines/reference/tsxExternalModuleEmit2.types new file mode 100644 index 00000000000..b4746fe46c7 --- /dev/null +++ b/tests/baselines/reference/tsxExternalModuleEmit2.types @@ -0,0 +1,34 @@ +=== tests/cases/conformance/jsx/modules.d.ts === + +declare module 'mod' { + var y: any; +>y : any + + export default y; +>y : any +} + +=== tests/cases/conformance/jsx/app.tsx === +import Main from 'mod'; +>Main : any + +declare var Foo, React; +>Foo : any +>React : any + +// Should see mod_1['default'] in emit here +; +> : any +>Foo : any +>handler : any +>Main : any +>Foo : any + +// Should see mod_1['default'] in emit here +; +> : any +>Foo : any +>Main : any +>Foo : any + + diff --git a/tests/cases/conformance/jsx/tsxExternalModuleEmit2.tsx b/tests/cases/conformance/jsx/tsxExternalModuleEmit2.tsx new file mode 100644 index 00000000000..fa14d14d699 --- /dev/null +++ b/tests/cases/conformance/jsx/tsxExternalModuleEmit2.tsx @@ -0,0 +1,17 @@ +//@jsx: react +//@module: commonjs + +//@filename: modules.d.ts +declare module 'mod' { + var y: any; + export default y; +} + +//@filename: app.tsx +import Main from 'mod'; +declare var Foo, React; +// Should see mod_1['default'] in emit here +; +// Should see mod_1['default'] in emit here +; +