• Dan Elphick's avatar
    Reland "[include] Split out v8.h" · ec06bb6c
    Dan Elphick authored
    This is a reland of d1b27019
    
    Fixes include:
    Adding missing file to bazel build
    Forward-declaring classing before friend-classing them to fix win/gcc
    Add missing v8-isolate.h include for vtune builds
    
    Original change's description:
    > [include] Split out v8.h
    >
    > This moves every single class/function out of include/v8.h into a
    > separate header in include/, which v8.h then includes so that
    > externally nothing appears to have changed.
    >
    > Every include of v8.h from inside v8 has been changed to a more
    > fine-grained include.
    >
    > Previously inline functions defined at the bottom of v8.h would call
    > private non-inline functions in the V8 class. Since that class is now
    > in v8-initialization.h and is rarely included (as that would create
    > dependency cycles), this is not possible and so those methods have been
    > moved out of the V8 class into the namespace v8::api_internal.
    >
    > None of the previous files in include/ now #include v8.h, which means
    > if embedders were relying on this transitive dependency then it will
    > give compile failures.
    >
    > v8-inspector.h does depend on v8-scripts.h for the time being to ensure
    > that Chrome continue to compile but that change will be reverted once
    > those transitive #includes in chrome are changed to include it directly.
    >
    > Full design:
    > https://docs.google.com/document/d/1rTD--I8hCAr-Rho1WTumZzFKaDpEp0IJ8ejZtk4nJdA/edit?usp=sharing
    >
    > Bug: v8:11965
    > Change-Id: I53b84b29581632710edc80eb11f819c2097a2877
    > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3097448
    > Reviewed-by: Yang Guo <yangguo@chromium.org>
    > Reviewed-by: Camillo Bruni <cbruni@chromium.org>
    > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
    > Reviewed-by: Leszek Swirski <leszeks@chromium.org>
    > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
    > Commit-Queue: Dan Elphick <delphick@chromium.org>
    > Cr-Commit-Position: refs/heads/main@{#76424}
    
    Cq-Include-Trybots: luci.v8.try:v8_linux_vtunejit
    Bug: v8:11965
    Change-Id: I99f5d3a73bf8fe25b650adfaf9567dc4e44a09e6
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3113629Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
    Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
    Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
    Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
    Reviewed-by: 's avatarSimon Zünd <szuend@chromium.org>
    Commit-Queue: Dan Elphick <delphick@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#76460}
    ec06bb6c