1. 22 Feb, 2022 1 commit
  2. 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
  3. 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
  4. 18 Aug, 2021 1 commit
    • Benedikt Meurer's avatar
      [inspector] Add nonIndexedPropertiesOnly to Runtime.getProperties. · ffa4cda6
      Benedikt Meurer authored
      This introduces a new, optional `nonIndexedPropertiesOnly` flag to the
      `Runtime.getProperties` inspector request, which tells the inspector to
      only report properties whose name is not an (typed) array index. This is
      to support retrieving all properties except for the indexed ones when
      the DevTools front-end decides to use the array bucketing mechanism.
      Previously the DevTools front-end had some quite complicated logic in
      place to simulate this via injected JavaScript, but that logic didn't
      pick up internal properties and was also interfering with the inherited
      accessor mechanism. With this new flag, it's straight-forward to
      implement the correct behavior in the DevTools front-end.
      
      The corresponding devtools-frontend CL is https://crrev.com/c/3099011.
      
      Before: https://imgur.com/hMX6vaV.png
      After: https://imgur.com/MGgiuJQ.png
      Bug: chromium:1199701
      Change-Id: Iacbe9756ed8a2e6982efaebe1e7c606d37c05379
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3099686
      Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarPhilip Pfaffe <pfaffe@chromium.org>
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#76360}
      ffa4cda6
  5. 13 Aug, 2021 1 commit
    • Benedikt Meurer's avatar
      [inspector] Don't pretend that native accessors are own properties. · 52720f63
      Benedikt Meurer authored
      Previously the V8 inspector would report native accessors, whose getter
      evaluates to a value without causing a side effect, as own data
      properties. But then the DevTools front-end will not be able to tell
      whether that accessor was actually an own property or just an inherited
      accessor.
      
      The reason for reporting them as own properties in the first place was
      to ensure that these properties show up in the object's preview. But
      that we can handle differently by just marking these properties as
      synthetic internally and including them in the preview.
      
      Bug: chromium:1076820
      Change-Id: I223299af7954e7b1a4a16bb5180d4ceff50f170f
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3094005
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Commit-Queue: Kim-Anh Tran <kimanh@chromium.org>
      Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarKim-Anh Tran <kimanh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#76276}
      52720f63
  6. 02 Jun, 2021 1 commit
  7. 04 Dec, 2019 1 commit
    • Joyee Cheung's avatar
      [class] implement inspector support for private instance methods · 963ff849
      Joyee Cheung authored
      This patch implements inspector support for private instance methods:
      
      - Previously to implement brand checking for instances with private
        instance methods we store the brand both as the value with the brand
        itself as the key in the stances. Now we make the value the context
        associated with the class instead.
      - To retrieve the private instance methods and accessors from the
        instances at runtime, we look into the contexts stored with the
        brands, and analyze the scope info to get the names as well as
        context slot indices of them.
      - This patch extends the `PrivatePropertyDescriptor` in the inspector
        protocol to include optional `get` and `set` fields, and make the
        `value` field optional (similar to `PropertyDescriptor`s).
        Private fields or private instance methods are returned in the
        `value` field while private accessors are returned in the `get`
        and/or `set` field. Property previews for the instaces containing
        private instance methods and accessors are also updated similarly,
        although no additional protocol change is necessary since the
        `PropertyPreview` type can already be used to display accessors.
      
      Design doc: https://docs.google.com/document/d/1N91LObhQexnB0eE7EvGe57HsvNMFX16CaWu-XCTnnmY/edit
      
      Bug: v8:9839, v8:8330
      Change-Id: If37090bd23833a18f75deb1249ca5c4405ca2bf2
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1934407
      Commit-Queue: Joyee Cheung <joyee@igalia.com>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#65337}
      963ff849
  8. 08 Mar, 2019 1 commit
  9. 27 Dec, 2018 1 commit
  10. 15 Nov, 2018 1 commit
  11. 31 Oct, 2018 2 commits
    • Alexey Kozyatinskiy's avatar
      reland: inspector: move injected script source to native · ebd070ec
      Alexey Kozyatinskiy authored
      - introduced ValueMirror interface, this interface contains methods to generate
        different protocol entities,
      - introduced DebugPropertyIterator, this iterator iterates through object properties
        in the following order: exotic indices, enumerable strings, all other properties,
      - removed all injected script infra, e.g. closure compiler,
      
      R=dgozman@chromium.org
      TBR=yangguo@chromium.org
      
      Bug: chromium:595206
      Change-Id: I030fdb3a80074ca6edd4749f86b39b590776ae6f
      Reviewed-on: https://chromium-review.googlesource.com/c/1310056Reviewed-by: 's avatarAleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#57181}
      ebd070ec
    • Aleksey Kozyatinskiy's avatar
      Revert "inspector: move injected script source to native" · fc5c8d7f
      Aleksey Kozyatinskiy authored
      This reverts commit 7e079c66.
      
      Reason for revert: native implementation should be ready for navigation.
      
      Original change's description:
      > inspector: move injected script source to native
      > 
      > - introduced ValueMirror interface, this interface contains methods to generate
      >   different protocol entities,
      > - introduced DebugPropertyIterator, this iterator iterates through object properties
      >   in the following order: exotic indices, enumerable strings, all other properties,
      > - removed all injected script infra, e.g. closure compiler,
      > 
      > R=​dgozman@chromium.org
      > TBR=yangguo@chromium.org
      > 
      > Bug: chromium:595206
      > Change-Id: Idcfc04489ee52e015ad1d1d191c3474cc65e63f2
      > Reviewed-on: https://chromium-review.googlesource.com/c/1308353
      > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      > Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#57150}
      
      TBR=dgozman@chromium.org,yangguo@chromium.org,kozyatinskiy@chromium.org
      
      Change-Id: I8c5c61f4cfe5a66cd33eadd02ab4acec539cc3bb
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: chromium:595206
      Reviewed-on: https://chromium-review.googlesource.com/c/1310055Reviewed-by: 's avatarAleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#57176}
      fc5c8d7f
  12. 30 Oct, 2018 3 commits
    • Alexey Kozyatinskiy's avatar
      inspector: move injected script source to native · 7e079c66
      Alexey Kozyatinskiy authored
      - introduced ValueMirror interface, this interface contains methods to generate
        different protocol entities,
      - introduced DebugPropertyIterator, this iterator iterates through object properties
        in the following order: exotic indices, enumerable strings, all other properties,
      - removed all injected script infra, e.g. closure compiler,
      
      R=dgozman@chromium.org
      TBR=yangguo@chromium.org
      
      Bug: chromium:595206
      Change-Id: Idcfc04489ee52e015ad1d1d191c3474cc65e63f2
      Reviewed-on: https://chromium-review.googlesource.com/c/1308353Reviewed-by: 's avatarAleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#57150}
      7e079c66
    • Clemens Hammacher's avatar
      Revert "inspector: move injected script source to native" · 192bee6b
      Clemens Hammacher authored
      This reverts commit 34686abe.
      
      Reason for revert: Compile errors on several bots, e.g. https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20debug%20builder/33299
      
      Original change's description:
      > inspector: move injected script source to native
      > 
      > - introduced ValueMirror interface, this interface contains methods to generate
      >   different protocol entities,
      > - introduced DebugPropertyIterator, this iterator iterates through object properties
      >   in the following order: exotic indices, enumerable strings, all other properties,
      > - removed all injected script infra, e.g. closure compiler,
      > 
      > R=​dgozman@chromium.org
      > TBR=yangguo@chromium.org
      > 
      > Bug: chromium:595206
      > Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel
      > Change-Id: I077c1879622aa0d9900d719b80d2ef5ba4221a22
      > Reviewed-on: https://chromium-review.googlesource.com/c/1295550
      > Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      > Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#57142}
      
      TBR=dgozman@chromium.org,yangguo@chromium.org,kozyatinskiy@chromium.org
      
      Change-Id: I6e4ccaf1d6b151fbc0ffe4f26daa584433321c77
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: chromium:595206
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel
      Reviewed-on: https://chromium-review.googlesource.com/c/1307432Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#57144}
      192bee6b
    • Alexey Kozyatinskiy's avatar
      inspector: move injected script source to native · 34686abe
      Alexey Kozyatinskiy authored
      - introduced ValueMirror interface, this interface contains methods to generate
        different protocol entities,
      - introduced DebugPropertyIterator, this iterator iterates through object properties
        in the following order: exotic indices, enumerable strings, all other properties,
      - removed all injected script infra, e.g. closure compiler,
      
      R=dgozman@chromium.org
      TBR=yangguo@chromium.org
      
      Bug: chromium:595206
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel
      Change-Id: I077c1879622aa0d9900d719b80d2ef5ba4221a22
      Reviewed-on: https://chromium-review.googlesource.com/c/1295550
      Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Reviewed-by: 's avatarDmitry Gozman <dgozman@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#57142}
      34686abe