function isSafelyEnclosingInExpression(node, child) {
			switch (node.type) {
				case "ArrayExpression":
				case "ArrayPattern":
				case "BlockStatement":
				case "ObjectExpression":
				case "ObjectPattern":
				case "TemplateLiteral":
					return true;
				case "ArrowFunctionExpression":
				case "FunctionExpression":
					return node.params.includes(child);
				case "CallExpression":
				case "NewExpression":
					return node.arguments.includes(child);
				case "MemberExpression":
					return node.computed && node.property === child;
				case "ConditionalExpression":
					return node.consequent === child;
				default:
					return false;
			}
		}
Checks whether the syntax of the given ancestor of an 'in' expression inside a for-loop initializer
is preventing the 'in' keyword from being interpreted as a part of an ill-formed for-in loop.
@param {ASTNode} node Ancestor of an 'in' expression.
@param {ASTNode} child Child of the node, ancestor of the same 'in' expression or the 'in' expression itself.
@returns {boolean} True if the keyword 'in' would be interpreted as the 'in' operator, without any parenthesis.