@@ -142,7 +142,7 @@ index 69f73f829706deddc4f328b78af9d58434af647d..1d53a2a47423150e822bb917b2725d3a
142142
143143 const encodedSepRegEx = /%2F|%5C/i;
144144diff --git a/src/node_file.cc b/src/node_file.cc
145- index b0aa53420c4efb45ccb129cd4db5579de9f3e401..3e3aa383f54f45ab6dd134be29a2dbcf35760163 100644
145+ index 80ff36f2463035ed32cb8b7b826bfe94c339dbe2..cca6c6775bc8dd35b897498c7dd65b2e3957ee40 100644
146146--- a/src/node_file.cc
147147+++ b/src/node_file.cc
148148@@ -19,14 +19,11 @@
@@ -160,7 +160,7 @@ index b0aa53420c4efb45ccb129cd4db5579de9f3e401..3e3aa383f54f45ab6dd134be29a2dbcf
160160 #include "node_process-inl.h"
161161 #include "node_stat_watcher.h"
162162 #include "node_url.h"
163- @@ -3116,134 +3113 ,6 @@ constexpr std::array<std::string_view, 10> legacy_main_extensions = {
163+ @@ -3127,135 +3124 ,6 @@ constexpr std::array<std::string_view, 10> legacy_main_extensions = {
164164
165165 } // namespace
166166
@@ -180,6 +180,8 @@ index b0aa53420c4efb45ccb129cd4db5579de9f3e401..3e3aa383f54f45ab6dd134be29a2dbcf
180180- return;
181181- }
182182-
183+ - std::string package_initial_file = "";
184+ -
183185- ada::result<ada::url_aggregator> file_path_url;
184186- std::optional<std::string> initial_file_path;
185187- std::string file_path;
@@ -202,6 +204,8 @@ index b0aa53420c4efb45ccb129cd4db5579de9f3e401..3e3aa383f54f45ab6dd134be29a2dbcf
202204-
203205- node::url::FromNamespacedPath(&initial_file_path.value());
204206-
207+ - package_initial_file = *initial_file_path;
208+ -
205209- for (int i = 0; i < legacy_main_extensions_with_main_end; i++) {
206210- file_path = *initial_file_path + std::string(legacy_main_extensions[i]);
207211-
@@ -257,13 +261,10 @@ index b0aa53420c4efb45ccb129cd4db5579de9f3e401..3e3aa383f54f45ab6dd134be29a2dbcf
257261- }
258262- }
259263-
260- - std::optional<std::string> module_path =
261- - node::url::FileURLToPath(env, *package_json_url);
262- - std::optional<std::string> module_base;
264+ - if (package_initial_file == "")
265+ - package_initial_file = *initial_file_path + ".js";
263266-
264- - if (!module_path.has_value()) {
265- - return;
266- - }
267+ - std::optional<std::string> module_base;
267268-
268269- if (args.Length() >= 3 && args[2]->IsString()) {
269270- Utf8Value utf8_base_path(isolate, args[2]);
@@ -288,14 +289,14 @@ index b0aa53420c4efb45ccb129cd4db5579de9f3e401..3e3aa383f54f45ab6dd134be29a2dbcf
288289-
289290- THROW_ERR_MODULE_NOT_FOUND(isolate,
290291- "Cannot find package '%s' imported from %s",
291- - *module_path ,
292+ - package_initial_file ,
292293- *module_base);
293294- }
294295-
295296 void BindingData::MemoryInfo(MemoryTracker* tracker) const {
296297 tracker->TrackField("stats_field_array", stats_field_array);
297298 tracker->TrackField("stats_field_bigint_array", stats_field_bigint_array);
298- @@ -3343 ,19 +3212 ,6 @@ InternalFieldInfoBase* BindingData::Serialize(int index) {
299+ @@ -3355 ,19 +3223 ,6 @@ InternalFieldInfoBase* BindingData::Serialize(int index) {
299300 return info;
300301 }
301302
@@ -315,15 +316,15 @@ index b0aa53420c4efb45ccb129cd4db5579de9f3e401..3e3aa383f54f45ab6dd134be29a2dbcf
315316 static void CreatePerIsolateProperties(IsolateData* isolate_data,
316317 Local<ObjectTemplate> target) {
317318 Isolate* isolate = isolate_data->isolate();
318- @@ -3410 ,7 +3266 ,6 @@ static void CreatePerIsolateProperties(IsolateData* isolate_data,
319+ @@ -3422 ,7 +3277 ,6 @@ static void CreatePerIsolateProperties(IsolateData* isolate_data,
319320 SetMethod(isolate, target, "mkdtemp", Mkdtemp);
320321
321322 StatWatcher::CreatePerIsolateProperties(isolate_data, target);
322323- BindingData::CreatePerIsolateProperties(isolate_data, target);
323324
324325 target->Set(
325326 FIXED_ONE_BYTE_STRING(isolate, "kFsStatsFieldsNumber"),
326- @@ -3483 ,7 +3338 ,6 @@ BindingData* FSReqBase::binding_data() {
327+ @@ -3495 ,7 +3349 ,6 @@ BindingData* FSReqBase::binding_data() {
327328 void RegisterExternalReferences(ExternalReferenceRegistry* registry) {
328329 registry->Register(Access);
329330 StatWatcher::RegisterExternalReferences(registry);
@@ -350,7 +351,7 @@ index 6f1b55284db0f4f8c70081b4834a074c717f3cc9..a969fff32bd156aa9393c1db9eec474e
350351 SET_SELF_SIZE(BindingData)
351352 SET_MEMORY_INFO_NAME(BindingData)
352353diff --git a/test/es-module/test-cjs-legacyMainResolve.js b/test/es-module/test-cjs-legacyMainResolve.js
353- index 1dc7d8faafe6eb5cea7e43e9783041f2a994be0d..d86d501689b2b72f2b964d6e2a91c5d36b6b62f5 100644
354+ index 0bfeb567a22b1f9d9116b749d6cb3a8fda6bcc6a..68e655a2528679a3a88ce425d4b11044f37817a2 100644
354355--- a/test/es-module/test-cjs-legacyMainResolve.js
355356+++ b/test/es-module/test-cjs-legacyMainResolve.js
356357@@ -82,7 +82,7 @@ describe('legacyMainResolve', () => {
@@ -362,11 +363,20 @@ index 1dc7d8faafe6eb5cea7e43e9783041f2a994be0d..d86d501689b2b72f2b964d6e2a91c5d3
362363 );
363364 });
364365
366+ @@ -116,7 +116,7 @@ describe('legacyMainResolve', () => {
367+ { main: undefined },
368+ ''
369+ ),
370+ - { code: 'ERR_INVALID_URL' },
371+ + { code: 'ERR_INTERNAL_ASSERTION' },
372+ );
373+ });
374+
365375@@ -129,7 +129,7 @@ describe('legacyMainResolve', () => {
366376 );
367377 assert.throws(
368378 () => legacyMainResolve(packageJsonUrl, { main: null }, packageJsonUrl),
369- - { code: 'ERR_MODULE_NOT_FOUND' },
379+ - { message: /index\.js/, code: 'ERR_MODULE_NOT_FOUND' },
370380+ { code: 'ERR_INTERNAL_ASSERTION' },
371381 );
372382 });
@@ -375,12 +385,21 @@ index 1dc7d8faafe6eb5cea7e43e9783041f2a994be0d..d86d501689b2b72f2b964d6e2a91c5d3
375385 const packageJsonUrl = pathToFileURL('/c/file%20with%20percents/package.json');
376386 assert.throws(
377387 () => legacyMainResolve(packageJsonUrl, { main: null }, packageJsonUrl),
378- - { code: 'ERR_MODULE_NOT_FOUND' },
388+ - { message: /index\.js/, code: 'ERR_MODULE_NOT_FOUND' },
379389+ { code: 'ERR_INTERNAL_ASSERTION' },
380390 );
381391 });
382392
383393@@ -150,7 +150,7 @@ describe('legacyMainResolve', () => {
394+ );
395+ assert.throws(
396+ () => legacyMainResolve(packageJsonUrl, { main: './index.node' }, packageJsonUrl),
397+ - { message: /index\.node/, code: 'ERR_MODULE_NOT_FOUND' },
398+ + { code: 'ERR_INTERNAL_ASSERTION' },
399+ );
400+ });
401+
402+ @@ -163,7 +163,7 @@ describe('legacyMainResolve', () => {
384403 );
385404 assert.throws(
386405 () => legacyMainResolve(packageJsonUrl, { main: null }, undefined),
0 commit comments