Skip javascriptcore's first parse step for ES Modules (#15758)

This commit is contained in:
pfg
2025-01-09 19:31:44 -08:00
committed by GitHub
parent 0b9db36494
commit ccc7bde7c6
21 changed files with 1516 additions and 190 deletions

View File

@@ -745,7 +745,7 @@ static JSValue fetchESMSourceCode(
auto tag = res->result.value.tag;
switch (tag) {
case SyntheticModuleType::ESM: {
auto&& provider = Zig::SourceProvider::create(globalObject, res->result.value, JSC::SourceProviderSourceType::Module, true);
auto&& provider = Zig::SourceProvider::create(globalObject, res->result.value, true);
return rejectOrResolve(JSSourceCode::create(vm, JSC::SourceCode(provider)));
}
@@ -764,7 +764,7 @@ static JSValue fetchESMSourceCode(
auto source = JSC::SourceCode(JSC::SyntheticSourceProvider::create(generateInternalModuleSourceCode(globalObject, static_cast<InternalModuleRegistry::Field>(tag & mask)), JSC::SourceOrigin(URL(makeString("builtins://"_s, moduleKey))), moduleKey));
return rejectOrResolve(JSSourceCode::create(vm, WTFMove(source)));
} else {
auto&& provider = Zig::SourceProvider::create(globalObject, res->result.value, JSC::SourceProviderSourceType::Module, true);
auto&& provider = Zig::SourceProvider::create(globalObject, res->result.value, true);
return rejectOrResolve(JSC::JSSourceCode::create(vm, JSC::SourceCode(provider)));
}
}