punycode: Update to v0.1.1.
This commit is contained in:
parent
3421f43351
commit
897208e06d
@ -34,6 +34,10 @@
|
||||
initialN = 128, // 0x80
|
||||
delimiter = '-', // '\x2D'
|
||||
|
||||
/** Regular expressions */
|
||||
regexASCII = /[^\x20-\x7e]/,
|
||||
regexPunycode = /^xn--/,
|
||||
|
||||
/** Error messages */
|
||||
errors = {
|
||||
'overflow': 'Overflow: input needs wider integers to process.',
|
||||
@ -87,7 +91,7 @@
|
||||
*/
|
||||
function mapDomain(string, fn) {
|
||||
var glue = '.';
|
||||
return map(string.toLowerCase().split(glue), fn).join(glue);
|
||||
return map(string.split(glue), fn).join(glue);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -196,6 +200,7 @@
|
||||
|
||||
/**
|
||||
* Converts a basic code point to lowercase is `flag` is falsy, or to
|
||||
* uppercase if `flag` is truthy. The code point is unchanged if it's
|
||||
* caseless. The behavior is undefined if `codePoint` is not a basic code
|
||||
* point.
|
||||
* @private
|
||||
@ -482,22 +487,6 @@
|
||||
return output.join('');
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts a Unicode string representing a domain name to Punycode. Only the
|
||||
* non-ASCII parts of the domain name will be converted, i.e. it doesn't
|
||||
* matter if you call it with a domain that's already in ASCII.
|
||||
* @memberOf Punycode
|
||||
* @param {String} domain The domain name to convert, as a Unicode string.
|
||||
* @returns {String} The Punycode representation of the given domain name.
|
||||
*/
|
||||
function toASCII(domain) {
|
||||
return mapDomain(domain, function(string) {
|
||||
return string.match(/[^a-zA-Z0-9-]/)
|
||||
? 'xn--' + encode(string)
|
||||
: string;
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts a Punycode string representing a domain name to Unicode. Only the
|
||||
* Punycoded parts of the domain name will be converted, i.e. it doesn't
|
||||
@ -510,8 +499,24 @@
|
||||
*/
|
||||
function toUnicode(domain) {
|
||||
return mapDomain(domain, function(string) {
|
||||
return string.match(/^xn--/)
|
||||
? decode(string.slice(4))
|
||||
return regexPunycode.test(string)
|
||||
? decode(string.slice(4).toLowerCase())
|
||||
: string;
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts a Unicode string representing a domain name to Punycode. Only the
|
||||
* non-ASCII parts of the domain name will be converted, i.e. it doesn't
|
||||
* matter if you call it with a domain that's already in ASCII.
|
||||
* @memberOf Punycode
|
||||
* @param {String} domain The domain name to convert, as a Unicode string.
|
||||
* @returns {String} The Punycode representation of the given domain name.
|
||||
*/
|
||||
function toASCII(domain) {
|
||||
return mapDomain(domain, function(string) {
|
||||
return regexASCII.test(string)
|
||||
? 'xn--' + encode(string)
|
||||
: string;
|
||||
});
|
||||
}
|
||||
@ -520,11 +525,10 @@
|
||||
|
||||
/** Define the public API */
|
||||
Punycode = {
|
||||
'version': '0.0.1337',
|
||||
'version': '0.1.1',
|
||||
/**
|
||||
* An object of methods to convert from JavaScript's internal character
|
||||
* representation to Unicode and back.
|
||||
* @static
|
||||
* @memberOf Punycode
|
||||
* @type Object
|
||||
*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user