function resolvePotentialWrapperExpression(node) {
	switch (node && node.type) {
		case Syntax.ChainExpression:
			return node.expression;

		case Syntax.AwaitExpression:
			return node.argument;

		case Syntax.ExpressionStatement:
			if ( node.expression.type === Syntax.YieldExpression ) {
				return node.expression.argument.type === Syntax.UpdateExpression
					? node.expression.argument
					: node.expression;
			}
			// fall through
		default:
			return node;
	}
}
Resolves potential wrapper expressions like: ChainExpression, AwaitExpression, etc.
@param {Node} node the node to unwrap
@returns {Node} the resolved node