• mstarzinger's avatar
    [compiler] Sidestep optimizing of generator resumers. · 85517653
    mstarzinger authored
    This ensures our optimizing compilers as well as the interpreter are
    never tasked with compiling the generator-resuming builtin methods. The
    corresponding intrinsics for those methods are not supported and it is
    not possible to provide a C++ reference implementation for them. We do
    this by assigning builtin function ids to them that we can recognize
    during the compiler dispatch.
    
    Note that this also affects the interpreter, because methods having a
    builtin function id assigned are not interpreted ({function_data} field
    is overlapping). If this ever changes we can still do an early check in
    the compiler dispatch (similar to the optimizing compilers) easily.
    
    This applies to the following methods:
    - Generator.prototype.next (calls Runtime_GeneratorNext).
    - Generator.prototype.return (calls Runtime_GeneratorReturn).
    - Generator.prototype.throw (calls Runtime_GeneratorThrow).
    
    R=neis@chromium.org
    BUG=v8:4681
    LOG=n
    
    Review URL: https://codereview.chromium.org/1779123003
    
    Cr-Commit-Position: refs/heads/master@{#34675}
    85517653
compiler.cc 72.3 KB