• bmeurer's avatar
    [runtime] Introduce dedicated JSBoundFunction to represent bound functions. · 97def807
    bmeurer authored
    According to the ES2015 specification, bound functions are exotic
    objects, and thus don't need to be implemented as JSFunctions. So
    we introduce a new JSBoundFunction type to represent bound functions
    and make them optimizable. This already improves the performance of
    calling or constructing bound functions by 10-100x depending on the
    use case because we avoid the crazy dance between JavaScript and C++
    that was implemented in v8natives.js previously.
    
    There's still room for improvement in the performance of actually
    creating bound functions, which is also relevant in practice, but
    we already have a plan how to accomplish that later.
    
    The mips/mips64 ports were contributed by akos.palfi@imgtec.com.
    
    CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel
    BUG=chromium:535408, chromium:571299, v8:4629
    LOG=n
    
    Committed: https://crrev.com/ca8623eaa468cba65a5adafcdfb4615966f43ce2
    Cr-Commit-Position: refs/heads/master@{#33042}
    
    Review URL: https://codereview.chromium.org/1542963002
    
    Cr-Commit-Position: refs/heads/master@{#33044}
    97def807
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...
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...