• adamk's avatar
    Add fast paths for native RegExps in ES2015 subclass-aware code · 360586f2
    adamk authored
    This patch adds fast paths for @@replace and @@split that call into
    the old, side-effect free (and faster) versions of those builtin
    operations when possible (roughly, when the receiver is a RegExp
    and the 'exec' method is untampered). Also add some micro-optimizations
    that further improve performance.
    
    Taken altogether, this takes us from a ~70% regression on the Octane
    RegExp benchmark to a ~9% regression.
    
    The test262.status lines for RegExps has been reorganized to make it
    clearer the status of individual tests. More work will likely be
    required to increase spec compliance before the --harmony-regexp-exec
    flag is shipped; some of that work is happening on the spec side.
    
    BUG=v8:4602
    LOG=y
    
    Review URL: https://codereview.chromium.org/1836123002
    
    Cr-Commit-Position: refs/heads/master@{#35118}
    360586f2
Name
Last commit
Last update
..
OWNERS Loading commit data...
array-iterator.js Loading commit data...
array.js Loading commit data...
arraybuffer.js Loading commit data...
collection-iterator.js Loading commit data...
collection.js Loading commit data...
generator.js Loading commit data...
harmony-atomics.js Loading commit data...
harmony-object-observe.js Loading commit data...
harmony-regexp-exec.js Loading commit data...
harmony-sharedarraybuffer.js Loading commit data...
harmony-simd.js Loading commit data...
harmony-species.js Loading commit data...
harmony-string-padding.js Loading commit data...
harmony-unicode-regexps.js Loading commit data...
i18n.js Loading commit data...
iterator-prototype.js Loading commit data...
json.js Loading commit data...
macros.py Loading commit data...
math.js Loading commit data...
messages.js Loading commit data...
object-observe.js Loading commit data...
prologue.js Loading commit data...
promise-extra.js Loading commit data...
promise.js Loading commit data...
proxy.js Loading commit data...
regexp.js Loading commit data...
runtime.js Loading commit data...
spread.js Loading commit data...
string-iterator.js Loading commit data...
string.js Loading commit data...
symbol.js Loading commit data...
templates.js Loading commit data...
typedarray.js Loading commit data...
uri.js Loading commit data...
v8natives.js Loading commit data...
weak-collection.js Loading commit data...