| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
PR-URL: nodejs#49523 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
PR-URL: nodejs#49887 Fixes: nodejs#49724 Reviewed-By: Geoffrey Booth <webadmin@geoffreybooth.com> Reviewed-By: LiviaMedeiros <livia@cirno.name> Reviewed-By: Jacob Smith <jacob@frende.me> Reviewed-By: Chemi Atlow <chemi@atlow.co.il>
|
Review requested:
|
Sorry, something went wrong.
|
@nodejs/v8 I would love if I could get a review of 17ab6e9 – I don't expect it to be dangerous, but since 20.x is about to be LTS I'd rather have a few extra pairs of eyes on it. |
Sorry, something went wrong.
|
Looking at https://bugs.chromium.org/p/v8/issues/detail?id=13856:
|
Sorry, something went wrong.
Original commit message:
[import-attributes] Implement import attributes, with `assert` fallback
In the past six months, the old import assertions proposal has been
renamed to "import attributes" with the follwing major changes:
1. the keyword is now `with` instead of `assert`
2. unknown assertions cause an error rather than being ignored
To preserve backward compatibility with existing applications that use
`assert`, implementations _can_ keep it around as a fallback for both
the static and dynamic forms.
Additionally, the proposal has some minor changes that came up during
the stage 3 reviews:
3. dynamic import first reads all the attributes, and then verifies
that they are all strings
4. there is no need for a `[no LineTerminator here]` restriction before
the `with` keyword
5. static import syntax allows any `LiteralPropertyName` as attribute
keys, to align with every other syntax using key-value pairs
The new syntax is enabled by a new `--harmony-import-attributes` flag,
disabled by default. However, the new behavioral changes also apply to
the old syntax that is under the `--harmony-import-assertions` flag.
This patch does implements (1), (3), (4) and (5). Handling of unknown
import assertions was not implemented directly in V8, but delegated
to embedders. As such, it will be implemented separately in d8 and
Chromium.
To simplify the review, this patch doesn't migrate usage of the term
"assertions" to "attributes". There are many variables and internal
functions that could be easily renamed as soon as this patch landes.
There is one usage in the public API
(`ModuleRequest::GetImportAssertions`) that will probably need to be
aliased and then removed following the same process as for other API
breaking changes.
Bug: v8:13856
Change-Id: I78b167348d898887332c5ca7468bc5d58cd9b1ca
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4632799
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#89110}
Refs: v8/v8@159c82c
Refs: v8/v8@a0fd320
Original commit message:
[import-attributes] Remove support for numeric keys
During the 2023-09 TC39 meeting the proposal has been updated to remove support
for bigint and float literals as import attribute keys, due to implementation
difficulties in other engines and minimal added value for JS developers.
GH issue: tc39/proposal-import-attributes#145
Bug: v8:13856
Change-Id: I0ede2bb10d6ca338a4b0870a1261ccbcd088c16f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4899760
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Commit-Queue: Joyee Cheung <joyee@igalia.com>
Cr-Commit-Position: refs/heads/main@{#90318}
Refs: v8/v8@ea996ad
The old import assertions proposal has been renamed to "import attributes" with the follwing major changes: 1. The keyword is now `with` instead of `assert`. 2. Unknown assertions cause an error rather than being ignored, This commit updates the documentation to encourage folks to use the new syntax, and add aliases for module customization hooks. PR-URL: nodejs#50140 Fixes: nodejs#50134 Refs: v8/v8@159c82c Reviewed-By: Geoffrey Booth <webadmin@geoffreybooth.com> Reviewed-By: Jacob Smith <jacob@frende.me> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
The old import assertions proposal has been renamed to "import attributes" with the following major changes: 1. The keyword is now `with` instead of `assert`. 2. Unknown assertions cause an error rather than being ignored. This PR updates the documentation to encourage folks to use the new syntax, and add aliases to preserve backward compatibility. PR-URL: nodejs#50141 Reviewed-By: Geoffrey Booth <webadmin@geoffreybooth.com> Reviewed-By: Vinícius Lourenço Claro Cardoso <contact@viniciusl.com.br>
Thanks for the pointer! IIUC d22b640 already implements all the relevant changes. |
Sorry, something went wrong.
Original commit message:
[import-attributes] Implement import attributes, with `assert` fallback
In the past six months, the old import assertions proposal has been
renamed to "import attributes" with the follwing major changes:
1. the keyword is now `with` instead of `assert`
2. unknown assertions cause an error rather than being ignored
To preserve backward compatibility with existing applications that use
`assert`, implementations _can_ keep it around as a fallback for both
the static and dynamic forms.
Additionally, the proposal has some minor changes that came up during
the stage 3 reviews:
3. dynamic import first reads all the attributes, and then verifies
that they are all strings
4. there is no need for a `[no LineTerminator here]` restriction before
the `with` keyword
5. static import syntax allows any `LiteralPropertyName` as attribute
keys, to align with every other syntax using key-value pairs
The new syntax is enabled by a new `--harmony-import-attributes` flag,
disabled by default. However, the new behavioral changes also apply to
the old syntax that is under the `--harmony-import-assertions` flag.
This patch does implements (1), (3), (4) and (5). Handling of unknown
import assertions was not implemented directly in V8, but delegated
to embedders. As such, it will be implemented separately in d8 and
Chromium.
To simplify the review, this patch doesn't migrate usage of the term
"assertions" to "attributes". There are many variables and internal
functions that could be easily renamed as soon as this patch landes.
There is one usage in the public API
(`ModuleRequest::GetImportAssertions`) that will probably need to be
aliased and then removed following the same process as for other API
breaking changes.
Bug: v8:13856
Change-Id: I78b167348d898887332c5ca7468bc5d58cd9b1ca
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4632799
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#89110}
Refs: v8/v8@159c82c
Refs: v8/v8@a0fd320
PR-URL: #50183
Reviewed-By: Geoffrey Booth <webadmin@geoffreybooth.com>
Original commit message:
[import-attributes] Remove support for numeric keys
During the 2023-09 TC39 meeting the proposal has been updated to remove support
for bigint and float literals as import attribute keys, due to implementation
difficulties in other engines and minimal added value for JS developers.
GH issue: tc39/proposal-import-attributes#145
Bug: v8:13856
Change-Id: I0ede2bb10d6ca338a4b0870a1261ccbcd088c16f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4899760
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Commit-Queue: Joyee Cheung <joyee@igalia.com>
Cr-Commit-Position: refs/heads/main@{#90318}
Refs: v8/v8@ea996ad
PR-URL: #50183
Reviewed-By: Geoffrey Booth <webadmin@geoffreybooth.com>
| Back | FazBrowse Home | New Git URL |
Backport of #50140
Because the version of V8 does not support with keyword, I have not ported the changes in the tests and the docs are still using assert. Actually, the V8 changes were not too difficult to backport, so I decided to do that. That way, with keyword will be supported on all non-EOL as soon as v18.x reaches EOL.
To avoid conflicts, I'm also backporting: