code: function getSameAs(obj) {
  	if (!obj) {
  		return false;
  	}
  
  	if (isArray(obj)) {
  		return [];
  	}
  
  	if (isPlainObject(obj)) {
  		return {};
  	}
  
  	if (isMap(obj)) {
  		return new Map();
  	}
  
  	if (isSet(obj)) {
  		return new Set();
  	}
  
  	return isFunction(obj.constructor) && !isNative.test(obj.constructor.toString()) ? {} : false;
  }
docs: Returns a new object with the same type as source
  
  @param {?} obj - source object
  @return {?}