From 280ff2e5a78d2bc32309685749e57e5aa79dfe5d Mon Sep 17 00:00:00 2001 From: Andreas Svensson Date: Tue, 11 Mar 2014 00:31:59 +0100 Subject: [PATCH] Unbreak JSX comment comma fix --- vendor/fbtransform/transforms/react.js | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/vendor/fbtransform/transforms/react.js b/vendor/fbtransform/transforms/react.js index 9b6019a634..1d5536c145 100644 --- a/vendor/fbtransform/transforms/react.js +++ b/vendor/fbtransform/transforms/react.js @@ -130,17 +130,26 @@ function visitReactTag(traverse, object, path, state) { var childrenToRender = object.children.filter(function(child) { return !(child.type === Syntax.Literal && typeof child.value === 'string' - && child.value.match(/^[ \t]*[\r\n][ \t\r\n]*$/) - || child.type === Syntax.XJSExpressionContainer - && child.expression.type === Syntax.XJSEmptyExpression); + && child.value.match(/^[ \t]*[\r\n][ \t\r\n]*$/)); }); if (childrenToRender.length > 0) { - utils.append(', ', state); + var lastRenderableIndex; + + childrenToRender.forEach(function(child, index) { + if (child.type !== Syntax.XJSExpressionContainer || + child.expression.type !== Syntax.XJSEmptyExpression) { + lastRenderableIndex = index; + } + }); + + if (lastRenderableIndex !== undefined) { + utils.append(', ', state); + } childrenToRender.forEach(function(child, index) { utils.catchup(child.range[0], state); - var isLast = index === childrenToRender.length - 1; + var isLast = index >= lastRenderableIndex; if (child.type === Syntax.Literal) { renderXJSLiteral(child, isLast, state);