Description
Version
v22.13.0
Platform
Microsoft Windows NT 10.0.26100.0 x64
Subsystem
No response
What steps will reproduce the bug?
Create required files
$ New-Item あ.js
$ New-Item ああ.js
Create main.js
const path = require('path');
const Module = require('module')
const createRequire = Module.createRequire;
// あ.js is fail, but ああ.js is success
const resolved = path.resolve('あ.js');
console.log(resolved);
const req = createRequire(resolved);
// some package...
const result = req.resolve('_');
console.log(result);
Run
$ node main.js
How often does it reproduce? Is there a required condition?
It is always reproduced when Node v22 is used under Windows in a Japanese environment.
Segmentation fault does not occur depending on the file name passed.
Not reproduced in Node v20.
What is the expected behavior? Why is that the expected behavior?
No segmentation fault shall occur.
This is expected to be fixed, since tools such as eslint cannot be used if files containing Japanese characters exist, since the same processing as the reproduced code is performed inside eslint.
What do you see instead?
No output
Additional information
It's repro repository.
https://github.com/yamachu/node-require-japanese-repro
And
Node 22.2.0 Passed
Node 22.3.0 Failed
https://nodejs.org/download/nightly/v23.0.0-nightly20240521786cb42956/ is Passed
https://nodejs.org/download/nightly/v23.0.0-nightly202405224a54a80aa3/ is Failed