url: Don't swallow punycode errors

This commit is contained in:
isaacs 2011-07-06 13:12:37 -07:00
parent 8475e1527d
commit 87900b14da

View File

@ -222,18 +222,14 @@ function urlParse(url, parseQueryString, slashesDenoteHost) {
// It only converts the part of the domain name that
// has non ASCII characters. I.e. it dosent matter if
// you call it with a domain that already is in ASCII.
try {
var domainArray = out.hostname.split('.');
var newOut = [];
for (var i = 0; i < domainArray.length; ++i) {
var s = domainArray[i];
newOut.push(s.match(/[^A-Za-z0-9-]/) ?
'xn--' + punycode.encode(s) : s);
}
out.hostname = newOut.join('.');
} catch (e) {
// if encode fail for some reason, we just do the classic behavior.
var domainArray = out.hostname.split('.');
var newOut = [];
for (var i = 0; i < domainArray.length; ++i) {
var s = domainArray[i];
newOut.push(s.match(/[^A-Za-z0-9-]/) ?
'xn--' + punycode.encode(s) : s);
}
out.hostname = newOut.join('.');
out.host = ((out.auth) ? out.auth + '@' : '') +
(out.hostname || '') +