microformat-shiv.js
function(url, baseUrl) {
			// use modern URL web API where we can
			if(modules.utils.isString(url) && modules.utils.isString(baseUrl) && url.indexOf('://') === -1){
				// this try catch is required as IE has an URL object but no constuctor support
				// http://glennjones.net/articles/the-problem-with-window-url
				try {
					var resolved = new URL(url, baseUrl).toString();
					// deal with early Webkit not throwing an error - for Safari
					if(resolved === '[object URL]'){
						resolved = URI.resolve(baseUrl, url);
					}
					return resolved;
				}catch(e){
                    // otherwise fallback to DOM
                    if(this._domParser === undefined){
                        this.init();
                    }

                    // do not use setAttribute it does not work with IE9
                    this._baseNode.href = baseUrl;
                    this._linkNode.href = url;

                    // dont use getAttribute as it returns orginal value not resolved
                    return this._linkNode.href;
				}
			}else{
				if(modules.utils.isString(url)){
					return url;
				}
				return '';
			}
		}
function(url, baseUrl) {
			// use modern URL web API where we can
			if(modules.utils.isString(url) && modules.utils.isString(baseUrl) && url.indexOf('://') === -1){
				// this try catch is required as IE has an URL object but no constuctor support
				// http://glennjones.net/articles/the-problem-with-window-url
				try {
					var resolved = new URL(url, baseUrl).toString();
					// deal with early Webkit not throwing an error - for Safari
					if(resolved === '[object URL]'){
						resolved = URI.resolve(baseUrl, url);
					}
					return resolved;
				}catch(e){
                    // otherwise fallback to DOM
                    if(this._domParser === undefined){
                        this.init();
                    }

                    // do not use setAttribute it does not work with IE9
                    this._baseNode.href = baseUrl;
                    this._linkNode.href = url;

                    // dont use getAttribute as it returns orginal value not resolved
                    return this._linkNode.href;
				}
			}else{
				if(modules.utils.isString(url)){
					return url;
				}
				return '';
			}
		}
function ( url , baseUrl ) { // use modern URL web API where we can if ( modules . utils . isString ( url ) && modules . utils . isString ( baseUrl ) && url . indexOf ( '://' ) === - 1 ) { // this try catch is required as IE has an URL object but no constuctor support // http://glennjones.net/articles/the-problem-with-window-url try { var resolved = new URL ( url , baseUrl ) . toString ( ) ; // deal with early Webkit not throwing an error - for Safari if ( resolved === '[object URL]' ) { resolved = URI . resolve ( baseUrl , url ) ; } return resolved ; } catch ( e ) { // otherwise fallback to DOM if ( this . _domParser === undefined ) { this . init ( ) ; } // do not use setAttribute it does not work with IE9 this . _baseNode . href = baseUrl ; this . _linkNode . href = url ; // dont use getAttribute as it returns orginal value not resolved return this . _linkNode . href ; } } else { if ( modules . utils . isString ( url ) ) { return url ; } return '' ; } }
resolves url to absolute version using baseUrl

@param  {String} url
@param  {String} baseUrl
@return {String}
resolves url to absolute version using baseUrl