Fix emit for boolean attributes

This commit is contained in:
Ryan Cavanaugh
2015-06-18 18:37:32 -07:00
parent 46eb5216ff
commit b0750c25b2
5 changed files with 25 additions and 16 deletions

View File

@@ -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[]) {

View File

@@ -13,13 +13,13 @@ var selfClosed3 = <div x='1' />;
var selfClosed4 = <div x="1" y='0' />;
var selfClosed5 = <div x={0} y='0' />;
var selfClosed6 = <div x={"1"} y='0' />;
var selfClosed7 = <div x={p} y='p' />;
var selfClosed7 = <div x={p} y='p' b />;
var openClosed1 = <div></div>;
var openClosed2 = <div n='m'>foo</div>;
var openClosed3 = <div n='m'>{p}</div>;
var openClosed4 = <div n='m'>{p < p}</div>;
var openClosed5 = <div n='m'>{p > p}</div>;
var openClosed5 = <div n='m' b>{p > p}</div>;
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() {
}

View File

@@ -48,11 +48,12 @@ var selfClosed6 = <div x={"1"} y='0' />;
>x : Symbol(unknown)
>y : Symbol(unknown)
var selfClosed7 = <div x={p} y='p' />;
var selfClosed7 = <div x={p} y='p' b />;
>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 = <div></div>;
>openClosed1 : Symbol(openClosed1, Decl(tsxReactEmit1.tsx, 16, 3))
@@ -75,15 +76,16 @@ var openClosed4 = <div n='m'>{p < p}</div>;
>p : Symbol(p, Decl(tsxReactEmit1.tsx, 7, 3))
>p : Symbol(p, Decl(tsxReactEmit1.tsx, 7, 3))
var openClosed5 = <div n='m'>{p > p}</div>;
var openClosed5 = <div n='m' b>{p > p}</div>;
>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 = <div>{() => this}</div>;
>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 = <div>{[p, ...p, p]}</div>;
>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 = <div a={[p, ...p, p]}></div>;
>rewrites5 : Symbol(rewrites5, Decl(tsxReactEmit1.tsx, 29, 5))

View File

@@ -54,13 +54,14 @@ var selfClosed6 = <div x={"1"} y='0' />;
>x : any
>y : any
var selfClosed7 = <div x={p} y='p' />;
var selfClosed7 = <div x={p} y='p' b />;
>selfClosed7 : JSX.Element
><div x={p} y='p' /> : JSX.Element
><div x={p} y='p' b /> : JSX.Element
>div : any
>x : any
>p : any
>y : any
>b : any
var openClosed1 = <div></div>;
>openClosed1 : JSX.Element
@@ -93,11 +94,12 @@ var openClosed4 = <div n='m'>{p < p}</div>;
>p : any
>div : any
var openClosed5 = <div n='m'>{p > p}</div>;
var openClosed5 = <div n='m' b>{p > p}</div>;
>openClosed5 : JSX.Element
><div n='m'>{p > p}</div> : JSX.Element
><div n='m' b>{p > p}</div> : JSX.Element
>div : any
>n : any
>b : any
>p > p : boolean
>p : any
>p : any

View File

@@ -14,13 +14,13 @@ var selfClosed3 = <div x='1' />;
var selfClosed4 = <div x="1" y='0' />;
var selfClosed5 = <div x={0} y='0' />;
var selfClosed6 = <div x={"1"} y='0' />;
var selfClosed7 = <div x={p} y='p' />;
var selfClosed7 = <div x={p} y='p' b />;
var openClosed1 = <div></div>;
var openClosed2 = <div n='m'>foo</div>;
var openClosed3 = <div n='m'>{p}</div>;
var openClosed4 = <div n='m'>{p < p}</div>;
var openClosed5 = <div n='m'>{p > p}</div>;
var openClosed5 = <div n='m' b>{p > p}</div>;
class SomeClass {
f() {