jscript: Correctly handle -1 index in regexp match result.
This commit is contained in:
parent
bd715dc8e4
commit
9ac7949810
@ -3349,8 +3349,13 @@ static HRESULT do_regexp_match_next(script_ctx_t *ctx, RegExpInstance *regexp, c
|
|||||||
*parens_cnt = regexp->jsregexp->parenCount;
|
*parens_cnt = regexp->jsregexp->parenCount;
|
||||||
|
|
||||||
for(i=0; i < regexp->jsregexp->parenCount; i++) {
|
for(i=0; i < regexp->jsregexp->parenCount; i++) {
|
||||||
(*parens)[i].str = *cp + result->parens[i].index;
|
if(result->parens[i].index == -1) {
|
||||||
(*parens)[i].len = result->parens[i].length;
|
(*parens)[i].str = NULL;
|
||||||
|
(*parens)[i].len = 0;
|
||||||
|
}else {
|
||||||
|
(*parens)[i].str = *cp + result->parens[i].index;
|
||||||
|
(*parens)[i].len = result->parens[i].length;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -71,6 +71,11 @@ m = re.exec();
|
|||||||
ok(m === null, "m is not null");
|
ok(m === null, "m is not null");
|
||||||
ok(re.lastIndex === 0, "re.lastIndex = " + re.lastIndex);
|
ok(re.lastIndex === 0, "re.lastIndex = " + re.lastIndex);
|
||||||
|
|
||||||
|
m = /(a|b)+|(c)/.exec("aa");
|
||||||
|
ok(m[0] === "aa", "m[0] = " + m[0]);
|
||||||
|
ok(m[1] === "a", "m[1] = " + m[1]);
|
||||||
|
ok(m[2] === "", "m[2] = " + m[2]);
|
||||||
|
|
||||||
b = re.test(" a ");
|
b = re.test(" a ");
|
||||||
ok(b === true, "re.test(' a ') returned " + b);
|
ok(b === true, "re.test(' a ') returned " + b);
|
||||||
ok(re.lastIndex === 3, "re.lastIndex = " + re.lastIndex);
|
ok(re.lastIndex === 3, "re.lastIndex = " + re.lastIndex);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user