Files
node/test/wpt/status/FileAPI/blob.cjs
T
Donghoon Kang a0dd71e6b7 buffer: use Clamp conversion in Blob slice
Align Blob.prototype.slice() with the File API Web IDL definition by
using [Clamp] conversion for the start and end arguments.

This fixes the Blob-slice.any.js WPT expected failures for fractional
start and end values.

Refs: https://www.w3.org/TR/FileAPI/#dfn-Blob
Signed-off-by: HoonDongKang <d159123@naver.com>
PR-URL: https://github.com/nodejs/node/pull/64739
Reviewed-By: Filip Skokan <panva.ip@gmail.com>
Reviewed-By: Matthew Aitken <maitken033380023@gmail.com>
Reviewed-By: Aviv Keller <me@aviv.sh>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Jason Zhang <xzha4350@gmail.com>
2026-07-29 00:54:37 +00:00

40 lines
1.3 KiB
JavaScript

'use strict';
const os = require('node:os');
// On AIX, V8's OS::DecommitPages() has an inherent race condition caused by
// AIX's non-POSIX MAP_FIXED behavior. The implementation must munmap() then
// mmap(), and another thread can steal the address range in between. The
// Blob.arrayBuffer() tests trigger this by creating enough GC pressure
// (especially the concurrent reads test) to hit the race window.
// See deps/v8/src/base/platform/platform-aix.cc, lines 168-203.
const isAIX = os.type() === 'AIX';
const conditionalSkips = {};
if (isAIX) {
conditionalSkips['Blob-array-buffer.any.js'] = {
skip: 'V8 DecommitPages race condition on AIX (munmap/mmap non-atomic)',
};
}
module.exports = {
...conditionalSkips,
'Blob-constructor-dom.window.js': {
skip: 'Depends on DOM API',
},
'Blob-constructor.any.js': {
fail: {
flaky: [
'Passing typed arrays as elements of the blobParts array should work.',
'Passing a Float16Array as element of the blobParts array should work.',
'Passing a Float64Array as element of the blobParts array should work.',
'Passing BigInt typed arrays as elements of the blobParts array should work.',
],
},
},
'Blob-in-worker.worker.js': {
skip: 'Depends on Web Workers API',
},
};