1. 11 Nov, 2020 1 commit
  2. 10 Nov, 2020 2 commits
  3. 28 Oct, 2020 1 commit
    • Tobias Tebbi's avatar
      [torque] generate C++ class definitions per Torque file · 03f60296
      Tobias Tebbi authored
      This CL splits the class definitions per .tq file, to realize the
      following relationship:
      A class defined in src/objects/foo.tq has a C++ definition in
      src/objects/foo.h. Torque then generates:
      
      - torque-generated/src/objects/foo-tq.inc
        An include file (no proper header) to be included in src/objects/foo.h
        containing the Torque-generated C++ class definition.
      
      - torque-generated/src/objects/foo-tq-inl.inc
        An include file (no proper header) to be included in
        src/objects/foo-inl.h containing inline function definitions.
      
      - torque-generated/src/objects/foo-tq.cc
        A source file including src/objects/foo-inl.h that contains non-inline
        function definitions.
      
      Advantages of this approach:
      - Avoid big monolithic headers and preserve the work that went into
        splitting objects.h
      - Moving a definition to Torque keeps everything in the same place
        from a C++ viewpoint, including a fully Torque-generated C++ class
        definition.
      - The Torque-generated include files do not need to be independent
        headers, necessary includes or forward declarations can just be added
        to the headers that include them.
      
      Drive-by changes:
      A bunch of definitions and files had to be moved or created to realize
      a consistent 1:1 relationship between .tq files and C++ headers.
      
      
      Bug: v8:7793
      TBR: hpayer@chromium.org
      Change-Id: I239a89a16d0bc856a8669d7c92aeafe24a7c7663
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2470571
      Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      Reviewed-by: 's avatarNico Hartmann <nicohartmann@chromium.org>
      Reviewed-by: 's avatarSeth Brenith <seth.brenith@microsoft.com>
      Cr-Commit-Position: refs/heads/master@{#70853}
      03f60296
  4. 07 Oct, 2020 1 commit
  5. 27 May, 2020 1 commit
  6. 26 May, 2020 1 commit
    • Seth Brenith's avatar
      Revert "[torque][cleanup] Use more precise field types in a few classes" · 16cb2d94
      Seth Brenith authored
      This reverts commit 4e5fabae.
      
      Reason for revert: performance regressions chromium:1085305, chromium:1084978
      
      Original change's description:
      > [torque][cleanup] Use more precise field types in a few classes
      > 
      > This change updates some Torque-defined classes to include more precise
      > field types where possible. It also updates those classes to use
      > @generateCppClass. One field was removed because it's unused
      > (PrototypeInfo::validity_cell), and two fields in StackFrameInfo
      > actually became less precise because they're based on Script::name,
      > which is an embedder-provided untyped Local<Value>. (Automatically
      > generated accessors pointed out this bug easily.)
      > 
      > This change also includes a couple of minor fixes in Torque.
      > 
      > Change-Id: Ib2bc6c7165bb3612b6d344c0686a94165a568277
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2199640
      > Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
      > Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#67907}
      
      TBR=ulan@chromium.org,tebbi@chromium.org,verwaest@chromium.org,seth.brenith@microsoft.com
      
      Change-Id: I720821d8dc84ea0d79eb137f1c2507f75df9a107
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2211322Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67972}
      16cb2d94
  7. 19 May, 2020 1 commit
  8. 18 Mar, 2020 1 commit
  9. 12 Feb, 2020 1 commit
  10. 16 Sep, 2019 1 commit
  11. 11 Sep, 2019 2 commits
    • Joshua Litt's avatar
      Revert "[top-level-await] Implement top-level-await in V8" · 93a29bdc
      Joshua Litt authored
      This reverts commit 591d1c9d.
      
      Reason for revert: breaks blink
      
      Original change's description:
      > [top-level-await] Implement top-level-await in V8
      > 
      > Implements AsyncModules in SourceTextModule. However, there is no
      > support in the parser or D8 for actually creating / resolving
      > AsyncModules. Also adds a flag '--top-level-await,' but the only
      > external facing change with the flag enabled is that Module::Evaluate
      > returns a promise.
      > 
      > Bug: v8:9344
      > Change-Id: Idc722efc1e2aa780d04bdb985bb7920ab969d34e
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1728037
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Reviewed-by: Georg Neis <neis@chromium.org>
      > Commit-Queue: Joshua Litt <joshualitt@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#63686}
      
      TBR=ulan@chromium.org,adamk@chromium.org,neis@chromium.org,joshualitt@chromium.org
      
      Change-Id: I6ceeb3a293a948af04bf200ab784ceb03386a3fd
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:9344
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1797656Reviewed-by: 's avatarZhi An Ng <zhin@chromium.org>
      Commit-Queue: Zhi An Ng <zhin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#63692}
      93a29bdc
    • Joshua Litt's avatar
      [top-level-await] Implement top-level-await in V8 · 591d1c9d
      Joshua Litt authored
      Implements AsyncModules in SourceTextModule. However, there is no
      support in the parser or D8 for actually creating / resolving
      AsyncModules. Also adds a flag '--top-level-await,' but the only
      external facing change with the flag enabled is that Module::Evaluate
      returns a promise.
      
      Bug: v8:9344
      Change-Id: Idc722efc1e2aa780d04bdb985bb7920ab969d34e
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1728037Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Commit-Queue: Joshua Litt <joshualitt@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#63686}
      591d1c9d
  12. 29 Aug, 2019 1 commit
    • Seth Brenith's avatar
      [cleanup][torque] Use @generateCppClass in some simple cases, part 2 · a5811358
      Seth Brenith authored
      This patch is mostly mechanical. A few changes in
      implementation-visitor.cc might be worth mentioning:
      - Don't generate both field offset macros and class definitions for the
        same class. This was mostly just to keep me from forgetting to remove
        the DEFINE_FIELD_OFFSET_CONSTANTS part when converting classes, but
        also helpfully flagged that FixedArrayBase wasn't using the generated
        class that it requested.
      - Generate forward declarations for all tq-defined classes in
        internal-class-definitions-tq.h. This is helpful for making things
        compile when classes have fields of other class types.
      - When generating accessors for union types, use the nearest class type
        that contains the entire union rather than plain Object. This is
        important for compile-time type safety. It also required a few minor
        fixes elsewhere (isolate.cc, modules.cc, scope-info.cc,
        source-text-module.cc, and a correction of the field types in
        CallHandlerInfo to match how they're set in api.cc).
      
      Change-Id: I3b9280e30779ce57fb9f3629eecfec898e26d708
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1774976Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
      Cr-Commit-Position: refs/heads/master@{#63458}
      a5811358
  13. 27 Jun, 2019 1 commit
  14. 19 Jun, 2019 1 commit
  15. 23 May, 2019 2 commits
  16. 09 Jan, 2019 1 commit
  17. 20 Dec, 2018 1 commit
  18. 18 Dec, 2018 2 commits
  19. 17 Dec, 2018 1 commit
  20. 08 Dec, 2018 1 commit
  21. 25 Nov, 2018 1 commit
  22. 24 Nov, 2018 1 commit
  23. 23 Nov, 2018 1 commit
  24. 27 Jul, 2018 1 commit
  25. 12 Jul, 2018 1 commit
  26. 24 May, 2018 1 commit
  27. 17 May, 2018 1 commit
  28. 04 May, 2018 1 commit
    • jgruber's avatar
      [api] Add Module::GetUnboundScript() · 2d3f6f91
      jgruber authored
      This method is intended for use by code caching as follows:
      
      1. The module is compiled (and perhaps instantiated).
      2. The embedder fetches and stores the module's unbound script (i.e.
         the shared function info).
      3. Module evaluation, maybe triggering lazy compilation.
      4. Generated code for the module (which hangs off the shared function
         info) is inserted into the code cache.
      
      Subsequent module loads can load from the code cache prior to
      evaluation.
      
      Bug: v8:7685
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
      Change-Id: I80018cd921ab1a18323906a548b249e19d9f9509
      Reviewed-on: https://chromium-review.googlesource.com/1041745
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52998}
      2d3f6f91
  29. 11 Oct, 2017 2 commits
    • Jan Krems's avatar
      Reland "[modules] Implement import.meta proposal" · 1c552999
      Jan Krems authored
      This is a reland of ed6f00fb
      Original change's description:
      > [modules] Implement import.meta proposal
      > 
      > Rewrites references to import.meta to a new GetImportMetaObject runtime
      > call. Embedders can define a callback for creating the meta object using
      > v8::Isolate::SetHostGetImportMetaObjectCallback. If no callback has been
      > provided, an empty object with null prototype is created.
      > 
      > This adds an example implementation to d8 that sets meta.url.
      > 
      > Bug: v8:6693
      > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      > Change-Id: I6871eec79da45bba81bbbc84b1ffff48534c368d
      > Reviewed-on: https://chromium-review.googlesource.com/707902
      > Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
      > Reviewed-by: Adam Klein <adamk@chromium.org>
      > Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#48433}
      
      TBR=adamk@chromium.org
      
      Bug: v8:6693
      Change-Id: Ie2d746ad996a56ed6ff50b832f320fe44e02f231
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/712834Reviewed-by: 's avatarSathya Gunasekaran <gsathya@chromium.org>
      Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48468}
      1c552999
    • Sathya Gunasekaran's avatar
      Revert "[modules] Implement import.meta proposal" · a5565227
      Sathya Gunasekaran authored
      This reverts commit ed6f00fb.
      
      Reason for revert: tree is broken
      
      NOTRY=true
      NOTREECHECKS=true
      
      Original change's description:
      > [modules] Implement import.meta proposal
      > 
      > Rewrites references to import.meta to a new GetImportMetaObject runtime
      > call. Embedders can define a callback for creating the meta object using
      > v8::Isolate::SetHostGetImportMetaObjectCallback. If no callback has been
      > provided, an empty object with null prototype is created.
      > 
      > This adds an example implementation to d8 that sets meta.url.
      > 
      > Bug: v8:6693
      > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      > Change-Id: I6871eec79da45bba81bbbc84b1ffff48534c368d
      > Reviewed-on: https://chromium-review.googlesource.com/707902
      > Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
      > Reviewed-by: Adam Klein <adamk@chromium.org>
      > Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#48433}
      
      TBR=adamk@chromium.org,gsathya@chromium.org,jan.krems@groupon.com
      
      Change-Id: I908a508d5db84cc8ae60d4fd4a0446bb570c1492
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:6693
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/710760Reviewed-by: 's avatarSathya Gunasekaran <gsathya@chromium.org>
      Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48434}
      a5565227
  30. 10 Oct, 2017 1 commit
    • Jan Krems's avatar
      [modules] Implement import.meta proposal · ed6f00fb
      Jan Krems authored
      Rewrites references to import.meta to a new GetImportMetaObject runtime
      call. Embedders can define a callback for creating the meta object using
      v8::Isolate::SetHostGetImportMetaObjectCallback. If no callback has been
      provided, an empty object with null prototype is created.
      
      This adds an example implementation to d8 that sets meta.url.
      
      Bug: v8:6693
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: I6871eec79da45bba81bbbc84b1ffff48534c368d
      Reviewed-on: https://chromium-review.googlesource.com/707902
      Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
      Reviewed-by: 's avatarAdam Klein <adamk@chromium.org>
      Reviewed-by: 's avatarSathya Gunasekaran <gsathya@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48433}
      ed6f00fb
  31. 23 Aug, 2017 1 commit