@samitouri / QOS-React-2 / commits / 06cff60bc1
Fork 0

The library for web and native user interfaces.

Sync latest JSX transform - all children passed as separate arguments

This was a part of e1fe13d0cbb6063594a0b9dc712a8ee6006bb2e3 upstream.

Paul O’Shannessy committed Jun 13, 2013 at 18:18 UTC 06cff60bc1eec13ff804af9f74b3b2b37b5490b3
3 files changed +15 -15
vendor/fbtransform/lib/transform.js
+7 -1
@@ -91,7 +91,13 @@ function walker(traverse, object, path, state) {
91 }
92
93 function runPass(source, visitors, options) {
94 - var ast = esprima.parse(source, { comment: true, loc: true, range: true });
94 + var ast;
95 + try {
96 + ast = esprima.parse(source, { comment: true, loc: true, range: true });
97 + } catch (e) {
98 + e.message = 'Parse Error: ' + e.message;
99 + throw e;
100 + }
101 var state = createState(source, options);
102 state.g.originalProgramAST = ast;
103 state.g.visitors = visitors;
vendor/fbtransform/syntax.js
+6 -1
@@ -54,7 +54,12 @@ function runCli(argv) {
54 source += chunk;
55 });
56 process.stdin.on('end', function () {
57 - source = transformAll(source, options, excludes);
57 + try {
58 + source = transformAll(source, options, excludes);
59 + } catch (e) {
60 + console.error(e.stack);
61 + process.exit(1);
62 + }
63 process.stdout.write(source.code);
64 });
65 }
vendor/fbtransform/transforms/react.js
+2 -13
@@ -136,14 +136,10 @@ function visitReactTag(traverse, object, path, state) {
136 move(object.openingElement.range[1], state);
137 }
138
139 - // separate props and children arguments
140 - append(', ', state);
141 -
139 // filter out whitespace
140 if (childrenToRender.length > 0) {
144 - if (childrenToRender.length > 1) {
145 - append('[', state);
146 - }
141 + append(', ', state);
142 +
143 object.children.forEach(function(child) {
144 if (child.type === Syntax.Literal && !child.value.match(/\S/)) {
145 return;
@@ -166,8 +162,6 @@ function visitReactTag(traverse, object, path, state) {
162
163 catchup(child.range[1], state);
164 });
169 - } else {
170 - append('null', state);
165 }
166
167 if (object.selfClosing) {
@@ -180,11 +174,6 @@ function visitReactTag(traverse, object, path, state) {
174 move(object.closingElement.range[1], state);
175 }
176
183 - if (childrenToRender.length > 0) {
184 - if (childrenToRender.length > 1) {
185 - append(']', state);
186 - }
187 - }
177 append(')', state);
178 return false;
179 }