1. 24 Aug, 2021 1 commit
    • 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
  2. 23 Aug, 2021 2 commits
    • Dan Elphick's avatar
      Revert "[include] Split out v8.h" · 44fe02ce
      Dan Elphick authored
      This reverts commit d1b27019.
      
      Reason for revert: Broke vtune build, tsan build and possibly others
      
      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}
      
      Bug: v8:11965
      Change-Id: Id57313ae992e720c8b19abc975cd69729e1344aa
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3113627
      Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Owners-Override: Leszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#76428}
      44fe02ce
    • Dan Elphick's avatar
      [include] Split out v8.h · d1b27019
      Dan Elphick authored
      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/+/3097448Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#76424}
      d1b27019
  3. 19 Aug, 2021 1 commit
  4. 23 Jul, 2021 1 commit
    • Vicky Kontoura's avatar
      [web snapshot] Support classes · 8439314d
      Vicky Kontoura authored
      This CL adds support for classes with methods.
      
      More specifically:
      - A new ValueSerializer is added and classes are serialized separetely
      from functions, although the common parts are handled in the same way
      and abstracted away.
      - The function prototype is serialized as an object and any missing
      information is set up again during deserialization.
      - FunctionFlagsToFunctionKinds() is updated to allow for more function
      kinds.
      - Context serialization is updated to support serializing BlockContexts
      and creating ScopeInfos of type CLASS_SCOPE.
      - Map serialization is updated to support properties with custom
      attributes.
      
      Bug: v8:11525, v8:11706
      Change-Id: I16ca7cbc17b1811721081cda05124ce36073f9be
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3006416
      Commit-Queue: Vicky Kontoura <vkont@google.com>
      Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Reviewed-by: 's avatarMarja Hölttä <marja@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#75893}
      8439314d
  5. 18 Jun, 2021 1 commit
  6. 16 Jun, 2021 1 commit
  7. 12 Jun, 2021 1 commit
  8. 11 Jun, 2021 1 commit
  9. 10 Jun, 2021 1 commit
  10. 09 Jun, 2021 1 commit
  11. 08 Jun, 2021 1 commit
  12. 07 Jun, 2021 2 commits
  13. 03 Jun, 2021 1 commit
  14. 02 Jun, 2021 2 commits
  15. 01 Jun, 2021 1 commit
  16. 26 May, 2021 1 commit
    • Vicky Kontoura's avatar
      [web snapshot] Support mjsunit tests · c32ba7e0
      Vicky Kontoura authored
      This CL adds support for testing web snapshots through mjsunit tests.
      To allow for taking and using web snapshots from JavaScript, two
      methods, Realm.takeWebSnapshot() and Realm.useWebSnapshot(), are
      introduced in d8.
      
      Both of these methods accept a Realm as a parameter, allowing for
      mjsunit tests to create and use the snapshot in different realms.
      
      To return the snapshot data, Realm.takeWebSnapshot() creates and
      returns a snapshot object with the snapshot data stored as an embedder
      field.
      
      Bug: v8:11525, v8:11706
      Change-Id: I6e514e10eabf5bdb96d81e2697d4ddc49d92de73
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2905610Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Reviewed-by: 's avatarMarja Hölttä <marja@chromium.org>
      Commit-Queue: Vicky Kontoura <vkont@google.com>
      Cr-Commit-Position: refs/heads/master@{#74783}
      c32ba7e0
  17. 19 May, 2021 1 commit
  18. 14 May, 2021 1 commit
    • Vicky Kontoura's avatar
      [web snapshot] Support RegExp · add69092
      Vicky Kontoura authored
      This CL adds support for regular expressions. To serialize a regular
      expression, the pattern and flags are extracted and serialized as
      strings.
      
      Also, JSRegExp::StringFromFlags() is introduced to allow for
      transforming back from JSRegExp::Flags to the corresponding flag string.
      To verify that this implementation is on par with
      RegExp.prototype.flags, unittests are introduced under
      regexp/regexp-unittest.cc and RegExpBuiltinsAssembler::FlagsGetter()
      is updated to include a slow path that calls JSRegExp::StringFromFlags()
      through a runtime function.
      
      Bug: v8:11525, v8:11706
      Change-Id: I9cad4c464129ba1cbf64672130d8410730d7d679
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2878751
      Commit-Queue: Vicky Kontoura <vkont@google.com>
      Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Reviewed-by: 's avatarMarja Hölttä <marja@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#74566}
      add69092
  19. 30 Apr, 2021 1 commit
  20. 29 Apr, 2021 1 commit
  21. 28 Apr, 2021 2 commits
  22. 16 Apr, 2021 1 commit
  23. 14 Apr, 2021 2 commits
  24. 12 Apr, 2021 1 commit
  25. 29 Mar, 2021 1 commit
  26. 22 Mar, 2021 1 commit
  27. 15 Mar, 2021 1 commit
  28. 12 Mar, 2021 2 commits