diff -up ./src/3rdparty/chromium/third_party/devtools-frontend/src/scripts/build/compress_files.js.seq1 ./src/3rdparty/chromium/third_party/devtools-frontend/src/scripts/build/compress_files.js --- ./src/3rdparty/chromium/third_party/devtools-frontend/src/scripts/build/compress_files.js.seq1 2025-05-29 10:27:28.000000000 +0900 +++ ./src/3rdparty/chromium/third_party/devtools-frontend/src/scripts/build/compress_files.js 2026-05-11 02:52:23.610961020 +0900 @@ -7,29 +7,32 @@ const crypto = require('crypto'); const zlib = require('zlib'); const {pipeline, Readable} = require('stream'); -const {promises: pfs} = fs; +//const {promises: pfs} = fs; +const pfs = fs; function sha1(data) { return crypto.createHash('sha1').update(data, 'binary').digest('hex'); } -async function readTextFile(filename) { - return pfs.readFile(filename, 'utf8'); +/*async*/ function readTextFile(filename) { + return pfs.readFileSync(filename, 'utf8', (err, data) => { + if(err) { console.error("Error: ",err); } + }); } function fileExists(filename) { return fs.existsSync(filename); } -async function writeTextFile(filename, data) { - return pfs.writeFile(filename, data, 'utf8'); +/*async*/ function writeTextFile(filename, data) { + return pfs.writeFileSync(filename, data); } -async function readBinaryFile(filename) { - return pfs.readFile(filename); +/*async*/ function readBinaryFile(filename) { + return pfs.readFileSync(filename); } -async function brotli(sourceData, compressedFilename) { +/*async*/ function brotli(sourceData, compressedFilename) { const sizeBytes = sourceData.length; // This replicates the following compression logic: @@ -51,34 +54,57 @@ async function brotli(sourceData, compre const output = fs.createWriteStream(compressedFilename); output.write(Buffer.from(brotliConst)); output.write(Buffer.from(sizeHeader)); + + /* return new Promise((resolve, reject) => { pipeline(Readable.from(sourceData), zlib.createBrotliCompress(), output, err => { return err ? reject(err) : resolve(); }); }); + */ + /* + pipeline(Readable.from(sourceData), zlib.createBrotliCompress(), output, err => { + if (err) { console.error("Failed: ",err); } + }); + */ + output.write(zlib.brotliCompressSync(sourceData)); + output.end(); //needed to keep memory usage below 240kB } -async function compressFile(filename) { +/*await*/ function compressFile(filename) { const compressedFilename = filename + '.compressed'; const hashFilename = filename + '.hash'; - const prevHash = fileExists(hashFilename) ? await readTextFile(hashFilename) : ''; - const sourceData = await readBinaryFile(filename); + const prevHash = fileExists(hashFilename) ? /*await*/ readTextFile(hashFilename) : ''; + sourceData = /*await*/ readBinaryFile(filename); const currHash = sha1(sourceData); if (prevHash !== currHash) { - await writeTextFile(hashFilename, currHash); - await brotli(sourceData, compressedFilename); + /*await*/ writeTextFile(hashFilename, currHash); + /*await*/ brotli(sourceData, compressedFilename); } + sourceData = null; } -async function main(argv) { +function main(argv) { const fileListPosition = argv.indexOf('--file_list'); const fileList = argv[fileListPosition + 1]; - const fileListContents = await readTextFile(fileList); + const fileListContents = /*await*/ readTextFile(fileList); const files = fileListContents.split(' '); - await Promise.all(files.map(filename => filename.trim()).map(compressFile)); + console.error("Processing: files: ",files); + + // map() will cause FAILED: due to memory shortage in 32bit. + //await Promise.all(files.map(filename => filename.trim()).map(compressFile)); + // do it sequentially + for (let tfn of files) { + tfn = tfn.trim(); + console.error("Processing: ",tfn); + compressFile(tfn); + } } +/* main(process.argv).catch(err => { console.log('compress_files.js failure', err); process.exit(1); }); +*/ +main(process.argv);