[defer-import-eval] Consider the whole SCC when checking sync readiness [v8/v8 : main]

0 views
Skip to first unread message

Caio Lima (Gerrit)

unread,
Jul 3, 2026, 10:50:07 AMJul 3
to v8-re...@googlegroups.com

Caio Lima added 1 comment

Patchset-level comments
File-level comment, Patchset 1 (Latest):
Caio Lima . resolved

It's important to highlight that the change I've made on `SourceTextModule::GatherAsynchronousTransitiveDependencies` by removing `module->status() == kEvaluatingAsync` makes tests `cyclic-tla-fn-defer-eval.tentative.html` and `cyclic-tla-defer-eval.tentative.html` timeout due to an infinity loop. Right now, those tests are not following current spec (see [1] for details). The order for landing here should be to first land [2] that fixes the test, and then this CL, that will make implementation align with spec again.

[1] - https://github.com/tc39/proposal-defer-import-eval/issues/83
[2] - https://chromium-review.googlesource.com/c/chromium/src/+/8037401

Open in Gerrit

Related details

Attention set is empty
Submit Requirements:
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: v8/v8
Gerrit-Branch: main
Gerrit-Change-Id: Icabca55863160980366bda08553d189db863c915
Gerrit-Change-Number: 8039264
Gerrit-PatchSet: 1
Gerrit-Owner: Caio Lima <caio...@igalia.com>
Gerrit-Comment-Date: Fri, 03 Jul 2026 14:50:04 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
unsatisfied_requirement
open
diffy

Caio Lima (Gerrit)

unread,
Jul 3, 2026, 10:54:35 AMJul 3
to Olivier Flückiger, Marja Hölttä, v8-re...@googlegroups.com
Attention needed from Marja Hölttä and Olivier Flückiger

Caio Lima added 1 comment

Patchset-level comments
Caio Lima . resolved

+Olivier and +Marja.

Sorry that this tangled a bit 2 issues, but without fixing https://issues.chromium.org/issues/530457806, I was not going to be able to properly add the test case that was reported on https://issues.chromium.org/issues/525234471.

Open in Gerrit

Related details

Attention is currently required from:
  • Marja Hölttä
  • Olivier Flückiger
Submit Requirements:
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: v8/v8
Gerrit-Branch: main
Gerrit-Change-Id: Icabca55863160980366bda08553d189db863c915
Gerrit-Change-Number: 8039264
Gerrit-PatchSet: 1
Gerrit-Owner: Caio Lima <caio...@igalia.com>
Gerrit-Reviewer: Marja Hölttä <ma...@chromium.org>
Gerrit-Reviewer: Olivier Flückiger <ol...@chromium.org>
Gerrit-Attention: Olivier Flückiger <ol...@chromium.org>
Gerrit-Attention: Marja Hölttä <ma...@chromium.org>
Gerrit-Comment-Date: Fri, 03 Jul 2026 14:54:30 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
unsatisfied_requirement
open
diffy

Marja Hölttä (Gerrit)

unread,
Jul 7, 2026, 2:32:52 AMJul 7
to Caio Lima, Nicolò Ribaudo, Maya Lekova, v8-s...@luci-project-accounts.iam.gserviceaccount.com, Olivier Flückiger, v8-re...@googlegroups.com
Attention needed from Caio Lima and Olivier Flückiger

Marja Hölttä added 3 comments

Patchset-level comments
Marja Hölttä . resolved

olivf@ will hopefully review from modules POV, just minor comments here:

Commit Message
Line 43, Patchset 1 (Latest):Bug: 525234471, 530457806
Marja Hölttä . unresolved

You can use Fixed: 1234 if this CL fixes those bugs. You can also have both a Bug: line and a Fixed: line.

File src/objects/source-text-module.h
Line 86, Patchset 1 (Latest): static bool IsModuleSCCEvaluated(Handle<SourceTextModule> module);
Marja Hölttä . unresolved

This could use a comment, and the comment should spell out what SCC is.

Open in Gerrit

Related details

Attention is currently required from:
  • Caio Lima
  • Olivier Flückiger
Submit Requirements:
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: v8/v8
    Gerrit-Branch: main
    Gerrit-Change-Id: Icabca55863160980366bda08553d189db863c915
    Gerrit-Change-Number: 8039264
    Gerrit-PatchSet: 1
    Gerrit-Owner: Caio Lima <caio...@igalia.com>
    Gerrit-Reviewer: Caio Lima <caio...@igalia.com>
    Gerrit-Reviewer: Marja Hölttä <ma...@chromium.org>
    Gerrit-Reviewer: Olivier Flückiger <ol...@chromium.org>
    Gerrit-CC: Maya Lekova <ma...@igalia.com>
    Gerrit-CC: Nicolò Ribaudo <nrib...@igalia.com>
    Gerrit-Attention: Caio Lima <caio...@igalia.com>
    Gerrit-Attention: Olivier Flückiger <ol...@chromium.org>
    Gerrit-Comment-Date: Tue, 07 Jul 2026 06:32:47 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    unsatisfied_requirement
    open
    diffy

    Olivier Flückiger (Gerrit)

    unread,
    Jul 7, 2026, 7:58:44 AMJul 7
    to Caio Lima, Nicolò Ribaudo, Maya Lekova, v8-s...@luci-project-accounts.iam.gserviceaccount.com, Marja Hölttä, v8-re...@googlegroups.com
    Attention needed from Caio Lima

    Olivier Flückiger added 1 comment

    File src/objects/source-text-module.cc
    Line 1446, Patchset 1 (Latest): if (!IsTheHole(module->cycle_root())) {
    Olivier Flückiger . unresolved

    when is the cycle_root the hole? and can we write a testcase for that?

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Caio Lima
    Submit Requirements:
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: v8/v8
    Gerrit-Branch: main
    Gerrit-Change-Id: Icabca55863160980366bda08553d189db863c915
    Gerrit-Change-Number: 8039264
    Gerrit-PatchSet: 1
    Gerrit-Owner: Caio Lima <caio...@igalia.com>
    Gerrit-Reviewer: Caio Lima <caio...@igalia.com>
    Gerrit-Reviewer: Marja Hölttä <ma...@chromium.org>
    Gerrit-Reviewer: Olivier Flückiger <ol...@chromium.org>
    Gerrit-CC: Maya Lekova <ma...@igalia.com>
    Gerrit-CC: Nicolò Ribaudo <nrib...@igalia.com>
    Gerrit-Attention: Caio Lima <caio...@igalia.com>
    Gerrit-Comment-Date: Tue, 07 Jul 2026 11:58:40 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    unsatisfied_requirement
    open
    diffy

    Caio Lima (Gerrit)

    unread,
    Jul 7, 2026, 9:15:25 AMJul 7
    to Nicolò Ribaudo, Maya Lekova, v8-s...@luci-project-accounts.iam.gserviceaccount.com, Olivier Flückiger, Marja Hölttä, v8-re...@googlegroups.com
    Attention needed from Olivier Flückiger

    Caio Lima added 1 comment

    File src/objects/source-text-module.cc
    Line 1446, Patchset 1 (Latest): if (!IsTheHole(module->cycle_root())) {
    Olivier Flückiger . unresolved

    when is the cycle_root the hole? and can we write a testcase for that?

    Caio Lima

    The `cycle_root` starts as `the hole` until it finds a cycle or it finishes its evaluation on non-cyclic cases. It means that any test case using `import defer` will first make this `!IsTheHole(module->cycle_root())` return false, given that we call `GatherAsynchronousTransitiveDependencies` while `cycle_root` is still empty (i.e `TheHole`). The test case added on this CL stress the path where `!IsTheHole(module->cycle_root())` is true, because we first call `import("A")` before executing `GatherAsynchronousTransitiveDependencies`, but other tests with `import defer` already cover the `false` branch scenario. Does it make sense?

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Olivier Flückiger
    Submit Requirements:
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: v8/v8
    Gerrit-Branch: main
    Gerrit-Change-Id: Icabca55863160980366bda08553d189db863c915
    Gerrit-Change-Number: 8039264
    Gerrit-PatchSet: 1
    Gerrit-Owner: Caio Lima <caio...@igalia.com>
    Gerrit-Reviewer: Caio Lima <caio...@igalia.com>
    Gerrit-Reviewer: Marja Hölttä <ma...@chromium.org>
    Gerrit-Reviewer: Olivier Flückiger <ol...@chromium.org>
    Gerrit-CC: Maya Lekova <ma...@igalia.com>
    Gerrit-CC: Nicolò Ribaudo <nrib...@igalia.com>
    Gerrit-Attention: Olivier Flückiger <ol...@chromium.org>
    Gerrit-Comment-Date: Tue, 07 Jul 2026 13:15:21 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Olivier Flückiger <ol...@chromium.org>
    unsatisfied_requirement
    open
    diffy

    Caio Lima (Gerrit)

    unread,
    Jul 9, 2026, 5:53:37 AMJul 9
    to Nicolò Ribaudo, Maya Lekova, v8-s...@luci-project-accounts.iam.gserviceaccount.com, Olivier Flückiger, Marja Hölttä, v8-re...@googlegroups.com
    Attention needed from Marja Hölttä and Olivier Flückiger

    Caio Lima added 1 comment

    File src/objects/source-text-module.h
    Line 86, Patchset 1: static bool IsModuleSCCEvaluated(Handle<SourceTextModule> module);
    Marja Hölttä . resolved

    This could use a comment, and the comment should spell out what SCC is.

    Caio Lima

    Added and thanks for this comment. One observation is that this link will only work after we land https://github.com/tc39/proposal-defer-import-eval/pull/85.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Marja Hölttä
    • Olivier Flückiger
    Submit Requirements:
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: v8/v8
    Gerrit-Branch: main
    Gerrit-Change-Id: Icabca55863160980366bda08553d189db863c915
    Gerrit-Change-Number: 8039264
    Gerrit-PatchSet: 2
    Gerrit-Owner: Caio Lima <caio...@igalia.com>
    Gerrit-Reviewer: Caio Lima <caio...@igalia.com>
    Gerrit-Reviewer: Marja Hölttä <ma...@chromium.org>
    Gerrit-Reviewer: Olivier Flückiger <ol...@chromium.org>
    Gerrit-CC: Maya Lekova <ma...@igalia.com>
    Gerrit-CC: Nicolò Ribaudo <nrib...@igalia.com>
    Gerrit-Attention: Olivier Flückiger <ol...@chromium.org>
    Gerrit-Attention: Marja Hölttä <ma...@chromium.org>
    Gerrit-Comment-Date: Thu, 09 Jul 2026 09:53:29 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Marja Hölttä <ma...@chromium.org>
    unsatisfied_requirement
    open
    diffy

    Caio Lima (Gerrit)

    unread,
    Jul 9, 2026, 5:55:01 AMJul 9
    to Nicolò Ribaudo, Maya Lekova, v8-s...@luci-project-accounts.iam.gserviceaccount.com, Olivier Flückiger, Marja Hölttä, v8-re...@googlegroups.com
    Attention needed from Marja Hölttä and Olivier Flückiger

    Caio Lima added 1 comment

    Commit Message
    Line 43, Patchset 1:Bug: 525234471, 530457806
    Marja Hölttä . resolved

    You can use Fixed: 1234 if this CL fixes those bugs. You can also have both a Bug: line and a Fixed: line.

    Caio Lima

    Done

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Marja Hölttä
    • Olivier Flückiger
    Submit Requirements:
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: v8/v8
    Gerrit-Branch: main
    Gerrit-Change-Id: Icabca55863160980366bda08553d189db863c915
    Gerrit-Change-Number: 8039264
    Gerrit-PatchSet: 4
    Gerrit-Owner: Caio Lima <caio...@igalia.com>
    Gerrit-Reviewer: Caio Lima <caio...@igalia.com>
    Gerrit-Reviewer: Marja Hölttä <ma...@chromium.org>
    Gerrit-Reviewer: Olivier Flückiger <ol...@chromium.org>
    Gerrit-CC: Maya Lekova <ma...@igalia.com>
    Gerrit-CC: Nicolò Ribaudo <nrib...@igalia.com>
    Gerrit-Attention: Olivier Flückiger <ol...@chromium.org>
    Gerrit-Attention: Marja Hölttä <ma...@chromium.org>
    Gerrit-Comment-Date: Thu, 09 Jul 2026 09:54:56 +0000
    unsatisfied_requirement
    open
    diffy

    Olivier Flückiger (Gerrit)

    unread,
    Jul 9, 2026, 10:28:08 AMJul 9
    to Caio Lima, Nicolò Ribaudo, Maya Lekova, v8-s...@luci-project-accounts.iam.gserviceaccount.com, Marja Hölttä, v8-re...@googlegroups.com
    Attention needed from Caio Lima and Marja Hölttä

    Olivier Flückiger voted and added 2 comments

    Votes added by Olivier Flückiger

    Code-Review+1

    2 comments

    Patchset-level comments
    File-level comment, Patchset 4 (Latest):
    Olivier Flückiger . resolved

    lgtm % comment

    File src/objects/source-text-module.cc
    Line 1446, Patchset 1: if (!IsTheHole(module->cycle_root())) {
    Olivier Flückiger . unresolved

    when is the cycle_root the hole? and can we write a testcase for that?

    Caio Lima

    The `cycle_root` starts as `the hole` until it finds a cycle or it finishes its evaluation on non-cyclic cases. It means that any test case using `import defer` will first make this `!IsTheHole(module->cycle_root())` return false, given that we call `GatherAsynchronousTransitiveDependencies` while `cycle_root` is still empty (i.e `TheHole`). The test case added on this CL stress the path where `!IsTheHole(module->cycle_root())` is true, because we first call `import("A")` before executing `GatherAsynchronousTransitiveDependencies`, but other tests with `import defer` already cover the `false` branch scenario. Does it make sense?

    Olivier Flückiger

    yes, makes sense. Can you add a comment please?

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Caio Lima
    • Marja Hölttä
    Submit Requirements:
    • requirement satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: v8/v8
    Gerrit-Branch: main
    Gerrit-Change-Id: Icabca55863160980366bda08553d189db863c915
    Gerrit-Change-Number: 8039264
    Gerrit-PatchSet: 4
    Gerrit-Owner: Caio Lima <caio...@igalia.com>
    Gerrit-Reviewer: Caio Lima <caio...@igalia.com>
    Gerrit-Reviewer: Marja Hölttä <ma...@chromium.org>
    Gerrit-Reviewer: Olivier Flückiger <ol...@chromium.org>
    Gerrit-CC: Maya Lekova <ma...@igalia.com>
    Gerrit-CC: Nicolò Ribaudo <nrib...@igalia.com>
    Gerrit-Attention: Caio Lima <caio...@igalia.com>
    Gerrit-Attention: Marja Hölttä <ma...@chromium.org>
    Gerrit-Comment-Date: Thu, 09 Jul 2026 14:28:03 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    Comment-In-Reply-To: Caio Lima <caio...@igalia.com>
    Comment-In-Reply-To: Olivier Flückiger <ol...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Caio Lima (Gerrit)

    unread,
    Jul 9, 2026, 12:17:58 PMJul 9
    to Olivier Flückiger, Nicolò Ribaudo, Maya Lekova, v8-s...@luci-project-accounts.iam.gserviceaccount.com, Marja Hölttä, v8-re...@googlegroups.com
    Attention needed from Marja Hölttä and Olivier Flückiger

    Caio Lima added 2 comments

    Patchset-level comments
    File-level comment, Patchset 5 (Latest):
    Caio Lima . resolved

    I also changed the test to guarantee the order of evaluation, where we first evaluate A.js, and we then evaluate Middle.js while A.mjs is still blocked.

    File src/objects/source-text-module.cc
    Line 1446, Patchset 1: if (!IsTheHole(module->cycle_root())) {
    Olivier Flückiger . resolved

    when is the cycle_root the hole? and can we write a testcase for that?

    Caio Lima

    The `cycle_root` starts as `the hole` until it finds a cycle or it finishes its evaluation on non-cyclic cases. It means that any test case using `import defer` will first make this `!IsTheHole(module->cycle_root())` return false, given that we call `GatherAsynchronousTransitiveDependencies` while `cycle_root` is still empty (i.e `TheHole`). The test case added on this CL stress the path where `!IsTheHole(module->cycle_root())` is true, because we first call `import("A")` before executing `GatherAsynchronousTransitiveDependencies`, but other tests with `import defer` already cover the `false` branch scenario. Does it make sense?

    Olivier Flückiger

    yes, makes sense. Can you add a comment please?

    Caio Lima

    Done

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Marja Hölttä
    • Olivier Flückiger
    Submit Requirements:
      • requirement satisfiedCode-Owners
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: v8/v8
      Gerrit-Branch: main
      Gerrit-Change-Id: Icabca55863160980366bda08553d189db863c915
      Gerrit-Change-Number: 8039264
      Gerrit-PatchSet: 5
      Gerrit-Owner: Caio Lima <caio...@igalia.com>
      Gerrit-Reviewer: Caio Lima <caio...@igalia.com>
      Gerrit-Reviewer: Marja Hölttä <ma...@chromium.org>
      Gerrit-Reviewer: Olivier Flückiger <ol...@chromium.org>
      Gerrit-CC: Maya Lekova <ma...@igalia.com>
      Gerrit-CC: Nicolò Ribaudo <nrib...@igalia.com>
      Gerrit-Attention: Olivier Flückiger <ol...@chromium.org>
      Gerrit-Attention: Marja Hölttä <ma...@chromium.org>
      Gerrit-Comment-Date: Thu, 09 Jul 2026 16:17:53 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Marja Hölttä (Gerrit)

      unread,
      Jul 23, 2026, 2:50:23 AM (2 days ago) Jul 23
      to Caio Lima, Olivier Flückiger, Nicolò Ribaudo, Maya Lekova, v8-s...@luci-project-accounts.iam.gserviceaccount.com, v8-re...@googlegroups.com
      Attention needed from Caio Lima and Olivier Flückiger

      Marja Hölttä added 1 comment

      Patchset-level comments
      Marja Hölttä . resolved

      this somehow lost the LGTMs. is this good to land or is there something that has to be fixed?

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Caio Lima
      • Olivier Flückiger
      Submit Requirements:
      • requirement satisfiedCode-Owners
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: v8/v8
      Gerrit-Branch: main
      Gerrit-Change-Id: Icabca55863160980366bda08553d189db863c915
      Gerrit-Change-Number: 8039264
      Gerrit-PatchSet: 5
      Gerrit-Owner: Caio Lima <caio...@igalia.com>
      Gerrit-Reviewer: Caio Lima <caio...@igalia.com>
      Gerrit-Reviewer: Marja Hölttä <ma...@chromium.org>
      Gerrit-Reviewer: Olivier Flückiger <ol...@chromium.org>
      Gerrit-CC: Maya Lekova <ma...@igalia.com>
      Gerrit-CC: Nicolò Ribaudo <nrib...@igalia.com>
      Gerrit-Attention: Caio Lima <caio...@igalia.com>
      Gerrit-Attention: Olivier Flückiger <ol...@chromium.org>
      Gerrit-Comment-Date: Thu, 23 Jul 2026 06:50:16 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Olivier Flückiger (Gerrit)

      unread,
      Jul 23, 2026, 4:38:11 AM (2 days ago) Jul 23
      to Caio Lima, Nicolò Ribaudo, Maya Lekova, v8-s...@luci-project-accounts.iam.gserviceaccount.com, Marja Hölttä, v8-re...@googlegroups.com
      Attention needed from Caio Lima

      Olivier Flückiger voted and added 1 comment

      Votes added by Olivier Flückiger

      Code-Review+1

      1 comment

      Patchset-level comments
      Olivier Flückiger . resolved

      lgtm, thank you

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Caio Lima
      Submit Requirements:
      • requirement satisfiedCode-Owners
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: v8/v8
      Gerrit-Branch: main
      Gerrit-Change-Id: Icabca55863160980366bda08553d189db863c915
      Gerrit-Change-Number: 8039264
      Gerrit-PatchSet: 5
      Gerrit-Owner: Caio Lima <caio...@igalia.com>
      Gerrit-Reviewer: Caio Lima <caio...@igalia.com>
      Gerrit-Reviewer: Marja Hölttä <ma...@chromium.org>
      Gerrit-Reviewer: Olivier Flückiger <ol...@chromium.org>
      Gerrit-CC: Maya Lekova <ma...@igalia.com>
      Gerrit-CC: Nicolò Ribaudo <nrib...@igalia.com>
      Gerrit-Attention: Caio Lima <caio...@igalia.com>
      Gerrit-Comment-Date: Thu, 23 Jul 2026 08:38:06 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Marja Hölttä (Gerrit)

      unread,
      Jul 23, 2026, 4:39:59 AM (2 days ago) Jul 23
      to Caio Lima, Olivier Flückiger, Nicolò Ribaudo, Maya Lekova, v8-s...@luci-project-accounts.iam.gserviceaccount.com, v8-re...@googlegroups.com
      Attention needed from Caio Lima

      Marja Hölttä voted Code-Review+1

      Code-Review+1
      Open in Gerrit

      Related details

      Attention is currently required from:
      • Caio Lima
      Submit Requirements:
      • requirement satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: v8/v8
      Gerrit-Branch: main
      Gerrit-Change-Id: Icabca55863160980366bda08553d189db863c915
      Gerrit-Change-Number: 8039264
      Gerrit-PatchSet: 5
      Gerrit-Owner: Caio Lima <caio...@igalia.com>
      Gerrit-Reviewer: Caio Lima <caio...@igalia.com>
      Gerrit-Reviewer: Marja Hölttä <ma...@chromium.org>
      Gerrit-Reviewer: Olivier Flückiger <ol...@chromium.org>
      Gerrit-CC: Maya Lekova <ma...@igalia.com>
      Gerrit-CC: Nicolò Ribaudo <nrib...@igalia.com>
      Gerrit-Attention: Caio Lima <caio...@igalia.com>
      Gerrit-Comment-Date: Thu, 23 Jul 2026 08:39:52 +0000
      Gerrit-HasComments: No
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      open
      diffy

      Marja Hölttä (Gerrit)

      unread,
      Jul 23, 2026, 4:40:10 AM (2 days ago) Jul 23
      to Caio Lima, Olivier Flückiger, Nicolò Ribaudo, Maya Lekova, v8-s...@luci-project-accounts.iam.gserviceaccount.com, v8-re...@googlegroups.com
      Attention needed from Caio Lima

      Marja Hölttä voted Commit-Queue+2

      Commit-Queue+2
      Open in Gerrit

      Related details

      Attention is currently required from:
      • Caio Lima
      Submit Requirements:
      • requirement satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: v8/v8
      Gerrit-Branch: main
      Gerrit-Change-Id: Icabca55863160980366bda08553d189db863c915
      Gerrit-Change-Number: 8039264
      Gerrit-PatchSet: 5
      Gerrit-Owner: Caio Lima <caio...@igalia.com>
      Gerrit-Reviewer: Caio Lima <caio...@igalia.com>
      Gerrit-Reviewer: Marja Hölttä <ma...@chromium.org>
      Gerrit-Reviewer: Olivier Flückiger <ol...@chromium.org>
      Gerrit-CC: Maya Lekova <ma...@igalia.com>
      Gerrit-CC: Nicolò Ribaudo <nrib...@igalia.com>
      Gerrit-Attention: Caio Lima <caio...@igalia.com>
      Gerrit-Comment-Date: Thu, 23 Jul 2026 08:40:05 +0000
      Gerrit-HasComments: No
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      open
      diffy

      v8-scoped@luci-project-accounts.iam.gserviceaccount.com (Gerrit)

      unread,
      Jul 23, 2026, 5:22:53 AM (2 days ago) Jul 23
      to Caio Lima, Marja Hölttä, Olivier Flückiger, Nicolò Ribaudo, Maya Lekova, v8-re...@googlegroups.com

      v8-s...@luci-project-accounts.iam.gserviceaccount.com submitted the change

      Change information

      Commit message:
      [defer-import-eval] Consider the whole SCC when checking sync readiness

      Touching a deferred namespace forces synchronous evaluation of the
      deferred module. To decide whether that is allowed,
      `ReadyForSyncExecution` and `GatherAsynchronousTransitiveDependencies`
      only inspected the status of each individual module. However, in a
      cycle containing top-level await, a module can already be kEvaluated
      while its cycle root is still kEvaluatingAsync. Both functions would
      then wrongly treat the dependency graph as settled: the deferred
      module was evaluated synchronously while its dependency's cycle was
      still waiting to finish, producing a pending (instead of fulfilled)
      evaluation promise and failing a check in
      JSDeferredModuleNamespace::EvaluateModuleSync.

      In this change we introduce `IsModuleSCCEvaluated`, which considers a
      module settled only when its cycle root reached kEvaluated (or
      kErrored), and use it in `ReadyForSyncExecution` and
      `GatherAsynchronousTransitiveDependencies`. Synchronous evaluation of
      the deferred module now only proceeds once the whole strongly-connected
      component has settled.

      This is the engine counterpart of the spec issue
      https://github.com/tc39/proposal-defer-import-eval/issues/84
      (assertion failure on EvaluateModuleSync), which is still open and
      will be discussed in the July 2026 plenary.

      The regression test asserts the module evaluation order: the async
      cycle {A, B} must fully settle before nsD.z triggers the deferred
      evaluation of D.

      In addition to that, this change includes the fix for the bug [1] by
      removing the early return on `GatherAsynchronousTransitiveDependencies`
      when `module.[[Status]]` is `kEvaluatingAsync`.

      [1] - https://issues.chromium.org/issues/530457806
      Fixed: 525234471
      Bug: 530457806
      Change-Id: Icabca55863160980366bda08553d189db863c915
      Reviewed-by: Marja Hölttä <ma...@chromium.org>
      Reviewed-by: Olivier Flückiger <ol...@chromium.org>
      Commit-Queue: Marja Hölttä <ma...@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#108828}
      Files:
      • M src/objects/source-text-module.cc
      • M src/objects/source-text-module.h
      • A test/mjsunit/harmony/modules-import-defer-sync-eval-async-cycle.js
      Change size: M
      Delta: 3 files changed, 102 insertions(+), 2 deletions(-)
      Branch: refs/heads/main
      Submit Requirements:
      • requirement satisfiedCode-Review: +1 by Olivier Flückiger, +1 by Marja Hölttä
      Open in Gerrit
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: merged
      Gerrit-Project: v8/v8
      Gerrit-Branch: main
      Gerrit-Change-Id: Icabca55863160980366bda08553d189db863c915
      Gerrit-Change-Number: 8039264
      Gerrit-PatchSet: 6
      Gerrit-Owner: Caio Lima <caio...@igalia.com>
      Gerrit-Reviewer: Caio Lima <caio...@igalia.com>
      Gerrit-Reviewer: Marja Hölttä <ma...@chromium.org>
      Gerrit-Reviewer: Olivier Flückiger <ol...@chromium.org>
      open
      diffy
      satisfied_requirement

      Marja Hölttä (Gerrit)

      unread,
      Jul 24, 2026, 3:53:52 AM (yesterday) Jul 24
      to Caio Lima, v8-s...@luci-project-accounts.iam.gserviceaccount.com, Olivier Flückiger, Nicolò Ribaudo, Maya Lekova, v8-re...@googlegroups.com

      Marja Hölttä has created a revert of this change

      Related details

      Attention set is empty
      Submit Requirements:
      • requirement satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: revert
      satisfied_requirement
      open
      diffy
      Reply all
      Reply to author
      Forward
      0 new messages