• 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
function-bind.js 9.62 KB