diff --git a/resources/inline-invariant.js b/resources/inline-invariant.js index 88d1da8f95..c5299ae391 100644 --- a/resources/inline-invariant.js +++ b/resources/inline-invariant.js @@ -21,7 +21,11 @@ * ! ? invariant(0, ...) : undefined; */ module.exports = function inlineInvariant(context) { - const t = context.types; + const replaceTemplate = context.template(` + if (!%%cond%%) { + invariant(0, %%args%%); + } + `); return { visitor: { @@ -33,17 +37,8 @@ module.exports = function inlineInvariant(context) { return; } - const args = node.arguments.slice(0); - args[0] = t.numericLiteral(0); - - path.replaceWith( - t.ifStatement( - t.unaryExpression('!', node.arguments[0]), - t.expressionStatement( - t.callExpression(t.identifier(node.callee.name), args) - ) - ) - ); + const [cond, args] = node.arguments; + path.replaceWith(replaceTemplate({ cond, args })); }, }, };