From e9588061d75a45cf6c1938dd98fc0051841159ea Mon Sep 17 00:00:00 2001 From: unconfident <30427068+unconfident@users.noreply.github.com> Date: Fri, 18 Jan 2019 00:12:16 +0200 Subject: [PATCH] Copy "optional" property when cloning Identifier node (#9333) Fixes #9331 --- packages/babel-types/src/clone/cloneNode.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/babel-types/src/clone/cloneNode.js b/packages/babel-types/src/clone/cloneNode.js index 1da6c930e0..f1e36d3ad0 100644 --- a/packages/babel-types/src/clone/cloneNode.js +++ b/packages/babel-types/src/clone/cloneNode.js @@ -38,6 +38,10 @@ export default function cloneNode(node: T, deep: boolean = true): T { if (type === "Identifier") { newNode.name = node.name; + if (has(node, "optional") && typeof node.optional === "boolean") { + newNode.optional = node.optional; + } + if (has(node, "typeAnnotation")) { newNode.typeAnnotation = deep ? cloneIfNodeOrArray(node.typeAnnotation, true)