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() {