whole_func_string: function sanitizeExtra( data ) {
  	const path = data._contactDetailsCache ? [ '_contactDetailsCache', 'extra' ] : 'extra';
  	return data && isArray( get( data, path ) ) ? omit( data, path ) : data;
  }
func_code_string: function sanitizeExtra( data ) {
  	const path = data._contactDetailsCache ? [ '_contactDetailsCache', 'extra' ] : 'extra';
  	return data && isArray( get( data, path ) ) ? omit( data, path ) : data;
  }
func_documentation_string: Drop data.extra if it's an array
  
  Assigning extra as an array (due to a bug in the server) leads to a
  a really weird state that effectively disables the extra form for the user
  permanently.
  
  These values will be persisted locally, so we need to handle them here
  even if we catch them all on the backend.
  
  In case you're curios, Here's the weirdness:
  
  weird = Object.assign( [1,2,3], { foo:'bar' } )
  // [1, 2, 3, foo: "bar"] (wat?)
  weird.map( v => v );
  // [1, 2, 3] (no foo for you!)
  
  @param  {Object} data   Potential contact details
  @return {Object}        Sanitized contact details