diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 265690cd680..588375febc5 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -1148,7 +1148,12 @@ var __param = (this && this.__param) || function (paramIndex, decorator) { function emitJsxAttribute(node: JsxAttribute) { emitAttributeName(node.name); write(': '); - emit(node.initializer); + if (node.initializer) { + emit(node.initializer); + } + else { + write('true'); + } } function emitJsxElement(openingNode: JsxOpeningElement|JsxSelfClosingElement, children?: JsxChild[]) { diff --git a/tests/baselines/reference/tsxReactEmit1.js b/tests/baselines/reference/tsxReactEmit1.js index c8be861e8f1..b6c5fd96183 100644 --- a/tests/baselines/reference/tsxReactEmit1.js +++ b/tests/baselines/reference/tsxReactEmit1.js @@ -13,13 +13,13 @@ var selfClosed3 =
; var selfClosed4 =
; var selfClosed5 =
; var selfClosed6 =
; -var selfClosed7 =
; +var selfClosed7 =
; var openClosed1 =
; var openClosed2 =
foo
; var openClosed3 =
{p}
; var openClosed4 =
{p < p}
; -var openClosed5 =
{p > p}
; +var openClosed5 =
{p > p}
; class SomeClass { f() { @@ -48,12 +48,12 @@ var selfClosed3 = React.createElement("div", {x: '1'}); var selfClosed4 = React.createElement("div", {x: "1", y: '0'}); var selfClosed5 = React.createElement("div", {x: 0, y: '0'}); var selfClosed6 = React.createElement("div", {x: "1", y: '0'}); -var selfClosed7 = React.createElement("div", {x: p, y: 'p'}); +var selfClosed7 = React.createElement("div", {x: p, y: 'p', b: true}); var openClosed1 = React.createElement("div", null); var openClosed2 = React.createElement("div", {n: 'm'}, "foo"); var openClosed3 = React.createElement("div", {n: 'm'}, p); var openClosed4 = React.createElement("div", {n: 'm'}, p < p); -var openClosed5 = React.createElement("div", {n: 'm'}, p > p); +var openClosed5 = React.createElement("div", {n: 'm', b: true}, p > p); var SomeClass = (function () { function SomeClass() { } diff --git a/tests/baselines/reference/tsxReactEmit1.symbols b/tests/baselines/reference/tsxReactEmit1.symbols index f35a7872915..60fa5e70b0a 100644 --- a/tests/baselines/reference/tsxReactEmit1.symbols +++ b/tests/baselines/reference/tsxReactEmit1.symbols @@ -48,11 +48,12 @@ var selfClosed6 =
; >x : Symbol(unknown) >y : Symbol(unknown) -var selfClosed7 =
; +var selfClosed7 =
; >selfClosed7 : Symbol(selfClosed7, Decl(tsxReactEmit1.tsx, 14, 3)) >div : Symbol(JSX.IntrinsicElements, Decl(tsxReactEmit1.tsx, 1, 22)) >x : Symbol(unknown) >y : Symbol(unknown) +>b : Symbol(unknown) var openClosed1 =
; >openClosed1 : Symbol(openClosed1, Decl(tsxReactEmit1.tsx, 16, 3)) @@ -75,15 +76,16 @@ var openClosed4 =
{p < p}
; >p : Symbol(p, Decl(tsxReactEmit1.tsx, 7, 3)) >p : Symbol(p, Decl(tsxReactEmit1.tsx, 7, 3)) -var openClosed5 =
{p > p}
; +var openClosed5 =
{p > p}
; >openClosed5 : Symbol(openClosed5, Decl(tsxReactEmit1.tsx, 20, 3)) >div : Symbol(JSX.IntrinsicElements, Decl(tsxReactEmit1.tsx, 1, 22)) >n : Symbol(unknown) +>b : Symbol(unknown) >p : Symbol(p, Decl(tsxReactEmit1.tsx, 7, 3)) >p : Symbol(p, Decl(tsxReactEmit1.tsx, 7, 3)) class SomeClass { ->SomeClass : Symbol(SomeClass, Decl(tsxReactEmit1.tsx, 20, 43)) +>SomeClass : Symbol(SomeClass, Decl(tsxReactEmit1.tsx, 20, 45)) f() { >f : Symbol(f, Decl(tsxReactEmit1.tsx, 22, 17)) @@ -91,7 +93,7 @@ class SomeClass { var rewrites1 =
{() => this}
; >rewrites1 : Symbol(rewrites1, Decl(tsxReactEmit1.tsx, 24, 5)) >div : Symbol(JSX.IntrinsicElements, Decl(tsxReactEmit1.tsx, 1, 22)) ->this : Symbol(SomeClass, Decl(tsxReactEmit1.tsx, 20, 43)) +>this : Symbol(SomeClass, Decl(tsxReactEmit1.tsx, 20, 45)) var rewrites2 =
{[p, ...p, p]}
; >rewrites2 : Symbol(rewrites2, Decl(tsxReactEmit1.tsx, 25, 5)) @@ -109,7 +111,7 @@ class SomeClass { >rewrites4 : Symbol(rewrites4, Decl(tsxReactEmit1.tsx, 28, 5)) >div : Symbol(JSX.IntrinsicElements, Decl(tsxReactEmit1.tsx, 1, 22)) >a : Symbol(unknown) ->this : Symbol(SomeClass, Decl(tsxReactEmit1.tsx, 20, 43)) +>this : Symbol(SomeClass, Decl(tsxReactEmit1.tsx, 20, 45)) var rewrites5 =
; >rewrites5 : Symbol(rewrites5, Decl(tsxReactEmit1.tsx, 29, 5)) diff --git a/tests/baselines/reference/tsxReactEmit1.types b/tests/baselines/reference/tsxReactEmit1.types index d58316b14cf..d23cad4560a 100644 --- a/tests/baselines/reference/tsxReactEmit1.types +++ b/tests/baselines/reference/tsxReactEmit1.types @@ -54,13 +54,14 @@ var selfClosed6 =
; >x : any >y : any -var selfClosed7 =
; +var selfClosed7 =
; >selfClosed7 : JSX.Element ->
: JSX.Element +>
: JSX.Element >div : any >x : any >p : any >y : any +>b : any var openClosed1 =
; >openClosed1 : JSX.Element @@ -93,11 +94,12 @@ var openClosed4 =
{p < p}
; >p : any >div : any -var openClosed5 =
{p > p}
; +var openClosed5 =
{p > p}
; >openClosed5 : JSX.Element ->
{p > p}
: JSX.Element +>
{p > p}
: JSX.Element >div : any >n : any +>b : any >p > p : boolean >p : any >p : any diff --git a/tests/cases/conformance/jsx/tsxReactEmit1.tsx b/tests/cases/conformance/jsx/tsxReactEmit1.tsx index 8ca8ef1ff40..b8f14b0ba22 100644 --- a/tests/cases/conformance/jsx/tsxReactEmit1.tsx +++ b/tests/cases/conformance/jsx/tsxReactEmit1.tsx @@ -14,13 +14,13 @@ var selfClosed3 =
; var selfClosed4 =
; var selfClosed5 =
; var selfClosed6 =
; -var selfClosed7 =
; +var selfClosed7 =
; var openClosed1 =
; var openClosed2 =
foo
; var openClosed3 =
{p}
; var openClosed4 =
{p < p}
; -var openClosed5 =
{p > p}
; +var openClosed5 =
{p > p}
; class SomeClass { f() {