From 8e631dfcd496bc355ee7ceeb959421b0788b9bbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Lipi=C5=84ski?= Date: Mon, 14 Aug 2017 10:27:49 +0200 Subject: [PATCH] Faster testing against first char in `stringToPath` (to close #3308). --- .internal/stringToPath.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.internal/stringToPath.js b/.internal/stringToPath.js index 6de05e8a2..bb40f6f54 100644 --- a/.internal/stringToPath.js +++ b/.internal/stringToPath.js @@ -1,7 +1,7 @@ import memoizeCapped from './memoizeCapped.js' +const charCodeOfDot = '.'.charCodeAt(0) const reEscapeChar = /\\(\\)?/g -const reLeadingDot = /^\./ const rePropName = RegExp( // Match anything that isn't a dot or bracket. '[^.[\\]]+' + '|' + @@ -25,7 +25,7 @@ const rePropName = RegExp( */ const stringToPath = memoizeCapped((string) => { const result = [] - if (reLeadingDot.test(string)) { + if (string.charCodeAt(0) === charCodeOfDot) { result.push('') } string.replace(rePropName, (match, expression, quote, subString) => {