• Philip Pfaffe's avatar
    Reland "[ic] Fix handling of API properties with side effects" · b4942eb3
    Philip Pfaffe authored
    This is a reland of 0ce36e7d
    
    The reland includes two fixes:
    - Move the EvaluateGlobalForTesting into libv8 to avoid linkage issues
      and to avoid having to export ThreadLocalTop symbols.
    - Give the ExecutionMode enum a uint8_t backing type to avoid endianess
      issues.
    
    Original change's description:
    > [ic] Fix handling of API properties with side effects
    >
    > DebugEvaluate can evaluate expressions in side-effect-free mode, where
    > any operation that would cause observable side effects throws an
    > exception. Currently, when accessors are backed by callbacks, it's
    > possible that ICs call those accessors directly, bypassing the
    > side-effect checks. This CL introduces a bailouts to runtime in those
    > cases.
    >
    > Fixed: chromium:1201781
    > Also-By: ishell@chromium.org, pfaffe@chromium.org
    > Change-Id: Ie53bfb2bff7b3420f2b27091e8df6723382cf53c
    > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2857634
    > Commit-Queue: Philip Pfaffe <pfaffe@chromium.org>
    > Reviewed-by: Igor Sheludko <ishell@chromium.org>
    > Reviewed-by: Yang Guo <yangguo@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#74507}
    
    Fixes: v8:11761
    Change-Id: I58cde8bd11ba0fc9d83adc19fa87733628ab6c13
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2891829Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
    Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
    Commit-Queue: Philip Pfaffe <pfaffe@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#74602}
    b4942eb3
api-callbacks.h 4.09 KB