• 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
..
runtime-array.cc Loading commit data...
runtime-atomics.cc Loading commit data...
runtime-classes.cc Loading commit data...
runtime-collections.cc Loading commit data...
runtime-compiler.cc Loading commit data...
runtime-date.cc Loading commit data...
runtime-debug.cc Loading commit data...
runtime-error.cc Loading commit data...
runtime-forin.cc Loading commit data...
runtime-function.cc Loading commit data...
runtime-futex.cc Loading commit data...
runtime-generator.cc Loading commit data...
runtime-i18n.cc Loading commit data...
runtime-internal.cc Loading commit data...
runtime-interpreter.cc Loading commit data...
runtime-literals.cc Loading commit data...
runtime-liveedit.cc Loading commit data...
runtime-maths.cc Loading commit data...
runtime-module.cc Loading commit data...
runtime-numbers.cc Loading commit data...
runtime-object.cc Loading commit data...
runtime-operators.cc Loading commit data...
runtime-promise.cc Loading commit data...
runtime-proxy.cc Loading commit data...
runtime-regexp.cc Loading commit data...
runtime-scopes.cc Loading commit data...
runtime-strings.cc Loading commit data...
runtime-symbol.cc Loading commit data...
runtime-test.cc Loading commit data...
runtime-typedarray.cc Loading commit data...
runtime-utils.h Loading commit data...
runtime-wasm.cc Loading commit data...
runtime.cc Loading commit data...
runtime.h Loading commit data...