• bmeurer's avatar
    [builtins] Sanitize the machinery around Construct calls. · 374b6ea2
    bmeurer authored
    There's no point in collecting feedback for super constructor calls,
    because in all (interesting) cases we can gather (better) feedback from
    other sources (i.e. via inlining or via using a LOAD_IC to get to the
    [[Prototype]] of the target).  So CallConstructStub is now only used
    for new Foo(...args) sites where we want to collect feedback in the
    baseline compiler.  The optimizing compilers, Reflect.construct and
    super constructor calls use the Construct builtin directly, which allows
    us to remove some weird code from the CallConstructStub (and opens the
    possibility for more code sharing with the CallICStub, maybe even going
    for a ConstructICStub).
    
    Also remove the 100% redundant HCallNew instruction, which is just a
    wrapper for the Construct builtin anyway (indirectly via the
    CallConstructStub).
    
    Drive-by-fix: Drop unused has_function_cache bit on Code objects.
    
    R=mstarzinger@chromium.org, yangguo@chromium.org
    BUG=v8:4413, v8:4430
    LOG=n
    
    Review URL: https://codereview.chromium.org/1469793002
    
    Cr-Commit-Position: refs/heads/master@{#32172}
    374b6ea2
code-stubs.cc 29.6 KB