@@ -40,7 +40,8 @@ var baseUrlParsingNode;
40
40
* http://james.padolsey.com/javascript/parsing-urls-with-the-dom/
41
41
*
42
42
* @kind function
43
- * @param {string } url The URL to be parsed.
43
+ * @param {string|object } url The URL to be parsed. If `url` is not a string, it will be returned
44
+ * unchanged.
44
45
* @description Normalizes and parses a URL.
45
46
* @returns {object } Returns the normalized URL as a dictionary.
46
47
*
@@ -57,6 +58,8 @@ var baseUrlParsingNode;
57
58
*
58
59
*/
59
60
function urlResolve ( url ) {
61
+ if ( ! isString ( url ) ) return url ;
62
+
60
63
var href = url ;
61
64
62
65
// Support: IE 9-11 only
@@ -132,7 +135,7 @@ function urlIsAllowedOriginFactory(whitelistedOriginUrls) {
132
135
* @returns {boolean } - Whether the specified URL is of an allowed origin.
133
136
*/
134
137
return function urlIsAllowedOrigin ( requestUrl ) {
135
- var parsedUrl = isString ( requestUrl ) ? urlResolve ( requestUrl ) : requestUrl ;
138
+ var parsedUrl = urlResolve ( requestUrl ) ;
136
139
return parsedAllowedOriginUrls . some ( urlsAreSameOrigin . bind ( null , parsedUrl ) ) ;
137
140
} ;
138
141
}
@@ -148,8 +151,8 @@ function urlIsAllowedOriginFactory(whitelistedOriginUrls) {
148
151
* @returns {boolean } - True if both URLs have the same origin, and false otherwise.
149
152
*/
150
153
function urlsAreSameOrigin ( url1 , url2 ) {
151
- url1 = isString ( url1 ) ? urlResolve ( url1 ) : url1 ;
152
- url2 = isString ( url2 ) ? urlResolve ( url2 ) : url2 ;
154
+ url1 = urlResolve ( url1 ) ;
155
+ url2 = urlResolve ( url2 ) ;
153
156
154
157
return ( url1 . protocol === url2 . protocol &&
155
158
url1 . host === url2 . host ) ;
0 commit comments