• Caitlin Potter's avatar
    [es6] don't use do-expressions to desugar ES6 classes · c6540ab1
    Caitlin Potter authored
    Removes the do-expression wrapping, modifies BytecodeGenerator change
    to enter a class literal's block scope if needed.
    
    This does not solve the actual bug in v8:6322, but helps mitigate it in
    simple cases. The bug is caused by BytecodeGenerator not allocating a
    large enough array of context registers to hold its entire stack,
    allowing non-context registers to be overwritten during PushContext and
    PopContext bytecodes.
    
    Nevertheless, I like the idea of not depending on do-expressions when
    possible, so I think it's worth doing anyways.
    
    BUG=v8:6322
    R=rmcilroy@chromium.org, marja@chromium.org, littledan@chromium.org
    
    Change-Id: I82b7569db2a0eead1694bd04765fc4456c2f1a0a
    Reviewed-on: https://chromium-review.googlesource.com/491074
    Commit-Queue: Caitlin Potter <caitp@igalia.com>
    Reviewed-by: 's avatarMarja Hölttä <marja@chromium.org>
    Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
    Reviewed-by: 's avatarDaniel Ehrenberg <littledan@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#45110}
    c6540ab1
bytecode-generator.h 9.69 KB