|
|
|
@ -1478,12 +1478,24 @@ window.addEventListener('unload', function() {
|
|
|
|
|
|
|
|
|
|
/******************************************************************************/
|
|
|
|
|
|
|
|
|
|
var urlNormalizer = self.URL;
|
|
|
|
|
var punycodeHostname = vAPI.punycodeHostname = punycode.toASCII;
|
|
|
|
|
// Likelihood is that we do not have to punycode: given punycode overhead,
|
|
|
|
|
// it's faster to check and skip than do it unconditionally all the time.
|
|
|
|
|
|
|
|
|
|
var punycodeHostname = punycode.toASCII;
|
|
|
|
|
var isNotASCII = /[^\x21-\x7F]/;
|
|
|
|
|
|
|
|
|
|
vAPI.punycodeHostname = function(hostname) {
|
|
|
|
|
return isNotASCII.test(hostname) ? punycodeHostname(hostname) : hostname;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var cachedURL = self.URL;
|
|
|
|
|
|
|
|
|
|
vAPI.punycodeURL = function(url) {
|
|
|
|
|
urlNormalizer.href = url;
|
|
|
|
|
urlNormalizer.hostname = punycodeHostname(urlNormalizer.hostname);
|
|
|
|
|
if ( isNotASCII.test(url) === false ) {
|
|
|
|
|
return url;
|
|
|
|
|
}
|
|
|
|
|
cachedURL.href = url;
|
|
|
|
|
cachedURL.hostname = punycodeHostname(cachedURL.hostname);
|
|
|
|
|
return urlNormalizer.href;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|