Skip to content

Commit 5f4d8c7

Browse files
committed
Cache str.length
1 parent a1ceb81 commit 5f4d8c7

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

index.js

+8-4
Original file line numberDiff line numberDiff line change
@@ -100,19 +100,23 @@ function parse(str, options) {
100100
var dec = opt.decode || decode;
101101

102102
var index = 0;
103+
var eqIdx = 0;
104+
var endIdx = 0;
105+
var len = str.length;
106+
var max = len - 2;
103107

104-
while (index < str.length) {
105-
var eqIdx = str.indexOf('=', index);
108+
while (index < max) {
109+
eqIdx = str.indexOf('=', index);
106110

107111
// no more cookie pairs
108112
if (eqIdx === -1) {
109113
break;
110114
}
111115

112-
var endIdx = str.indexOf(';', index);
116+
endIdx = str.indexOf(';', index);
113117

114118
if (endIdx === -1) {
115-
endIdx = str.length;
119+
endIdx = len;
116120
} else if (eqIdx > endIdx) {
117121
// backtrack on prior semicolon
118122
index = str.lastIndexOf(';', eqIdx - 1) + 1;

0 commit comments

Comments
 (0)