Bump to v4.4.2.

This commit is contained in:
John-David Dalton
2016-03-29 20:44:00 -07:00
parent 7059f72e9c
commit 4f4fe7ec6f
35 changed files with 406 additions and 216 deletions

View File

@@ -1,4 +1,4 @@
# lodash.split v4.4.1
# lodash.split v4.4.2
The [lodash](https://lodash.com/) method `_.split` exported as a [Node.js](https://nodejs.org/) module.
@@ -15,4 +15,4 @@ In Node.js:
var split = require('lodash.split');
```
See the [documentation](https://lodash.com/docs#split) or [package source](https://github.com/lodash/lodash/blob/4.4.1-npm-packages/lodash.split) for more details.
See the [documentation](https://lodash.com/docs#split) or [package source](https://github.com/lodash/lodash/blob/4.4.2-npm-packages/lodash.split) for more details.

View File

@@ -47,10 +47,10 @@ var reOptMod = rsModifier + '?',
rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';
/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */
var reComplexSymbol = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');
var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');
/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */
var reHasComplexSymbol = RegExp('[' + rsZWJ + rsAstralRange + rsComboMarksRange + rsComboSymbolsRange + rsVarRange + ']');
var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboMarksRange + rsComboSymbolsRange + rsVarRange + ']');
/** Detect free variable `global` from Node.js. */
var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
@@ -84,16 +84,14 @@ var nodeUtil = (function() {
var nodeIsRegExp = nodeUtil && nodeUtil.isRegExp;
/**
* The base implementation of `_.property` without support for deep paths.
* Converts an ASCII `string` to an array.
*
* @private
* @param {string} key The key of the property to get.
* @returns {Function} Returns the new accessor function.
* @param {string} string The string to convert.
* @returns {Array} Returns the converted array.
*/
function baseProperty(key) {
return function(object) {
return object == null ? undefined : object[key];
};
function asciiToArray(string) {
return string.split('');
}
/**
@@ -109,6 +107,17 @@ function baseUnary(func) {
};
}
/**
* Checks if `string` contains Unicode symbols.
*
* @private
* @param {string} string The string to inspect.
* @returns {boolean} Returns `true` if a symbol is found, else `false`.
*/
function hasUnicode(string) {
return reHasUnicode.test(string);
}
/**
* Converts `string` to an array.
*
@@ -117,16 +126,28 @@ function baseUnary(func) {
* @returns {Array} Returns the converted array.
*/
function stringToArray(string) {
return string.match(reComplexSymbol);
return hasUnicode(string)
? unicodeToArray(string)
: asciiToArray(string);
}
/**
* Converts a Unicode `string` to an array.
*
* @private
* @param {string} string The string to convert.
* @returns {Array} Returns the converted array.
*/
function unicodeToArray(string) {
return string.match(reUnicode) || [];
}
/** Used for built-in method references. */
var objectProto = Object.prototype,
stringProto = String.prototype;
var objectProto = Object.prototype;
/**
* Used to resolve the
* [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
* [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
* of values.
*/
var objectToString = objectProto.toString;
@@ -134,9 +155,6 @@ var objectToString = objectProto.toString;
/** Built-in value references. */
var Symbol = root.Symbol;
/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeSplit = stringProto.split;
/** Used to convert symbols to primitives and strings. */
var symbolProto = Symbol ? Symbol.prototype : undefined,
symbolToString = symbolProto ? symbolProto.toString : undefined;
@@ -217,19 +235,6 @@ function castSlice(array, start, end) {
return (!start && end >= length) ? array : baseSlice(array, start, end);
}
/**
* Gets the "length" property value of `object`.
*
* **Note:** This function is used to avoid a
* [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792) that affects
* Safari on at least iOS 8.1-8.3 ARM64.
*
* @private
* @param {Object} object The object to query.
* @returns {*} Returns the "length" value.
*/
var getLength = baseProperty('length');
/**
* Checks if `value` is a valid array-like index.
*
@@ -271,7 +276,7 @@ function isIterateeCall(value, index, object) {
/**
* Performs a
* [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
* [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
* comparison between two values to determine if they are equivalent.
*
* @static
@@ -331,7 +336,7 @@ function eq(value, other) {
* // => false
*/
function isArrayLike(value) {
return value != null && isLength(getLength(value)) && !isFunction(value);
return value != null && isLength(value.length) && !isFunction(value);
}
/**
@@ -353,8 +358,7 @@ function isArrayLike(value) {
*/
function isFunction(value) {
// The use of `Object#toString` avoids issues with the `typeof` operator
// in Safari 8 which returns 'object' for typed array and weak map constructors,
// and PhantomJS 1.9 which returns 'function' for `NodeList` instances.
// in Safari 8-9 which returns 'object' for typed array and other constructors.
var tag = isObject(value) ? objectToString.call(value) : '';
return tag == funcTag || tag == genTag;
}
@@ -362,16 +366,15 @@ function isFunction(value) {
/**
* Checks if `value` is a valid array-like length.
*
* **Note:** This function is loosely based on
* [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).
* **Note:** This method is loosely based on
* [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
*
* @static
* @memberOf _
* @since 4.0.0
* @category Lang
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is a valid length,
* else `false`.
* @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
* @example
*
* _.isLength(3);
@@ -393,7 +396,7 @@ function isLength(value) {
/**
* Checks if `value` is the
* [language type](http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types)
* [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
* of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
*
* @static
@@ -548,11 +551,11 @@ function split(string, separator, limit) {
(separator != null && !isRegExp(separator))
)) {
separator = baseToString(separator);
if (separator == '' && reHasComplexSymbol.test(string)) {
if (!separator && hasUnicode(string)) {
return castSlice(stringToArray(string), 0, limit);
}
}
return nativeSplit.call(string, separator, limit);
return string.split(separator, limit);
}
module.exports = split;

View File

@@ -1,6 +1,6 @@
{
"name": "lodash.split",
"version": "4.4.1",
"version": "4.4.2",
"description": "The lodash method `_.split` exported as a module.",
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",