v8/include
Daniel Clark 8ae4dc4088 [modules][api] Implement HostGetSupportedImportAssertions
Implement the HostGetSupportedImportAssertions, whose purpose
is to filter the list of import assertions exposed to the embedder to
only those assertion with keys that the embedder recognizes. See
https://tc39.es/proposal-import-assertions/#sec-hostgetsupportedimportassertions.

This change doesn't actually implement it as a callback, but instead
passes the supported assertions during creation of the Isolate via
CreateParams. This expresses clearly the requirement that the supported
assertions must never change for the lifetime of the Isolate.

Note that we still need to maintain all assertions in a map
while parsing the import assertions clause, because duplicate keys for
an unsupported assertion still needs to be detected as a parse error. So,
the filtering is done later during
SourceTextModuleDescriptor::AstModuleRequest::Serialize.

The actual filtering algorithm simply iterates the assertions and the
supported assertion keys in a nested loop. There's currently only one
assertion in use ("type"), so there should be no reason to get too
clever here unless at least several more assertions are generally
supported.

Bug: v8:10958
Change-Id: I9a2d965e9d452718d0ddfe9dca55b7b4ed963019
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2572173
Reviewed-by: Marja Hölttä <marja@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Dan Clark <daniec@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#71776}
2020-12-16 03:48:45 +00:00
..
cppgc cppgc: Forward enum deprecation 2020-12-14 15:22:09 +00:00
libplatform [api] Introduce a single-threaded version of DefaultPlatform 2020-11-13 17:20:58 +00:00
APIDesign.md Move inspector protocol definitions to include/ 2019-06-18 17:59:36 +00:00
DEPS heap, cppgc: Add write barrier for TracedReference 2020-12-01 12:15:01 +00:00
DIR_METADATA Add DIR_METADATA files to v8. 2020-10-20 22:12:28 +00:00
js_protocol-1.2.json Move inspector protocol definitions to include/ 2019-06-18 17:59:36 +00:00
js_protocol-1.3.json Move inspector protocol definitions to include/ 2019-06-18 17:59:36 +00:00
js_protocol.pdl [wasm] Use WebAssembly.Memory objects in the scope chain. 2020-12-07 11:45:45 +00:00
OWNERS Add DIR_METADATA files to v8. 2020-10-20 22:12:28 +00:00
v8-cppgc.h heap, cppgc: Add write barrier for TracedReference 2020-12-01 12:15:01 +00:00
v8-fast-api-calls.h [fastcall] Turn the options pointer to a reference 2020-10-22 12:44:54 +00:00
v8-inspector-protocol.h Fix LINT exceptions across the code base 2020-04-27 16:37:04 +00:00
v8-inspector.h Expose scriptId as integer 2020-12-15 12:11:13 +00:00
v8-internal.h [fastcall] Add CPU profiler support for fast calls 2020-11-18 12:29:22 +00:00
v8-metrics.h (Step 3 of 3): Prepping Wasm events in the Recorder interface 2020-11-24 21:02:32 +00:00
v8-platform.h [Jobs]: Deprecate IsCompleted and IsRunning. 2020-12-10 16:48:48 +00:00
v8-profiler.h Reland "cppgc-js: heap snapshot: Add logic for querying detachedness" 2020-10-29 09:18:21 +00:00
v8-unwinder-state.h [unwinder] Restore callee saved registers after unwinding in arm32 2020-10-20 12:32:09 +00:00
v8-util.h Fix LINT exceptions across the code base 2020-04-27 16:37:04 +00:00
v8-value-serializer-version.h Expose the ValueSerializer data format version as a compile-time constant. 2017-04-27 15:14:41 +00:00
v8-version-string.h Fix LINT exceptions across the code base 2020-04-27 16:37:04 +00:00
v8-version.h Change Version number to 8.9 2020-11-12 11:55:44 +00:00
v8-wasm-trap-handler-posix.h Fix LINT exceptions across the code base 2020-04-27 16:37:04 +00:00
v8-wasm-trap-handler-win.h Fix LINT exceptions across the code base 2020-04-27 16:37:04 +00:00
v8.h [modules][api] Implement HostGetSupportedImportAssertions 2020-12-16 03:48:45 +00:00
v8config.h [config] Add [[nodiscard]] as an attribute to v8config 2020-11-25 11:49:05 +00:00