diff --git a/lib/punycode.js b/lib/punycode.js index 315f1e4dac..c3791e3efd 100644 --- a/lib/punycode.js +++ b/lib/punycode.js @@ -1,9 +1,4 @@ -/*! - * Punycode.js - * Copyright 2011 Mathias Bynens - * Available under MIT license - */ - +/*! http://mths.be/punycode by @mathias */ ;(function(root) { /** @@ -34,7 +29,7 @@ delimiter = '-', // '\x2D' /** Regular expressions */ - regexNonASCII = /[^ -~]/, // matches unprintable ASCII chars + non-ASCII chars + regexNonASCII = /[^ -~]/, // unprintable ASCII chars + non-ASCII chars regexPunycode = /^xn--/, /** Error messages */ @@ -97,14 +92,17 @@ } /** - * Creates an array containing the decimal code points of each character in - * the string. - * @see `punycode.utf16.encode` - * @see - * @memberOf punycode.utf16 + * Creates an array containing the decimal code points of each Unicode + * character in the string. While JavaScript uses UCS-2 internally, + * this function will convert a pair of surrogate halves (each of which + * UCS-2 exposes as separate characters) into a single code point, + * matching UTF-16. + * @see `punycode.ucs2.encode` + * @see + * @memberOf punycode.ucs2 * @name decode - * @param {String} string The Unicode input string. - * @returns {Array} The new array. + * @param {String} string The Unicode input string (UCS-2). + * @returns {Array} The new array of code points. */ function utf16decode(string) { var output = [], @@ -133,7 +131,7 @@ * @memberOf punycode.utf16 * @name encode * @param {Array} codePoints The array of decimal code points. - * @returns {String} The new string. + * @returns {String} The new Unicode string (UCS-2). */ function utf16encode(array) { return map(array, function(value) { @@ -283,7 +281,7 @@ } i += digit * w; - t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias; + t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); if (digit < t) { break; @@ -406,7 +404,7 @@ if (currentValue == n) { // Represent delta as a generalized variable-length integer for (q = delta, k = base; /* no condition */; k += base) { - t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias; + t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); if (q < t) { break; } @@ -475,10 +473,11 @@ * @memberOf punycode * @type String */ - 'version': '0.2.1', + 'version': '1.0.0', /** * An object of methods to convert from JavaScript's internal character - * representation to Unicode and back. + * representation (UCS-2) to decimal Unicode code points, and back. + * @see * @memberOf punycode * @type Object */