• jgruber's avatar
    [regexp] Correct lastIndex behavior in RegExp.prototype[@@replace] · c0fe56e6
    jgruber authored
    @@replace has a pretty complex implementation, taking different paths
    for various situations (e.g.: global/nonglobal regexp, functional/string
    replace argument, etc.). Each of these paths must implement similar
    logic for calling into the RegExpBuiltinExec spec operation, and many
    paths get this subtly wrong.
    
    This CL fixes a couple of issues related to the way @@replace handles lastIndex:
    * All paths now respect lastIndex when calling into exec (some used to assume 0).
    * lastIndex is now advanced after a successful match for sticky regexps.
    * lastIndex is now only reset to 0 on failure for sticky regexps.
    
    BUG=v8:5361
    
    Review-Url: https://codereview.chromium.org/2685183003
    Cr-Commit-Position: refs/heads/master@{#43234}
    c0fe56e6
Name
Last commit
Last update
..
local-tests/test/intl402 Loading commit data...
BUILD.gn Loading commit data...
README Loading commit data...
archive.py Loading commit data...
detachArrayBuffer.js Loading commit data...
harness-adapt.js Loading commit data...
list.py Loading commit data...
prune-local-tests.sh Loading commit data...
test262.gyp Loading commit data...
test262.isolate Loading commit data...
test262.status Loading commit data...
testcfg.py Loading commit data...
upstream-local-tests.sh Loading commit data...