From f2981b7e95c50296790b909818a45cfe5efd1562 Mon Sep 17 00:00:00 2001 From: Ondrej Kraus Date: Wed, 25 Feb 2015 03:02:48 +0100 Subject: [PATCH] replace direct node type checking with helper functions --- .../transformers/es6/parameters.rest.js | 20 ++++++------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/src/babel/transformation/transformers/es6/parameters.rest.js b/src/babel/transformation/transformers/es6/parameters.rest.js index 2c2937bf2c..12be9d2bd3 100644 --- a/src/babel/transformation/transformers/es6/parameters.rest.js +++ b/src/babel/transformation/transformers/es6/parameters.rest.js @@ -16,11 +16,11 @@ var memberExpressionVisitor = { if (!t.isReferencedIdentifier(node, parent, { name: state.name })) return; - if (parent.type === 'MemberExpression') { + if (t.isMemberExpression(parent)) { var prop = parent.property; if (typeof prop.value === 'number' || - prop.type === 'UnaryExpression' || - prop.type === 'BinaryExpression') { + t.isUnaryExpression(prop) || + t.isBinaryExpression(prop)) { state.candidates.push({ node: node, parent: parent }); return; } @@ -35,26 +35,18 @@ function optimizeMemberExpression(node, parent, offset) { var newExpr; var prop = parent.property; - switch (prop.type) { - case 'Literal': + if (t.isLiteral(prop)) { node.name = 'arguments'; prop.value += offset; prop.raw = String(prop.value); - break; - case 'UnaryExpression': { + } else if (t.isUnaryExpression(prop)) { node.name = 'arguments'; newExpr = t.binaryExpression('+', prop, t.literal(offset)); parent.property = newExpr; - break; - } - case 'BinaryExpression': { + } else if (t.isBinaryExpression(prop)) { node.name = 'arguments'; newExpr = t.binaryExpression('+', prop, t.literal(offset)); parent.property = newExpr; - break; - } - default: - throw new Error('Unsupported property type'); } }