} else {
to -= str.length - 1;
- to = njs_min(to, length);
+
+ if (from > to) {
+ goto done;
+ }
}
for (i = from; i != to; i += increment) {
}
}
+done:
+
JS_FreeValue(ctx, buffer);
return JS_NewInt32(ctx, -1);
}
{ buf: Buffer.from('abcdef'), value: 'abc', offset: 1, expected: -1 },
{ buf: Buffer.from('abcdef'), value: 'def', offset: 1, expected: 3 },
{ buf: Buffer.from('abcdef'), value: 'def', offset: -3, expected: 3 },
+ { buf: Buffer.from('abcdef'), value: 'efgh', offset: 4, expected: -1 },
{ buf: Buffer.from('abcdef'), value: '626364', encoding: 'hex', expected: 1 },
{ buf: Buffer.from('abcdef'), value: '626364', encoding: 'utf-128',
exception: 'TypeError: "utf-128" encoding is not supported' },