Skip to content

Commit

Permalink
refactor: remove unnecessary nullish check
Browse files Browse the repository at this point in the history
  • Loading branch information
JLHwung committed Jan 20, 2020
1 parent 4fcf61c commit 0eec2e3
Showing 1 changed file with 66 additions and 68 deletions.
134 changes: 66 additions & 68 deletions packages/babel-parser/src/parser/lval.js
Expand Up @@ -51,88 +51,86 @@ export default class LValParser extends NodeUtils {
// When this one is updated, please check if also that one needs to be updated.

toAssignable(node: Node): Node {
if (node) {
if (
(this.options.createParenthesizedExpressions &&
node.type === "ParenthesizedExpression") ||
node.extra?.parenthesized
) {
const parenthesized = unwrapParenthesizedExpression(node);
if (
(this.options.createParenthesizedExpressions &&
node.type === "ParenthesizedExpression") ||
node.extra?.parenthesized
parenthesized.type !== "Identifier" &&
parenthesized.type !== "MemberExpression"
) {
const parenthesized = unwrapParenthesizedExpression(node);
if (
parenthesized.type !== "Identifier" &&
parenthesized.type !== "MemberExpression"
) {
this.raise(node.start, "Invalid parenthesized assignment pattern");
}
this.raise(node.start, "Invalid parenthesized assignment pattern");
}
}

switch (node.type) {
case "Identifier":
case "ObjectPattern":
case "ArrayPattern":
case "AssignmentPattern":
break;

case "ObjectExpression":
node.type = "ObjectPattern";
for (
let i = 0, length = node.properties.length, last = length - 1;
i < length;
i++
switch (node.type) {
case "Identifier":
case "ObjectPattern":
case "ArrayPattern":
case "AssignmentPattern":
break;

case "ObjectExpression":
node.type = "ObjectPattern";
for (
let i = 0, length = node.properties.length, last = length - 1;
i < length;
i++
) {
const prop = node.properties[i];
const isLast = i === last;
this.toAssignableObjectExpressionProp(prop, isLast);

if (
isLast &&
prop.type === "RestElement" &&
node.extra?.trailingComma
) {
const prop = node.properties[i];
const isLast = i === last;
this.toAssignableObjectExpressionProp(prop, isLast);

if (
isLast &&
prop.type === "RestElement" &&
node.extra?.trailingComma
) {
this.raiseRestNotLast(node.extra.trailingComma);
}
this.raiseRestNotLast(node.extra.trailingComma);
}
break;
}
break;

case "ObjectProperty":
this.toAssignable(node.value);
break;
case "ObjectProperty":
this.toAssignable(node.value);
break;

case "SpreadElement": {
this.checkToRestConversion(node);
case "SpreadElement": {
this.checkToRestConversion(node);

node.type = "RestElement";
const arg = node.argument;
this.toAssignable(arg);
break;
}
node.type = "RestElement";
const arg = node.argument;
this.toAssignable(arg);
break;
}

case "ArrayExpression":
node.type = "ArrayPattern";
this.toAssignableList(node.elements, node.extra?.trailingComma);
break;
case "ArrayExpression":
node.type = "ArrayPattern";
this.toAssignableList(node.elements, node.extra?.trailingComma);
break;

case "AssignmentExpression":
if (node.operator !== "=") {
this.raise(
node.left.end,
"Only '=' operator can be used for specifying default value.",
);
}
case "AssignmentExpression":
if (node.operator !== "=") {
this.raise(
node.left.end,
"Only '=' operator can be used for specifying default value.",
);
}

node.type = "AssignmentPattern";
delete node.operator;
this.toAssignable(node.left);
break;
node.type = "AssignmentPattern";
delete node.operator;
this.toAssignable(node.left);
break;

case "ParenthesizedExpression":
node.expression = this.toAssignable(node.expression);
break;
case "ParenthesizedExpression":
node.expression = this.toAssignable(node.expression);
break;

default:
// We don't know how to deal with this node. It will
// be reported by a later call to checkLVal
}
default:
// We don't know how to deal with this node. It will
// be reported by a later call to checkLVal
}
return node;
}
Expand Down

0 comments on commit 0eec2e3

Please sign in to comment.