Commit e1877c9a authored by Daniel Clark's avatar Daniel Clark Committed by Chromium LUCI CQ

Switch to non-deprecated v8::Module APIs

Switch away from deprecated v8::Module APIs to the non-deprecated ones
that support import assertions
(https://tc39.es/proposal-import-assertions).

Future changes will start using the import assertions exposed by these
APIs and plumb then into the module infrastructure for use with JSON
and CSS modules.

Bug: 1132413
Change-Id: I23addcdfe18422abfa735b9aae807c50a9cb2a67
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2574535Reviewed-by: default avatarKouhei Ueno <kouhei@chromium.org>
Commit-Queue: Dan Clark <daniec@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#834989}
parent 4a3f0b97
...@@ -133,17 +133,23 @@ Vector<ModuleRequest> ModuleRecord::ModuleRequests( ...@@ -133,17 +133,23 @@ Vector<ModuleRequest> ModuleRecord::ModuleRequests(
if (record.IsEmpty()) if (record.IsEmpty())
return Vector<ModuleRequest>(); return Vector<ModuleRequest>();
v8::Local<v8::FixedArray> v8_module_requests = record->GetModuleRequests();
int length = v8_module_requests->Length();
Vector<ModuleRequest> requests; Vector<ModuleRequest> requests;
int length = record->GetModuleRequestsLength();
requests.ReserveInitialCapacity(length); requests.ReserveInitialCapacity(length);
for (int i = 0; i < length; ++i) { for (int i = 0; i < length; ++i) {
v8::Local<v8::String> v8_name = record->GetModuleRequest(i); v8::Local<v8::ModuleRequest> v8_module_request =
v8::Location v8_loc = record->GetModuleRequestLocation(i); v8_module_requests->Get(script_state->GetContext(), i)
.As<v8::ModuleRequest>();
v8::Local<v8::String> v8_specifier = v8_module_request->GetSpecifier();
int source_offset = v8_module_request->GetSourceOffset();
v8::Location v8_loc = record->SourceOffsetToLocation(source_offset);
TextPosition position( TextPosition position(
OrdinalNumber::FromZeroBasedInt(v8_loc.GetLineNumber()), OrdinalNumber::FromZeroBasedInt(v8_loc.GetLineNumber()),
OrdinalNumber::FromZeroBasedInt(v8_loc.GetColumnNumber())); OrdinalNumber::FromZeroBasedInt(v8_loc.GetColumnNumber()));
requests.emplace_back(ToCoreString(v8_name), position);
requests.emplace_back(ToCoreString(v8_specifier), position);
} }
return requests; return requests;
} }
...@@ -156,6 +162,7 @@ v8::Local<v8::Value> ModuleRecord::V8Namespace(v8::Local<v8::Module> record) { ...@@ -156,6 +162,7 @@ v8::Local<v8::Value> ModuleRecord::V8Namespace(v8::Local<v8::Module> record) {
v8::MaybeLocal<v8::Module> ModuleRecord::ResolveModuleCallback( v8::MaybeLocal<v8::Module> ModuleRecord::ResolveModuleCallback(
v8::Local<v8::Context> context, v8::Local<v8::Context> context,
v8::Local<v8::String> specifier, v8::Local<v8::String> specifier,
v8::Local<v8::FixedArray> import_assertions,
v8::Local<v8::Module> referrer) { v8::Local<v8::Module> referrer) {
v8::Isolate* isolate = context->GetIsolate(); v8::Isolate* isolate = context->GetIsolate();
Modulator* modulator = Modulator::From(ScriptState::From(context)); Modulator* modulator = Modulator::From(ScriptState::From(context));
......
...@@ -90,6 +90,7 @@ class CORE_EXPORT ModuleRecord final { ...@@ -90,6 +90,7 @@ class CORE_EXPORT ModuleRecord final {
static v8::MaybeLocal<v8::Module> ResolveModuleCallback( static v8::MaybeLocal<v8::Module> ResolveModuleCallback(
v8::Local<v8::Context>, v8::Local<v8::Context>,
v8::Local<v8::String> specifier, v8::Local<v8::String> specifier,
v8::Local<v8::FixedArray> import_assertions,
v8::Local<v8::Module> referrer); v8::Local<v8::Module> referrer);
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment