• jgruber's avatar
    [regexp] Fix invalid lastIndex handling in RegExp.p[@@replace] · d74a9fd5
    jgruber authored
    The RegExp replace implementation is a bit of a mess. Here, we first
    try to handle parts of RegExp.p.exec, and then call directly into the
    raw irregexp code (skipping RegExp.p.exec).
    
    We got parts of this wrong: when lastIndex > string.length and the
    regexp instance is sticky, two things should happen. 1. The match
    should fail, and 2. lastIndex should be reset to 0. On the fast path,
    we did the latter but not the former, instead running exec with a
    lastIndex of 0.
    
    This CL omits the irregexp call in this case, and defaults to a failed
    match instead.
    
    Bug: chromium:875493
    Change-Id: I8c959610d267575e37686076a3fd5dfde322f0ca
    Reviewed-on: https://chromium-review.googlesource.com/1180889
    Commit-Queue: Jakob Gruber <jgruber@chromium.org>
    Reviewed-by: 's avatarMathias Bynens <mathias@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#55207}
    d74a9fd5
Name
Last commit
Last update
..
benchmarks Loading commit data...
cctest Loading commit data...
common Loading commit data...
debugger Loading commit data...
fuzzer Loading commit data...
inspector Loading commit data...
intl Loading commit data...
js-perf-test Loading commit data...
memory Loading commit data...
message Loading commit data...
mjsunit Loading commit data...
mkgrokdump Loading commit data...
mozilla Loading commit data...
preparser Loading commit data...
test262 Loading commit data...
torque Loading commit data...
unittests Loading commit data...
wasm-spec-tests Loading commit data...
webkit Loading commit data...
BUILD.gn Loading commit data...