• Benedikt Meurer's avatar
    [v8-extras] Harden `resolvePromise()` and `rejectPromise()`. · aa00ee22
    Benedikt Meurer authored
    The V8 Extras API provides `resolvePromise()` and `rejectPromise()`
    functions that bypass the safety net of the resolve/reject closures
    that you get from using the Promise constructor. So it's the
    responsibility of the user to make sure that the promises are still
    pending. This adds release mode checking and hard aborts to make
    sure we catch misuse of these APIs early.
    
    This also turns the DCHECK's in the C++ implementation into actual
    CHECK's to make sure we crash hard if the invariants are violated.
    
    Bug: chromium:931949, chromium:931640
    Cq-Include-Trybots: luci.chromium.try:linux-blink-rel
    Change-Id: I98a6f424d2a3cfbb608fed21036caff6e2510ec3
    Reviewed-on: https://chromium-review.googlesource.com/c/1472291Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
    Reviewed-by: 's avatarSathya Gunasekaran <gsathya@chromium.org>
    Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#59610}
    aa00ee22
builtins-promise-gen.cc 97 KB