@@ -39,7 +39,8 @@ var originUrl = urlResolve(window.location.href);
3939 * http://james.padolsey.com/javascript/parsing-urls-with-the-dom/
4040 *
4141 * @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.
4344 * @description Normalizes and parses a URL.
4445 * @returns {object } Returns the normalized URL as a dictionary.
4546 *
@@ -56,6 +57,8 @@ var originUrl = urlResolve(window.location.href);
5657 *
5758 */
5859function urlResolve ( url ) {
60+ if ( ! isString ( url ) ) return url ;
61+
5962 var href = url ;
6063
6164 // Support: IE 9-11 only
@@ -118,7 +121,7 @@ function urlIsAllowedOriginFactory(whitelistedOriginUrls) {
118121 * @returns {boolean } - Whether the specified URL is of an allowed origin.
119122 */
120123 return function urlIsAllowedOrigin ( requestUrl ) {
121- var parsedUrl = isString ( requestUrl ) ? urlResolve ( requestUrl ) : requestUrl ;
124+ var parsedUrl = urlResolve ( requestUrl ) ;
122125 return parsedAllowedOriginUrls . some ( urlsAreSameOrigin . bind ( null , parsedUrl ) ) ;
123126 } ;
124127}
@@ -134,8 +137,8 @@ function urlIsAllowedOriginFactory(whitelistedOriginUrls) {
134137 * @returns {boolean } - True if both URLs have the same origin, and false otherwise.
135138 */
136139function 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 ) ;
139142
140143 return ( url1 . protocol === url2 . protocol &&
141144 url1 . host === url2 . host ) ;
0 commit comments