Bump to v4.14.1.

This commit is contained in:
John-David Dalton
2016-07-27 17:37:08 -07:00
parent edb45df54b
commit 623a72a129
20 changed files with 113 additions and 81 deletions

View File

@@ -1,7 +1,8 @@
define(['./memoize', './toString'], function(memoize, toString) {
/** Used to match property names within property paths. */
var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
var reLeadingDot = /^\./,
rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
/** Used to match backslashes in property paths. */
var reEscapeChar = /\\(\\)?/g;
@@ -14,8 +15,13 @@ define(['./memoize', './toString'], function(memoize, toString) {
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoize(function(string) {
string = toString(string);
var result = [];
toString(string).replace(rePropName, function(match, number, quote, string) {
if (reLeadingDot.test(string)) {
result.push('');
}
string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
});
return result;