[defer-import-eval] Parse import defer syntax [v8/v8 : main]

0 views
Skip to first unread message

Caio Lima (Gerrit)

unread,
Oct 8, 2025, 1:04:06 PMOct 8
to V8 LUCI CQ, Leszek Swirski, Olivier Flückiger, cbruni...@chromium.org, marja...@chromium.org, v8-flag...@chromium.org, v8-re...@googlegroups.com
Attention needed from Leszek Swirski and Olivier Flückiger

Caio Lima added 1 comment

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

I opened a PR related to this to fix node-ci compilation problem in https://github.com/v8/node/pull/231

Open in Gerrit

Related details

Attention is currently required from:
  • Leszek Swirski
  • 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: I552f6df5970ae45427b4be75a403625fb391cc6b
Gerrit-Change-Number: 7017517
Gerrit-PatchSet: 1
Gerrit-Owner: Caio Lima <caio...@igalia.com>
Gerrit-Reviewer: Leszek Swirski <les...@chromium.org>
Gerrit-Reviewer: Olivier Flückiger <ol...@chromium.org>
Gerrit-Attention: Olivier Flückiger <ol...@chromium.org>
Gerrit-Attention: Leszek Swirski <les...@chromium.org>
Gerrit-Comment-Date: Wed, 08 Oct 2025 17:03:58 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
unsatisfied_requirement
open
diffy

Olivier Flückiger (Gerrit)

unread,
Oct 10, 2025, 10:45:57 AM (13 days ago) Oct 10
to Caio Lima, V8 LUCI CQ, Leszek Swirski, cbruni...@chromium.org, marja...@chromium.org, v8-flag...@chromium.org, v8-re...@googlegroups.com
Attention needed from Caio Lima and Leszek Swirski

Olivier Flückiger added 4 comments

Patchset-level comments
Olivier Flückiger . resolved

Thanks, some initial comments

File include/v8-callbacks.h
Line 338, Patchset 1 (Latest): kEvaluation,
Olivier Flückiger . unresolved

Unfortunately this won't work as we are changing the API in a way that breaks clients. We need to expose a new enum, a new enum callback type and and setter. Only this way we can move clients to the new api.

File src/ast/prettyprinter.cc
Line 595, Patchset 1 (Latest): if (node->phase() == ModuleImportPhase::kSource) {
Olivier Flückiger . unresolved

nit: can we convert this to a switch?

File src/objects/source-text-module.tq
Line 65, Patchset 1 (Latest): flags: Smi;
Olivier Flückiger . unresolved

That does not seem right. If it is Smi tagged it means we can't use the lowest bit (as it needs to be 0 in the case of Smis). So either this is a raw field and the GC needs to treat it correctly. Or it stays a SmiTagged and fits into 31 bits. Can we steal a bit from position?

Open in Gerrit

Related details

Attention is currently required from:
  • Caio Lima
  • Leszek Swirski
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: I552f6df5970ae45427b4be75a403625fb391cc6b
    Gerrit-Change-Number: 7017517
    Gerrit-PatchSet: 1
    Gerrit-Owner: Caio Lima <caio...@igalia.com>
    Gerrit-Reviewer: Leszek Swirski <les...@chromium.org>
    Gerrit-Reviewer: Olivier Flückiger <ol...@chromium.org>
    Gerrit-Attention: Caio Lima <caio...@igalia.com>
    Gerrit-Attention: Leszek Swirski <les...@chromium.org>
    Gerrit-Comment-Date: Fri, 10 Oct 2025 14:45:44 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    unsatisfied_requirement
    open
    diffy

    Olivier Flückiger (Gerrit)

    unread,
    Oct 10, 2025, 10:53:16 AM (13 days ago) Oct 10
    to Caio Lima, V8 LUCI CQ, Leszek Swirski, cbruni...@chromium.org, marja...@chromium.org, v8-flag...@chromium.org, v8-re...@googlegroups.com
    Attention needed from Caio Lima and Leszek Swirski

    Olivier Flückiger added 1 comment

    File include/v8-callbacks.h
    Olivier Flückiger . unresolved

    Unfortunately this won't work as we are changing the API in a way that breaks clients. We need to expose a new enum, a new enum callback type and and setter. Only this way we can move clients to the new api.

    Olivier Flückiger

    Btw. we also need to ensure that we don't accidentally pass the new enum to an old style callback. I suggest that for the transition period we will keep two separate callbacks that can be installed (with a check that not both are present). And a check to ensure we don't pass the new value to the old-style callback.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Caio Lima
    • Leszek Swirski
    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: I552f6df5970ae45427b4be75a403625fb391cc6b
    Gerrit-Change-Number: 7017517
    Gerrit-PatchSet: 1
    Gerrit-Owner: Caio Lima <caio...@igalia.com>
    Gerrit-Reviewer: Leszek Swirski <les...@chromium.org>
    Gerrit-Reviewer: Olivier Flückiger <ol...@chromium.org>
    Gerrit-Attention: Caio Lima <caio...@igalia.com>
    Gerrit-Attention: Leszek Swirski <les...@chromium.org>
    Gerrit-Comment-Date: Fri, 10 Oct 2025 14:53:04 +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,
    Oct 10, 2025, 1:34:45 PM (13 days ago) Oct 10
    to V8 LUCI CQ, Leszek Swirski, Olivier Flückiger, cbruni...@chromium.org, marja...@chromium.org, v8-flag...@chromium.org, v8-re...@googlegroups.com
    Attention needed from Leszek Swirski and Olivier Flückiger

    Caio Lima added 3 comments

    Patchset-level comments
    Caio Lima . resolved

    Thank you very much for the reviews. Before sending a new Patchset, I have some minor questions.

    File include/v8-callbacks.h
    Olivier Flückiger . unresolved

    Unfortunately this won't work as we are changing the API in a way that breaks clients. We need to expose a new enum, a new enum callback type and and setter. Only this way we can move clients to the new api.

    Olivier Flückiger

    Btw. we also need to ensure that we don't accidentally pass the new enum to an old style callback. I suggest that for the transition period we will keep two separate callbacks that can be installed (with a check that not both are present). And a check to ensure we don't pass the new value to the old-style callback.

    Caio Lima

    Oh, this path is a bit unfortunate, but it does make sense. I'm reworking in this change and I have 2 questions:

    1. Would a `ModuleImportPhaseV2` be a good name for this new enum?
    2. Implementing this new enum, I didn't need to change anything on `HostImportModuleWithPhaseDynamicallyCallback` yet. The changes are more internal and not exposed to embedders. Would you like me to add it in this patch, or should it come when implementing `import.defer` logic, when we'll need to add support for it on d8.cc?

    My plan there is to add a new `HostImportModuleWithPhaseV2DynamicallyCallback`, setters, and the logic you are proposing.

    File src/objects/source-text-module.tq
    Olivier Flückiger . unresolved

    That does not seem right. If it is Smi tagged it means we can't use the lowest bit (as it needs to be 0 in the case of Smis). So either this is a raw field and the GC needs to treat it correctly. Or it stays a SmiTagged and fits into 31 bits. Can we steal a bit from position?

    Caio Lima

    I misunderstood Smis, my bad. Your review makes sense, and it's probably safe to steal 1 bit for position, since it will be able to go up to `536870912`. It seems a reasonable max number to be represent a position.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Leszek Swirski
    • 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: I552f6df5970ae45427b4be75a403625fb391cc6b
    Gerrit-Change-Number: 7017517
    Gerrit-PatchSet: 1
    Gerrit-Owner: Caio Lima <caio...@igalia.com>
    Gerrit-Reviewer: Leszek Swirski <les...@chromium.org>
    Gerrit-Reviewer: Olivier Flückiger <ol...@chromium.org>
    Gerrit-Attention: Olivier Flückiger <ol...@chromium.org>
    Gerrit-Attention: Leszek Swirski <les...@chromium.org>
    Gerrit-Comment-Date: Fri, 10 Oct 2025 17:34:38 +0000
    unsatisfied_requirement
    open
    diffy

    Olivier Flückiger (Gerrit)

    unread,
    Oct 13, 2025, 12:57:12 PM (10 days ago) Oct 13
    to Caio Lima, Nicolò Ribaudo, V8 LUCI CQ, Leszek Swirski, cbruni...@chromium.org, marja...@chromium.org, v8-flag...@chromium.org, v8-re...@googlegroups.com
    Attention needed from Caio Lima and Leszek Swirski

    Olivier Flückiger added 3 comments

    File include/v8-callbacks.h
    Olivier Flückiger . unresolved

    Unfortunately this won't work as we are changing the API in a way that breaks clients. We need to expose a new enum, a new enum callback type and and setter. Only this way we can move clients to the new api.

    Olivier Flückiger

    Btw. we also need to ensure that we don't accidentally pass the new enum to an old style callback. I suggest that for the transition period we will keep two separate callbacks that can be installed (with a check that not both are present). And a check to ensure we don't pass the new value to the old-style callback.

    Caio Lima

    Oh, this path is a bit unfortunate, but it does make sense. I'm reworking in this change and I have 2 questions:

    1. Would a `ModuleImportPhaseV2` be a good name for this new enum?
    2. Implementing this new enum, I didn't need to change anything on `HostImportModuleWithPhaseDynamicallyCallback` yet. The changes are more internal and not exposed to embedders. Would you like me to add it in this patch, or should it come when implementing `import.defer` logic, when we'll need to add support for it on d8.cc?

    My plan there is to add a new `HostImportModuleWithPhaseV2DynamicallyCallback`, setters, and the logic you are proposing.

    Olivier Flückiger

    1. I like adding V2
    2. Up to you, but adding the

    Olivier Flückiger . unresolved

    Unfortunately this won't work as we are changing the API in a way that breaks clients. We need to expose a new enum, a new enum callback type and and setter. Only this way we can move clients to the new api.

    Olivier Flückiger

    Btw. we also need to ensure that we don't accidentally pass the new enum to an old style callback. I suggest that for the transition period we will keep two separate callbacks that can be installed (with a check that not both are present). And a check to ensure we don't pass the new value to the old-style callback.

    Caio Lima

    Oh, this path is a bit unfortunate, but it does make sense. I'm reworking in this change and I have 2 questions:

    1. Would a `ModuleImportPhaseV2` be a good name for this new enum?
    2. Implementing this new enum, I didn't need to change anything on `HostImportModuleWithPhaseDynamicallyCallback` yet. The changes are more internal and not exposed to embedders. Would you like me to add it in this patch, or should it come when implementing `import.defer` logic, when we'll need to add support for it on d8.cc?

    My plan there is to add a new `HostImportModuleWithPhaseV2DynamicallyCallback`, setters, and the logic you are proposing.

    Olivier Flückiger

    If you have an idea on how to get around it I am all ears. We didn't come up with one since we can never know if the client already supports the new enum or not.

    1. Sounds good.
    2. Up to you, but adding the callback already here would make sense.

    File src/objects/source-text-module.tq
    Olivier Flückiger . unresolved

    That does not seem right. If it is Smi tagged it means we can't use the lowest bit (as it needs to be 0 in the case of Smis). So either this is a raw field and the GC needs to treat it correctly. Or it stays a SmiTagged and fits into 31 bits. Can we steal a bit from position?

    Caio Lima

    I misunderstood Smis, my bad. Your review makes sense, and it's probably safe to steal 1 bit for position, since it will be able to go up to `536870912`. It seems a reasonable max number to be represent a position.

    Olivier Flückiger

    Yeah, a Smi is an int31 embedded into an int32. The lowest bit is set to 0. This is used by the GC to know that it can ignore the value. A SmiTagged basically means, we are abusing a Smi here to be able to store a raw value of some other type into 31bits and stick a Smi tag on it, so the GC ignores it.

    Stealing from position sounds good then.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Caio Lima
    • Leszek Swirski
    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: I552f6df5970ae45427b4be75a403625fb391cc6b
    Gerrit-Change-Number: 7017517
    Gerrit-PatchSet: 1
    Gerrit-Owner: Caio Lima <caio...@igalia.com>
    Gerrit-Reviewer: Leszek Swirski <les...@chromium.org>
    Gerrit-Reviewer: Olivier Flückiger <ol...@chromium.org>
    Gerrit-CC: Nicolò Ribaudo <nrib...@igalia.com>
    Gerrit-Attention: Caio Lima <caio...@igalia.com>
    Gerrit-Attention: Leszek Swirski <les...@chromium.org>
    Gerrit-Comment-Date: Mon, 13 Oct 2025 16:56:57 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Caio Lima <caio...@igalia.com>
    Comment-In-Reply-To: Olivier Flückiger <ol...@chromium.org>
    unsatisfied_requirement
    open
    diffy

    Caio Lima (Gerrit)

    unread,
    Oct 14, 2025, 9:03:14 AM (9 days ago) Oct 14
    to Nicolò Ribaudo, V8 LUCI CQ, Leszek Swirski, Olivier Flückiger, cbruni...@chromium.org, marja...@chromium.org, v8-flag...@chromium.org, v8-re...@googlegroups.com
    Attention needed from Leszek Swirski and Olivier Flückiger

    Caio Lima added 3 comments

    File include/v8-callbacks.h
    Olivier Flückiger . unresolved

    Unfortunately this won't work as we are changing the API in a way that breaks clients. We need to expose a new enum, a new enum callback type and and setter. Only this way we can move clients to the new api.

    Olivier Flückiger

    Btw. we also need to ensure that we don't accidentally pass the new enum to an old style callback. I suggest that for the transition period we will keep two separate callbacks that can be installed (with a check that not both are present). And a check to ensure we don't pass the new value to the old-style callback.

    Caio Lima

    Oh, this path is a bit unfortunate, but it does make sense. I'm reworking in this change and I have 2 questions:

    1. Would a `ModuleImportPhaseV2` be a good name for this new enum?
    2. Implementing this new enum, I didn't need to change anything on `HostImportModuleWithPhaseDynamicallyCallback` yet. The changes are more internal and not exposed to embedders. Would you like me to add it in this patch, or should it come when implementing `import.defer` logic, when we'll need to add support for it on d8.cc?

    My plan there is to add a new `HostImportModuleWithPhaseV2DynamicallyCallback`, setters, and the logic you are proposing.

    Olivier Flückiger

    If you have an idea on how to get around it I am all ears. We didn't come up with one since we can never know if the client already supports the new enum or not.

    1. Sounds good.
    2. Up to you, but adding the callback already here would make sense.

    Caio Lima

    No, I don't have a proper solution here. What I had in mind before was to do a breaking change, since Source Phase Imports still is in stage 3. However I do think it's better to avoid the breaking changes in the API.

    File src/ast/prettyprinter.cc
    Line 595, Patchset 1: if (node->phase() == ModuleImportPhase::kSource) {
    Olivier Flückiger . resolved

    nit: can we convert this to a switch?

    Caio Lima

    Acknowledged

    File src/objects/source-text-module.tq
    Line 65, Patchset 1: flags: Smi;
    Olivier Flückiger . resolved

    That does not seem right. If it is Smi tagged it means we can't use the lowest bit (as it needs to be 0 in the case of Smis). So either this is a raw field and the GC needs to treat it correctly. Or it stays a SmiTagged and fits into 31 bits. Can we steal a bit from position?

    Caio Lima

    I misunderstood Smis, my bad. Your review makes sense, and it's probably safe to steal 1 bit for position, since it will be able to go up to `536870912`. It seems a reasonable max number to be represent a position.

    Olivier Flückiger

    Yeah, a Smi is an int31 embedded into an int32. The lowest bit is set to 0. This is used by the GC to know that it can ignore the value. A SmiTagged basically means, we are abusing a Smi here to be able to store a raw value of some other type into 31bits and stick a Smi tag on it, so the GC ignores it.

    Stealing from position sounds good then.

    Caio Lima

    Acknowledged

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Leszek Swirski
    • 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: I552f6df5970ae45427b4be75a403625fb391cc6b
    Gerrit-Change-Number: 7017517
    Gerrit-PatchSet: 2
    Gerrit-Owner: Caio Lima <caio...@igalia.com>
    Gerrit-Reviewer: Leszek Swirski <les...@chromium.org>
    Gerrit-Reviewer: Olivier Flückiger <ol...@chromium.org>
    Gerrit-CC: Nicolò Ribaudo <nrib...@igalia.com>
    Gerrit-Attention: Olivier Flückiger <ol...@chromium.org>
    Gerrit-Attention: Leszek Swirski <les...@chromium.org>
    Gerrit-Comment-Date: Tue, 14 Oct 2025 13:03:04 +0000
    unsatisfied_requirement
    open
    diffy

    Chengzhong Wu (Gerrit)

    unread,
    Oct 14, 2025, 10:28:06 AM (9 days ago) Oct 14
    to Caio Lima, Nicolò Ribaudo, V8 LUCI CQ, Leszek Swirski, Olivier Flückiger, cbruni...@chromium.org, marja...@chromium.org, v8-flag...@chromium.org, v8-re...@googlegroups.com
    Attention needed from Caio Lima, Leszek Swirski and Olivier Flückiger

    Chengzhong Wu added 1 comment

    File include/v8-callbacks.h
    Olivier Flückiger . unresolved

    Unfortunately this won't work as we are changing the API in a way that breaks clients. We need to expose a new enum, a new enum callback type and and setter. Only this way we can move clients to the new api.

    Olivier Flückiger

    Btw. we also need to ensure that we don't accidentally pass the new enum to an old style callback. I suggest that for the transition period we will keep two separate callbacks that can be installed (with a check that not both are present). And a check to ensure we don't pass the new value to the old-style callback.

    Caio Lima

    Oh, this path is a bit unfortunate, but it does make sense. I'm reworking in this change and I have 2 questions:

    1. Would a `ModuleImportPhaseV2` be a good name for this new enum?
    2. Implementing this new enum, I didn't need to change anything on `HostImportModuleWithPhaseDynamicallyCallback` yet. The changes are more internal and not exposed to embedders. Would you like me to add it in this patch, or should it come when implementing `import.defer` logic, when we'll need to add support for it on d8.cc?

    My plan there is to add a new `HostImportModuleWithPhaseV2DynamicallyCallback`, setters, and the logic you are proposing.

    Olivier Flückiger

    If you have an idea on how to get around it I am all ears. We didn't come up with one since we can never know if the client already supports the new enum or not.

    1. Sounds good.
    2. Up to you, but adding the callback already here would make sense.

    Caio Lima

    No, I don't have a proper solution here. What I had in mind before was to do a breaking change, since Source Phase Imports still is in stage 3. However I do think it's better to avoid the breaking changes in the API.

    Chengzhong Wu

    The new delay phase will hide behind the flag `js_defer_import_eval`. Embedders do not set this flag will not receive thew new enum value though.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Caio Lima
    • Leszek Swirski
    • 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: I552f6df5970ae45427b4be75a403625fb391cc6b
    Gerrit-Change-Number: 7017517
    Gerrit-PatchSet: 2
    Gerrit-Owner: Caio Lima <caio...@igalia.com>
    Gerrit-Reviewer: Leszek Swirski <les...@chromium.org>
    Gerrit-Reviewer: Olivier Flückiger <ol...@chromium.org>
    Gerrit-CC: Chengzhong Wu <cwu...@bloomberg.net>
    Gerrit-CC: Nicolò Ribaudo <nrib...@igalia.com>
    Gerrit-Attention: Caio Lima <caio...@igalia.com>
    Gerrit-Attention: Olivier Flückiger <ol...@chromium.org>
    Gerrit-Attention: Leszek Swirski <les...@chromium.org>
    Gerrit-Comment-Date: Tue, 14 Oct 2025 14:28:04 +0000
    unsatisfied_requirement
    open
    diffy

    Olivier Flückiger (Gerrit)

    unread,
    Oct 14, 2025, 12:22:03 PM (9 days ago) Oct 14
    to Caio Lima, Chengzhong Wu, Nicolò Ribaudo, V8 LUCI CQ, Leszek Swirski, cbruni...@chromium.org, marja...@chromium.org, v8-flag...@chromium.org, v8-re...@googlegroups.com
    Attention needed from Caio Lima and Leszek Swirski

    Olivier Flückiger added 1 comment

    File include/v8-callbacks.h
    Olivier Flückiger . unresolved

    Unfortunately this won't work as we are changing the API in a way that breaks clients. We need to expose a new enum, a new enum callback type and and setter. Only this way we can move clients to the new api.

    Olivier Flückiger

    Btw. we also need to ensure that we don't accidentally pass the new enum to an old style callback. I suggest that for the transition period we will keep two separate callbacks that can be installed (with a check that not both are present). And a check to ensure we don't pass the new value to the old-style callback.

    Caio Lima

    Oh, this path is a bit unfortunate, but it does make sense. I'm reworking in this change and I have 2 questions:

    1. Would a `ModuleImportPhaseV2` be a good name for this new enum?
    2. Implementing this new enum, I didn't need to change anything on `HostImportModuleWithPhaseDynamicallyCallback` yet. The changes are more internal and not exposed to embedders. Would you like me to add it in this patch, or should it come when implementing `import.defer` logic, when we'll need to add support for it on d8.cc?

    My plan there is to add a new `HostImportModuleWithPhaseV2DynamicallyCallback`, setters, and the logic you are proposing.

    Olivier Flückiger

    If you have an idea on how to get around it I am all ears. We didn't come up with one since we can never know if the client already supports the new enum or not.

    1. Sounds good.
    2. Up to you, but adding the callback already here would make sense.

    Caio Lima

    No, I don't have a proper solution here. What I had in mind before was to do a breaking change, since Source Phase Imports still is in stage 3. However I do think it's better to avoid the breaking changes in the API.

    Chengzhong Wu

    The new delay phase will hide behind the flag `js_defer_import_eval`. Embedders do not set this flag will not receive thew new enum value though.

    Olivier Flückiger

    Ah, that is actually an excellent point that I had not considered.

    Maybe we can get around the breakage in the downstream builds if we temporarily annotate the enum with `__attribute__((enum_extensibility(open)))` then.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Caio Lima
    • Leszek Swirski
    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: I552f6df5970ae45427b4be75a403625fb391cc6b
    Gerrit-Change-Number: 7017517
    Gerrit-PatchSet: 2
    Gerrit-Owner: Caio Lima <caio...@igalia.com>
    Gerrit-Reviewer: Leszek Swirski <les...@chromium.org>
    Gerrit-Reviewer: Olivier Flückiger <ol...@chromium.org>
    Gerrit-CC: Chengzhong Wu <cwu...@bloomberg.net>
    Gerrit-CC: Nicolò Ribaudo <nrib...@igalia.com>
    Gerrit-Attention: Caio Lima <caio...@igalia.com>
    Gerrit-Attention: Leszek Swirski <les...@chromium.org>
    Gerrit-Comment-Date: Tue, 14 Oct 2025 16:21:47 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Caio Lima <caio...@igalia.com>
    Comment-In-Reply-To: Olivier Flückiger <ol...@chromium.org>
    Comment-In-Reply-To: Chengzhong Wu <cwu...@bloomberg.net>
    unsatisfied_requirement
    open
    diffy

    Caio Lima (Gerrit)

    unread,
    Oct 14, 2025, 1:12:38 PM (9 days ago) Oct 14
    to Chengzhong Wu, Nicolò Ribaudo, V8 LUCI CQ, Leszek Swirski, Olivier Flückiger, cbruni...@chromium.org, marja...@chromium.org, v8-flag...@chromium.org, v8-re...@googlegroups.com
    Attention needed from Chengzhong Wu, Leszek Swirski and Olivier Flückiger

    Caio Lima added 1 comment

    File include/v8-callbacks.h
    Olivier Flückiger . unresolved

    Unfortunately this won't work as we are changing the API in a way that breaks clients. We need to expose a new enum, a new enum callback type and and setter. Only this way we can move clients to the new api.

    Olivier Flückiger

    Btw. we also need to ensure that we don't accidentally pass the new enum to an old style callback. I suggest that for the transition period we will keep two separate callbacks that can be installed (with a check that not both are present). And a check to ensure we don't pass the new value to the old-style callback.

    Caio Lima

    Oh, this path is a bit unfortunate, but it does make sense. I'm reworking in this change and I have 2 questions:

    1. Would a `ModuleImportPhaseV2` be a good name for this new enum?
    2. Implementing this new enum, I didn't need to change anything on `HostImportModuleWithPhaseDynamicallyCallback` yet. The changes are more internal and not exposed to embedders. Would you like me to add it in this patch, or should it come when implementing `import.defer` logic, when we'll need to add support for it on d8.cc?

    My plan there is to add a new `HostImportModuleWithPhaseV2DynamicallyCallback`, setters, and the logic you are proposing.

    Olivier Flückiger

    If you have an idea on how to get around it I am all ears. We didn't come up with one since we can never know if the client already supports the new enum or not.

    1. Sounds good.
    2. Up to you, but adding the callback already here would make sense.

    Caio Lima

    No, I don't have a proper solution here. What I had in mind before was to do a breaking change, since Source Phase Imports still is in stage 3. However I do think it's better to avoid the breaking changes in the API.

    Chengzhong Wu

    The new delay phase will hide behind the flag `js_defer_import_eval`. Embedders do not set this flag will not receive thew new enum value though.

    Olivier Flückiger

    Ah, that is actually an excellent point that I had not considered.

    Maybe we can get around the breakage in the downstream builds if we temporarily annotate the enum with `__attribute__((enum_extensibility(open)))` then.

    Caio Lima

    After reading this I'm also thinking that using a build time flag would also work at some extent. However, I'm not sure how you feel about adding a new build flag for it. This would require some ifdefs here and there, which I'm a bit against, but might be doable.

    Maybe we can get around the breakage in the downstream builds if we temporarily annotate the enum with __attribute__((enum_extensibility(open))) then.

    I'm not sure if I follow here. IIUC, if we annotated `ModuleImportPhase`, this still causes breakage on switches that doesn't have a default clause, right? One example is that this would still break https://github.com/nodejs/node/blob/0c35aaf55f489abb55c9990d0bbeacdf4b2b0e62/src/module_wrap.cc#L561. Without patching Node (or other clients), I didn't get how we can avoid the breaking change.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Chengzhong Wu
    • Leszek Swirski
    • 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: I552f6df5970ae45427b4be75a403625fb391cc6b
    Gerrit-Change-Number: 7017517
    Gerrit-PatchSet: 2
    Gerrit-Owner: Caio Lima <caio...@igalia.com>
    Gerrit-Reviewer: Leszek Swirski <les...@chromium.org>
    Gerrit-Reviewer: Olivier Flückiger <ol...@chromium.org>
    Gerrit-CC: Chengzhong Wu <cwu...@bloomberg.net>
    Gerrit-CC: Nicolò Ribaudo <nrib...@igalia.com>
    Gerrit-Attention: Olivier Flückiger <ol...@chromium.org>
    Gerrit-Attention: Chengzhong Wu <cwu...@bloomberg.net>
    Gerrit-Attention: Leszek Swirski <les...@chromium.org>
    Gerrit-Comment-Date: Tue, 14 Oct 2025 17:12:30 +0000
    unsatisfied_requirement
    open
    diffy

    Olivier Flückiger (Gerrit)

    unread,
    Oct 14, 2025, 2:12:52 PM (9 days ago) Oct 14
    to Caio Lima, Chengzhong Wu, Nicolò Ribaudo, V8 LUCI CQ, Leszek Swirski, cbruni...@chromium.org, marja...@chromium.org, v8-flag...@chromium.org, v8-re...@googlegroups.com
    Attention needed from Caio Lima, Chengzhong Wu and Leszek Swirski

    Olivier Flückiger added 1 comment

    File include/v8-callbacks.h
    Olivier Flückiger

    Ok, yes, my idea doesn't work and ifdefs sounds annoying indeed.

    Adding a V2 api might be the easiest path. But we don't need a second callback slot. Both api's can store at the same callback location (casting to the correct signature) and on callback check that the flag is enabled before passing the new value back.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Caio Lima
    • Chengzhong Wu
    • Leszek Swirski
    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: I552f6df5970ae45427b4be75a403625fb391cc6b
    Gerrit-Change-Number: 7017517
    Gerrit-PatchSet: 2
    Gerrit-Owner: Caio Lima <caio...@igalia.com>
    Gerrit-Reviewer: Leszek Swirski <les...@chromium.org>
    Gerrit-Reviewer: Olivier Flückiger <ol...@chromium.org>
    Gerrit-CC: Chengzhong Wu <cwu...@bloomberg.net>
    Gerrit-CC: Nicolò Ribaudo <nrib...@igalia.com>
    Gerrit-Attention: Caio Lima <caio...@igalia.com>
    Gerrit-Attention: Chengzhong Wu <cwu...@bloomberg.net>
    Gerrit-Attention: Leszek Swirski <les...@chromium.org>
    Gerrit-Comment-Date: Tue, 14 Oct 2025 18:12:35 +0000
    unsatisfied_requirement
    open
    diffy

    Chengzhong Wu (Gerrit)

    unread,
    Oct 15, 2025, 4:58:28 AM (8 days ago) Oct 15
    to Caio Lima, Nicolò Ribaudo, V8 LUCI CQ, Leszek Swirski, Olivier Flückiger, cbruni...@chromium.org, marja...@chromium.org, v8-flag...@chromium.org, v8-re...@googlegroups.com
    Attention needed from Caio Lima and Leszek Swirski

    Chengzhong Wu added 1 comment

    File include/v8-callbacks.h
    Chengzhong Wu

    If we are going to add a new callback signature, can we make the callback's parameter phase to be an `int` so that we don't need to change the callback again when we add a new phase?

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Caio Lima
    • Leszek Swirski
    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: I552f6df5970ae45427b4be75a403625fb391cc6b
    Gerrit-Change-Number: 7017517
    Gerrit-PatchSet: 2
    Gerrit-Owner: Caio Lima <caio...@igalia.com>
    Gerrit-Reviewer: Leszek Swirski <les...@chromium.org>
    Gerrit-Reviewer: Olivier Flückiger <ol...@chromium.org>
    Gerrit-CC: Chengzhong Wu <cwu...@bloomberg.net>
    Gerrit-CC: Nicolò Ribaudo <nrib...@igalia.com>
    Gerrit-Attention: Caio Lima <caio...@igalia.com>
    Gerrit-Attention: Leszek Swirski <les...@chromium.org>
    Gerrit-Comment-Date: Wed, 15 Oct 2025 08:58:13 +0000
    unsatisfied_requirement
    open
    diffy

    Chengzhong Wu (Gerrit)

    unread,
    Oct 15, 2025, 5:35:05 AM (8 days ago) Oct 15
    to Caio Lima, Nicolò Ribaudo, V8 LUCI CQ, Leszek Swirski, Olivier Flückiger, cbruni...@chromium.org, marja...@chromium.org, v8-flag...@chromium.org, v8-re...@googlegroups.com
    Attention needed from Caio Lima and Leszek Swirski

    Chengzhong Wu added 1 comment

    Patchset-level comments
    File-level comment, Patchset 2 (Latest):
    Chengzhong Wu . resolved

    Fixing the switch-case in Node.js: https://github.com/nodejs/node/pull/60261

    Gerrit-Comment-Date: Wed, 15 Oct 2025 09:34:49 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    unsatisfied_requirement
    open
    diffy

    Olivier Flückiger (Gerrit)

    unread,
    Oct 15, 2025, 7:09:12 AM (8 days ago) Oct 15
    to Caio Lima, Chengzhong Wu, Nicolò Ribaudo, V8 LUCI CQ, Leszek Swirski, cbruni...@chromium.org, marja...@chromium.org, v8-flag...@chromium.org, v8-re...@googlegroups.com
    Attention needed from Caio Lima and Leszek Swirski

    Olivier Flückiger added 1 comment

    File include/v8-callbacks.h
    Olivier Flückiger

    I would prefer to keep it an enum even if it adds a bit of overhead.

    That said it seems like chrome does not care about the added enum value (I just checked). So if you want to wait until the node fix rolls into our ci, that is also an option for me.

    Gerrit-Comment-Date: Wed, 15 Oct 2025 11:08:57 +0000
    Gerrit-HasComments: Yes
    unsatisfied_requirement
    open
    diffy

    Chengzhong Wu (Gerrit)

    unread,
    Oct 15, 2025, 8:29:29 AM (8 days ago) Oct 15
    to Caio Lima, Nicolò Ribaudo, V8 LUCI CQ, Leszek Swirski, Olivier Flückiger, cbruni...@chromium.org, marja...@chromium.org, v8-flag...@chromium.org, v8-re...@googlegroups.com
    Attention needed from Caio Lima and Leszek Swirski

    Chengzhong Wu added 1 comment

    File include/v8-callbacks.h
    Chengzhong Wu

    FWIW Node.js does not enable switch exhaustive check so it's going to be just a warning. I don't think Node.js is blocking us from adding a value in existing enum either.

    Gerrit-Comment-Date: Wed, 15 Oct 2025 12:29:25 +0000
    unsatisfied_requirement
    open
    diffy

    Chengzhong Wu (Gerrit)

    unread,
    Oct 15, 2025, 8:44:10 AM (8 days ago) Oct 15
    to Caio Lima, Nicolò Ribaudo, V8 LUCI CQ, Leszek Swirski, Olivier Flückiger, cbruni...@chromium.org, marja...@chromium.org, v8-flag...@chromium.org, v8-re...@googlegroups.com
    File include/v8-callbacks.h
    Chengzhong Wu

    Or does V8 nodejs ci enables `-Wswitch-enum` as errors? From what I can tell, the Node.js' own CI does not treat this as an error.

    Gerrit-Comment-Date: Wed, 15 Oct 2025 12:44:08 +0000
    unsatisfied_requirement
    open
    diffy

    Caio Lima (Gerrit)

    unread,
    Oct 15, 2025, 9:37:52 AM (8 days ago) Oct 15
    to Chengzhong Wu, Nicolò Ribaudo, V8 LUCI CQ, Leszek Swirski, Olivier Flückiger, cbruni...@chromium.org, marja...@chromium.org, v8-flag...@chromium.org, v8-re...@googlegroups.com
    Attention needed from Chengzhong Wu, Leszek Swirski and Olivier Flückiger

    Caio Lima added 1 comment

    File include/v8-callbacks.h
    Caio Lima

    Good to know. So let's avoid creating a new enum then. I'll revert those changes and wait until the node-ci gets the patch as well.

    Or does V8 nodejs ci enables -Wswitch-enum as errors? From what I can tell, the Node.js' own CI does not treat this as an error.

    What I see in the node-ci is that it uses `-Wswitch`, but not `-Wswitch-enum`. So once your patch lands in Node-ci, we won't have this issue anymore.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Chengzhong Wu
    • Leszek Swirski
    • 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: I552f6df5970ae45427b4be75a403625fb391cc6b
    Gerrit-Change-Number: 7017517
    Gerrit-PatchSet: 2
    Gerrit-Owner: Caio Lima <caio...@igalia.com>
    Gerrit-Reviewer: Leszek Swirski <les...@chromium.org>
    Gerrit-Reviewer: Olivier Flückiger <ol...@chromium.org>
    Gerrit-CC: Chengzhong Wu <cwu...@bloomberg.net>
    Gerrit-CC: Nicolò Ribaudo <nrib...@igalia.com>
    Gerrit-Attention: Olivier Flückiger <ol...@chromium.org>
    Gerrit-Attention: Chengzhong Wu <cwu...@bloomberg.net>
    Gerrit-Attention: Leszek Swirski <les...@chromium.org>
    Gerrit-Comment-Date: Wed, 15 Oct 2025 13:37:39 +0000
    unsatisfied_requirement
    open
    diffy

    Olivier Flückiger (Gerrit)

    unread,
    Oct 16, 2025, 10:50:01 AM (7 days ago) Oct 16
    to Caio Lima, Chengzhong Wu, Nicolò Ribaudo, V8 LUCI CQ, Leszek Swirski, cbruni...@chromium.org, marja...@chromium.org, v8-flag...@chromium.org, v8-re...@googlegroups.com
    Attention needed from Caio Lima, Chengzhong Wu and Leszek Swirski

    Olivier Flückiger added 1 comment

    File include/v8-callbacks.h
    Olivier Flückiger

    Sorry for the back and forth... I looked into updating node in node-ci and realized that it will take some time and we don't want to do it more than necessary. Your initial plan with https://github.com/v8/node/pull/231 might have been the best option after all. If you re-open it I can get it merged.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Caio Lima
    • Chengzhong Wu
    • Leszek Swirski
    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: I552f6df5970ae45427b4be75a403625fb391cc6b
    Gerrit-Change-Number: 7017517
    Gerrit-PatchSet: 3
    Gerrit-Owner: Caio Lima <caio...@igalia.com>
    Gerrit-Reviewer: Leszek Swirski <les...@chromium.org>
    Gerrit-Reviewer: Olivier Flückiger <ol...@chromium.org>
    Gerrit-CC: Chengzhong Wu <cwu...@bloomberg.net>
    Gerrit-CC: Nicolò Ribaudo <nrib...@igalia.com>
    Gerrit-Attention: Caio Lima <caio...@igalia.com>
    Gerrit-Attention: Chengzhong Wu <cwu...@bloomberg.net>
    Gerrit-Attention: Leszek Swirski <les...@chromium.org>
    Gerrit-Comment-Date: Thu, 16 Oct 2025 14:49:56 +0000
    unsatisfied_requirement
    open
    diffy

    Olivier Flückiger (Gerrit)

    unread,
    Oct 17, 2025, 4:53:38 AM (6 days ago) Oct 17
    to Caio Lima, Chengzhong Wu, Nicolò Ribaudo, V8 LUCI CQ, Leszek Swirski, cbruni...@chromium.org, marja...@chromium.org, v8-flag...@chromium.org, v8-re...@googlegroups.com
    Attention needed from Caio Lima, Chengzhong Wu and Leszek Swirski

    Olivier Flückiger voted and added 1 comment

    Votes added by Olivier Flückiger

    Code-Review+1

    1 comment

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

    lgtm, thanks

    Gerrit-Comment-Date: Fri, 17 Oct 2025 08:53:34 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    unsatisfied_requirement
    open
    diffy

    Caio Lima (Gerrit)

    unread,
    Oct 20, 2025, 10:35:32 AM (3 days ago) Oct 20
    to Olivier Flückiger, Chengzhong Wu, Nicolò Ribaudo, V8 LUCI CQ, Leszek Swirski, cbruni...@chromium.org, marja...@chromium.org, v8-flag...@chromium.org, v8-re...@googlegroups.com
    Attention needed from Chengzhong Wu, Leszek Swirski and Olivier Flückiger

    Caio Lima added 2 comments

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

    I sent a new Patchset to solve merge conflicts with main. The Code Review flag vanished for this new Patchset, so I don't know if I need to get the review again.

    File include/v8-callbacks.h
    Olivier Flückiger . resolved
    Caio Lima

    I noticed that my message stayed in draft. thanks a lot for merging the PR and also updating DEPS!

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Chengzhong Wu
    • Leszek Swirski
    • 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: I552f6df5970ae45427b4be75a403625fb391cc6b
      Gerrit-Change-Number: 7017517
      Gerrit-PatchSet: 4
      Gerrit-Owner: Caio Lima <caio...@igalia.com>
      Gerrit-Reviewer: Leszek Swirski <les...@chromium.org>
      Gerrit-Reviewer: Olivier Flückiger <ol...@chromium.org>
      Gerrit-CC: Chengzhong Wu <cwu...@bloomberg.net>
      Gerrit-CC: Nicolò Ribaudo <nrib...@igalia.com>
      Gerrit-Attention: Olivier Flückiger <ol...@chromium.org>
      Gerrit-Attention: Chengzhong Wu <cwu...@bloomberg.net>
      Gerrit-Attention: Leszek Swirski <les...@chromium.org>
      Gerrit-Comment-Date: Mon, 20 Oct 2025 14:35:28 +0000
      unsatisfied_requirement
      open
      diffy

      Olivier Flückiger (Gerrit)

      unread,
      Oct 22, 2025, 10:41:38 AM (yesterday) Oct 22
      to Caio Lima, Joyee Cheung, Chengzhong Wu, Nicolò Ribaudo, V8 LUCI CQ, Leszek Swirski, cbruni...@chromium.org, marja...@chromium.org, v8-flag...@chromium.org, v8-re...@googlegroups.com
      Attention needed from Caio Lima, Chengzhong Wu and Leszek Swirski

      Olivier Flückiger voted Code-Review+1

      Code-Review+1
      Open in Gerrit

      Related details

      Attention is currently required from:
      • Caio Lima
      • Chengzhong Wu
      • Leszek Swirski
      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: I552f6df5970ae45427b4be75a403625fb391cc6b
      Gerrit-Change-Number: 7017517
      Gerrit-PatchSet: 4
      Gerrit-Owner: Caio Lima <caio...@igalia.com>
      Gerrit-Reviewer: Leszek Swirski <les...@chromium.org>
      Gerrit-Reviewer: Olivier Flückiger <ol...@chromium.org>
      Gerrit-CC: Chengzhong Wu <cwu...@bloomberg.net>
      Gerrit-CC: Joyee Cheung <jo...@igalia.com>
      Gerrit-CC: Nicolò Ribaudo <nrib...@igalia.com>
      Gerrit-Attention: Caio Lima <caio...@igalia.com>
      Gerrit-Attention: Chengzhong Wu <cwu...@bloomberg.net>
      Gerrit-Attention: Leszek Swirski <les...@chromium.org>
      Gerrit-Comment-Date: Wed, 22 Oct 2025 14:41:32 +0000
      Gerrit-HasComments: No
      Gerrit-Has-Labels: Yes
      unsatisfied_requirement
      open
      diffy

      Leszek Swirski (Gerrit)

      unread,
      Oct 22, 2025, 10:44:20 AM (yesterday) Oct 22
      to Caio Lima, Olivier Flückiger, Joyee Cheung, Chengzhong Wu, Nicolò Ribaudo, V8 LUCI CQ, cbruni...@chromium.org, marja...@chromium.org, v8-flag...@chromium.org, v8-re...@googlegroups.com
      Attention needed from Caio Lima and Chengzhong Wu

      Leszek Swirski voted Code-Review+1

      Code-Review+1
      Open in Gerrit

      Related details

      Attention is currently required from:
      • Caio Lima
      • Chengzhong Wu
      Submit Requirements:
      • requirement satisfiedCode-Owners
      • requirement 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: I552f6df5970ae45427b4be75a403625fb391cc6b
      Gerrit-Change-Number: 7017517
      Gerrit-PatchSet: 4
      Gerrit-Owner: Caio Lima <caio...@igalia.com>
      Gerrit-Reviewer: Leszek Swirski <les...@chromium.org>
      Gerrit-Reviewer: Olivier Flückiger <ol...@chromium.org>
      Gerrit-CC: Chengzhong Wu <cwu...@bloomberg.net>
      Gerrit-CC: Joyee Cheung <jo...@igalia.com>
      Gerrit-CC: Nicolò Ribaudo <nrib...@igalia.com>
      Gerrit-Attention: Caio Lima <caio...@igalia.com>
      Gerrit-Attention: Chengzhong Wu <cwu...@bloomberg.net>
      Gerrit-Comment-Date: Wed, 22 Oct 2025 14:44:15 +0000
      Gerrit-HasComments: No
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Olivier Flückiger (Gerrit)

      unread,
      Oct 22, 2025, 10:54:57 AM (yesterday) Oct 22
      to Caio Lima, Leszek Swirski, Joyee Cheung, Chengzhong Wu, Nicolò Ribaudo, V8 LUCI CQ, cbruni...@chromium.org, marja...@chromium.org, v8-flag...@chromium.org, v8-re...@googlegroups.com
      Attention needed from Caio Lima and Chengzhong Wu

      Olivier Flückiger voted Code-Review+0

      Code-Review+0
      Open in Gerrit

      Related details

      Attention is currently required from:
      • Caio Lima
      • Chengzhong Wu
      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: I552f6df5970ae45427b4be75a403625fb391cc6b
      Gerrit-Change-Number: 7017517
      Gerrit-PatchSet: 4
      Gerrit-Owner: Caio Lima <caio...@igalia.com>
      Gerrit-Reviewer: Leszek Swirski <les...@chromium.org>
      Gerrit-Reviewer: Olivier Flückiger <ol...@chromium.org>
      Gerrit-CC: Chengzhong Wu <cwu...@bloomberg.net>
      Gerrit-CC: Joyee Cheung <jo...@igalia.com>
      Gerrit-CC: Nicolò Ribaudo <nrib...@igalia.com>
      Gerrit-Attention: Caio Lima <caio...@igalia.com>
      Gerrit-Attention: Chengzhong Wu <cwu...@bloomberg.net>
      Gerrit-Comment-Date: Wed, 22 Oct 2025 14:54:53 +0000
      Gerrit-HasComments: No
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Olivier Flückiger (Gerrit)

      unread,
      Oct 22, 2025, 10:55:11 AM (yesterday) Oct 22
      to Caio Lima, Leszek Swirski, Joyee Cheung, Chengzhong Wu, Nicolò Ribaudo, V8 LUCI CQ, cbruni...@chromium.org, marja...@chromium.org, v8-flag...@chromium.org, v8-re...@googlegroups.com
      Attention needed from Caio Lima and Chengzhong Wu

      Olivier Flückiger voted Code-Review+1

      Code-Review+1
      Open in Gerrit

      Related details

      Attention is currently required from:
      • Caio Lima
      • Chengzhong Wu
      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: I552f6df5970ae45427b4be75a403625fb391cc6b
      Gerrit-Change-Number: 7017517
      Gerrit-PatchSet: 4
      Gerrit-Owner: Caio Lima <caio...@igalia.com>
      Gerrit-Reviewer: Leszek Swirski <les...@chromium.org>
      Gerrit-Reviewer: Olivier Flückiger <ol...@chromium.org>
      Gerrit-CC: Chengzhong Wu <cwu...@bloomberg.net>
      Gerrit-CC: Joyee Cheung <jo...@igalia.com>
      Gerrit-CC: Nicolò Ribaudo <nrib...@igalia.com>
      Gerrit-Attention: Caio Lima <caio...@igalia.com>
      Gerrit-Attention: Chengzhong Wu <cwu...@bloomberg.net>
      Gerrit-Comment-Date: Wed, 22 Oct 2025 14:55:07 +0000
      Gerrit-HasComments: No
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      open
      diffy

      Joyee Cheung (Gerrit)

      unread,
      7:43 AM (4 hours ago) 7:43 AM
      to Caio Lima, Leszek Swirski, Olivier Flückiger, Chengzhong Wu, Nicolò Ribaudo, V8 LUCI CQ, cbruni...@chromium.org, marja...@chromium.org, v8-flag...@chromium.org, v8-re...@googlegroups.com
      Attention needed from Caio Lima and Chengzhong Wu

      Joyee Cheung voted Commit-Queue+2

      Commit-Queue+2
      Gerrit-Comment-Date: Thu, 23 Oct 2025 11:43:52 +0000
      Gerrit-HasComments: No
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      open
      diffy

      V8 LUCI CQ (Gerrit)

      unread,
      8:36 AM (3 hours ago) 8:36 AM
      to Caio Lima, Leszek Swirski, Olivier Flückiger, Joyee Cheung, Chengzhong Wu, Nicolò Ribaudo, cbruni...@chromium.org, marja...@chromium.org, v8-flag...@chromium.org, v8-re...@googlegroups.com

      V8 LUCI CQ submitted the change

      Change information

      Commit message:
      [defer-import-eval] Parse import defer syntax

      Add support for `import defer * as ns` and `import.defer` syntax that
      is behind the runtime flag named `--js-defer-import-eval`. Deferred imports
      are marked as ModuleImportPhase::kDefer, that is going to be used on
      other parts of runtime to properly handle new deferred semantics.

      Only namespace imports can be marked as deferred.

      Design doc: https://docs.google.com/document/d/1DKss76uvFDEy3UHgc2Vtmy1hw5SNTCrEJqUF2aKATxQ
      Bug: 398218423
      Change-Id: I552f6df5970ae45427b4be75a403625fb391cc6b
      Reviewed-by: Olivier Flückiger <ol...@chromium.org>
      Commit-Queue: Joyee Cheung <jo...@igalia.com>
      Reviewed-by: Leszek Swirski <les...@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#103314}
      Files:
      • M include/v8-callbacks.h
      • M include/v8-internal.h
      • M src/ast/ast-value-factory.h
      • M src/ast/modules.cc
      • M src/ast/modules.h
      • M src/ast/prettyprinter.cc
      • M src/execution/isolate.cc
      • M src/flags/flag-definitions.h
      • M src/init/bootstrapper.cc
      • M src/init/heap-symbols.h
      • M src/objects/module-inl.h
      • M src/objects/source-text-module.tq
      • M src/parsing/parser-base.h
      • M src/parsing/parser.cc
      • M src/roots/static-roots-intl-nowasm.h
      • M src/roots/static-roots-intl-wasm.h
      • M src/roots/static-roots-nointl-nowasm.h
      • M src/roots/static-roots-nointl-wasm.h
      • M test/unittests/interpreter/bytecode_expectations/AsyncModules.golden
      • M test/unittests/parser/parsing-unittest.cc
      Change size: XL
      Delta: 20 files changed, 1635 insertions(+), 1367 deletions(-)
      Branch: refs/heads/main
      Submit Requirements:
      • requirement satisfiedCode-Review: +1 by Leszek Swirski, +1 by Olivier Flückiger
      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: I552f6df5970ae45427b4be75a403625fb391cc6b
      Gerrit-Change-Number: 7017517
      Gerrit-PatchSet: 5
      Gerrit-Owner: Caio Lima <caio...@igalia.com>
      Gerrit-Reviewer: Leszek Swirski <les...@chromium.org>
      Gerrit-Reviewer: Olivier Flückiger <ol...@chromium.org>
      open
      diffy
      satisfied_requirement
      Reply all
      Reply to author
      Forward
      0 new messages