• littledan's avatar
    Add Array support for @@species and subclassing · 6e962237
    littledan authored
    This patch implements @@species, guarded behind the --harmony-species
    flag, on Arrays. Methods which return an Array will instead return
    the appropriate instance based on the ArraySpeciesCreate algorithm.
    The algorithm is implemented in C++ to get access to realm information
    and to implement some Array methods in C++, but it is also accessed
    from JavaScript through a new runtime function. A couple interactive
    Octane runs show no performance regression with the flag turned off,
    but turning --harmony-species on will surely have a significant
    regression, as Array methods now heavily use ObjectDefineProperty.
    
    BUG=v8:4093
    LOG=Y
    R=adamk,cbruni
    
    Review URL: https://codereview.chromium.org/1560763002
    
    Cr-Commit-Position: refs/heads/master@{#33144}
    6e962237
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...
date.js Loading commit data...
generator.js Loading commit data...
harmony-atomics.js Loading commit data...
harmony-object-observe.js Loading commit data...
harmony-reflect.js Loading commit data...
harmony-regexp.js Loading commit data...
harmony-sharedarraybuffer.js Loading commit data...
harmony-simd.js Loading commit data...
harmony-species.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...