function _resolvePatternName(pattern) {
    switch (pattern.type) {
        case 'Identifier':
            // prop = ...;
            return pattern.name;
        case 'StringLiteral':
            // obj['prop'] = ...;
            return pattern.value;
        case 'MemberExpression':
            // obj.prop = ...;
            return _resolvePatternName(pattern.property);
        default:
            // Something unhandy like obj['x' + 2] = ...;
            return false;
    }
}
Fetching name from a Pattern

@param {Pattern} pattern - E.g. left side of AssignmentExpression
@returns {String|Boolean} - Resolved name or false (if there is an Expression)