|  | var memoizeCapped = require('./_memoizeCapped'); | 
						
						
							|  | 
 | 
						
						
							|  | /** Used to match property names within property paths. */ | 
						
						
							|  | var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; | 
						
						
							|  | 
 | 
						
						
							|  | /** Used to match backslashes in property paths. */ | 
						
						
							|  | var reEscapeChar = /\\(\\)?/g; | 
						
						
							|  | 
 | 
						
						
							|  | /** | 
						
						
							|  |  * Converts `string` to a property path array. | 
						
						
							|  |  * | 
						
						
							|  |  * @private | 
						
						
							|  |  * @param {string} string The string to convert. | 
						
						
							|  |  * @returns {Array} Returns the property path array. | 
						
						
							|  |  */ | 
						
						
							|  | var stringToPath = memoizeCapped(function(string) { | 
						
						
							|  |   var result = []; | 
						
						
							|  |   if (string.charCodeAt(0) === 46 /* . */) { | 
						
						
							|  |     result.push(''); | 
						
						
							|  |   } | 
						
						
							|  |   string.replace(rePropName, function(match, number, quote, subString) { | 
						
						
							|  |     result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match)); | 
						
						
							|  |   }); | 
						
						
							|  |   return result; | 
						
						
							|  | }); | 
						
						
							|  | 
 | 
						
						
							|  | module.exports = stringToPath;
 |