@@ -39,7 +39,8 @@ var originUrl = urlResolve(window.location.href);
39
39
* http://james.padolsey.com/javascript/parsing-urls-with-the-dom/
40
40
*
41
41
* @kind function
42
- * @param {string } url The URL to be parsed.
42
+ * @param {string|object } url The URL to be parsed. If `url` is not a string, it will be returned
43
+ * unchanged.
43
44
* @description Normalizes and parses a URL.
44
45
* @returns {object } Returns the normalized URL as a dictionary.
45
46
*
@@ -56,6 +57,8 @@ var originUrl = urlResolve(window.location.href);
56
57
*
57
58
*/
58
59
function urlResolve ( url ) {
60
+ if ( ! isString ( url ) ) return url ;
61
+
59
62
var href = url ;
60
63
61
64
// Support: IE 9-11 only
@@ -118,7 +121,7 @@ function urlIsAllowedOriginFactory(whitelistedOriginUrls) {
118
121
* @returns {boolean } - Whether the specified URL is of an allowed origin.
119
122
*/
120
123
return function urlIsAllowedOrigin ( requestUrl ) {
121
- var parsedUrl = isString ( requestUrl ) ? urlResolve ( requestUrl ) : requestUrl ;
124
+ var parsedUrl = urlResolve ( requestUrl ) ;
122
125
return parsedAllowedOriginUrls . some ( urlsAreSameOrigin . bind ( null , parsedUrl ) ) ;
123
126
} ;
124
127
}
@@ -134,8 +137,8 @@ function urlIsAllowedOriginFactory(whitelistedOriginUrls) {
134
137
* @returns {boolean } - True if both URLs have the same origin, and false otherwise.
135
138
*/
136
139
function urlsAreSameOrigin ( url1 , url2 ) {
137
- url1 = isString ( url1 ) ? urlResolve ( url1 ) : url1 ;
138
- url2 = isString ( url2 ) ? urlResolve ( url2 ) : url2 ;
140
+ url1 = urlResolve ( url1 ) ;
141
+ url2 = urlResolve ( url2 ) ;
139
142
140
143
return ( url1 . protocol === url2 . protocol &&
141
144
url1 . host === url2 . host ) ;
0 commit comments