Skip to content

Commit d13d9bb

Browse files
committed
Simplify code
1 parent b487a18 commit d13d9bb

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

index.js

+9-8
Original file line numberDiff line numberDiff line change
@@ -114,18 +114,19 @@ function parse(str, options) {
114114
if (endIdx === -1) {
115115
endIdx = str.length;
116116
} else if (eqIdx > endIdx) {
117+
// backtrack on prior semicolon
117118
index = str.lastIndexOf(';', eqIdx - 1) + 1;
118119
continue;
119120
}
120121

121-
var keyStartIdx = startIndex(str, index, eqIdx);
122-
var keyEndIdx = endIndex(str, eqIdx, keyStartIdx);
122+
var keyStartIdx = startIndex(str, index);
123+
var keyEndIdx = endIndex(str, eqIdx);
123124
var key = str.slice(keyStartIdx, keyEndIdx);
124125

125126
// only assign once
126127
if (undefined === obj[key]) {
127-
var valStartIdx = startIndex(str, eqIdx + 1, endIdx);
128-
var valEndIdx = endIndex(str, endIdx, valStartIdx);
128+
var valStartIdx = startIndex(str, eqIdx + 1);
129+
var valEndIdx = endIndex(str, endIdx);
129130

130131
if (str.charCodeAt(valStartIdx) === 0x22 /* " */ && str.charCodeAt(valEndIdx - 1) === 0x22 /* " */) {
131132
valStartIdx++;
@@ -142,17 +143,17 @@ function parse(str, options) {
142143
return obj;
143144
}
144145

145-
function startIndex(str, index, max) {
146+
function startIndex(str, index) {
146147
do {
147148
if (str.charCodeAt(index) !== 0x20 /* */) break;
148-
} while (++index < max);
149+
} while (++index);
149150
return index;
150151
}
151152

152-
function endIndex(str, index, min) {
153+
function endIndex(str, index) {
153154
do {
154155
if (str.charCodeAt(index - 1) !== 0x20 /* */) break;
155-
} while (--index >= min);
156+
} while (--index);
156157
return index;
157158
}
158159

0 commit comments

Comments
 (0)