} else {
/* UTF-8 string. */
- p = njs_string_offset(string_prop.start, end, from + 1);
+ p = njs_string_offset(string_prop.start, end, from);
+ p = njs_utf8_next(p, end);
i = from + 1;
"Array.prototype.lastIndexOf.call(o); i"),
njs_str("1") },
+ { njs_str("[''].lastIndexOf.call('00000000000000000000000000000а00')"),
+ njs_str("-1") },
+
+ { njs_str("var o = 'ГВБА';"
+ "Array.prototype.lastIndexOf.call(o, 'Г', 0)"),
+ njs_str("0") },
+
+ { njs_str("var o = 'ГВБА';"
+ "Array.prototype.lastIndexOf.call(o, 'Г', 4)"),
+ njs_str("0") },
+
{ njs_str("[1,2,3,4].includes()"),
njs_str("false") },
"catch (e) {i += '; ' + e} i"),
njs_str("1; TypeError: unexpected iterator arguments") },
+ { njs_str("var m = [];"
+ "[''].reduceRight.call('00000000000000000000000000000а00', (p, v, i, a) => {m.push(v)});"
+ "m.join('')"),
+ njs_str("0а00000000000000000000000000000") },
+
{ njs_str("var a = ['1','2','3','4','5','6']; a.sort()"),
njs_str("1,2,3,4,5,6") },