function isLoopingTarget(node) {
	const parent = node.parent;

	if (parent) {
		switch (parent.type) {
			case "WhileStatement":
				return node === parent.test;
			case "DoWhileStatement":
				return node === parent.body;
			case "ForStatement":
				return node === (parent.update || parent.test || parent.body);
			case "ForInStatement":
			case "ForOfStatement":
				return node === parent.left;

			// no default
		}
	}

	return false;
}
Determines whether the given node is the first node in the code path to which a loop statement
'loops' for the next iteration.
@param {ASTNode} node The node to check.
@returns {boolean} `true` if the node is a looping target.