From 2198f46f537e5be41f92415d01337f5f02c19d8d Mon Sep 17 00:00:00 2001 From: jim Date: Wed, 11 Nov 2015 14:06:04 -0800 Subject: [PATCH] In JSX-source plugin, handle case where filename or line are null --- .../src/index.js | 21 +++++-------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/packages/babel-plugin-transform-react-jsx-source/src/index.js b/packages/babel-plugin-transform-react-jsx-source/src/index.js index 6a2725b994..b02ad1bc97 100644 --- a/packages/babel-plugin-transform-react-jsx-source/src/index.js +++ b/packages/babel-plugin-transform-react-jsx-source/src/index.js @@ -19,23 +19,12 @@ import path from "path"; const TRACE_ID = "__source"; export default function ({ types: t }) { - function objectToAst(object) { - const properties = Object.keys(object).map((attr) => { - let value; - switch(typeof object[attr]) { - case "number": value = t.numericLiteral(object[attr]); break; - default: value = t.stringLiteral(object[attr].toString()); - } - return t.objectProperty(t.identifier(attr), value); - }); - return t.objectExpression(properties); - } - function makeTrace(fileName, lineNumber) { - return objectToAst({ - fileName, - lineNumber, - }); + const fileNameLiteral = fileName != null ? t.stringLiteral(fileName) : t.nullLiteral(); + const fileLineLiteral = lineNumber != null ? t.numericLiteral(lineNumber) : t.nullLiteral(); + const fileNameProperty = t.objectProperty(t.identifier("fileName"), fileNameLiteral); + const lineNumberProperty = t.objectProperty(t.identifier("lineNumber"), fileLineLiteral); + return t.objectExpression([fileNameProperty, lineNumberProperty]); } let visitor = {