getRootName = expression => {
	switch (expression.type) {
		case "Identifier":
			return expression.name;
		case "ThisExpression":
			return "this";
		case "MetaProperty":
			return `${expression.meta.name}.${expression.property.name}`;
		default:
			return undefined;
	}
}
Grabs the name of a given expression and returns it as a string or undefined. Has particular
handling for [Identifiers](https://github.com/estree/estree/blob/master/es5.md#identifier),
[ThisExpressions](https://github.com/estree/estree/blob/master/es5.md#identifier), and
[MetaProperties](https://github.com/estree/estree/blob/master/es2015.md#metaproperty) which is
specifically for handling the `new.target` meta property.
@param {Expression | SpreadElement | Super} expression expression
@returns {string | "this" | undefined} name or variable info