// 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 || '') +