Skip to content

Commit cec023c

Browse files
committed
lib: revert compression changes and drop semver-major changes
Signed-off-by: Ali Hassan <ali-hassan27@outlook.com>
1 parent 122294a commit cec023c

4 files changed

Lines changed: 3 additions & 89 deletions

File tree

lib/internal/blob.js

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ const {
4545
const {
4646
isAnyArrayBuffer,
4747
isArrayBufferView,
48-
isSharedArrayBuffer,
4948
} = require('internal/util/types');
5049

5150
const {
@@ -110,21 +109,6 @@ function getSource(source, endings) {
110109
if (isBlob(source))
111110
return [source.size, source[kHandle]];
112111

113-
if (isSharedArrayBuffer(source)) {
114-
throw new ERR_INVALID_ARG_TYPE(
115-
'source',
116-
['ArrayBuffer', 'TypedArray', 'DataView', 'Blob', 'string'],
117-
source,
118-
);
119-
}
120-
if (isArrayBufferView(source) && isSharedArrayBuffer(source.buffer)) {
121-
throw new ERR_INVALID_ARG_VALUE(
122-
'source',
123-
source,
124-
'must not be backed by a SharedArrayBuffer',
125-
);
126-
}
127-
128112
if (isAnyArrayBuffer(source)) {
129113
source = new Uint8Array(source);
130114
} else if (!isArrayBufferView(source)) {

lib/internal/webstreams/compression.js

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ const {
2626
const {
2727
codes: {
2828
ERR_INVALID_ARG_TYPE,
29-
ERR_INVALID_ARG_VALUE,
3029
},
3130
} = require('internal/errors');
3231

@@ -41,20 +40,13 @@ function lazyZlib() {
4140
// Per the Compression Streams spec, chunks must be BufferSource
4241
// (ArrayBuffer or ArrayBufferView not backed by SharedArrayBuffer).
4342
function validateBufferSourceChunk(chunk) {
44-
if (isSharedArrayBuffer(chunk)) {
43+
if (isArrayBufferView(chunk) && isSharedArrayBuffer(chunk.buffer)) {
4544
throw new ERR_INVALID_ARG_TYPE(
4645
'chunk',
4746
['ArrayBuffer', 'Buffer', 'TypedArray', 'DataView'],
4847
chunk,
4948
);
5049
}
51-
if (isArrayBufferView(chunk) && isSharedArrayBuffer(chunk.buffer)) {
52-
throw new ERR_INVALID_ARG_VALUE(
53-
'chunk',
54-
chunk,
55-
'must not be backed by a SharedArrayBuffer',
56-
);
57-
}
5850
}
5951

6052
const formatConverter = createEnumConverter('CompressionFormat', [

test/parallel/test-webapi-sharedarraybuffer-rejection.js

Lines changed: 1 addition & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -3,46 +3,12 @@
33
const common = require('../common');
44
const assert = require('assert');
55
const test = require('node:test');
6-
const { Blob } = require('buffer');
7-
const { ReadableStream, CompressionStream, DecompressionStream } = require('stream/web');
6+
const { ReadableStream } = require('stream/web');
87

98
const sab = new SharedArrayBuffer(8);
109
const sabView = new Uint8Array(sab);
1110
const sabDataView = new DataView(sab);
1211

13-
// -- Blob constructor --
14-
15-
test('Blob rejects raw SharedArrayBuffer', () => {
16-
assert.throws(
17-
() => new Blob([sab]),
18-
{ code: 'ERR_INVALID_ARG_TYPE' },
19-
);
20-
});
21-
22-
test('Blob rejects Uint8Array backed by SharedArrayBuffer', () => {
23-
assert.throws(
24-
() => new Blob([sabView]),
25-
{ code: 'ERR_INVALID_ARG_VALUE' },
26-
);
27-
});
28-
29-
test('Blob rejects DataView backed by SharedArrayBuffer', () => {
30-
assert.throws(
31-
() => new Blob([sabDataView]),
32-
{ code: 'ERR_INVALID_ARG_VALUE' },
33-
);
34-
});
35-
36-
test('Blob still accepts regular ArrayBuffer', () => {
37-
const blob = new Blob([new ArrayBuffer(4)]);
38-
assert.strictEqual(blob.size, 4);
39-
});
40-
41-
test('Blob still accepts regular Uint8Array', () => {
42-
const blob = new Blob([new Uint8Array(4)]);
43-
assert.strictEqual(blob.size, 4);
44-
});
45-
4612
// -- ReadableStreamBYOBReader.read() --
4713

4814
test('ReadableStreamBYOBReader.read() rejects SAB-backed Uint8Array', async () => {
@@ -132,34 +98,6 @@ test('ReadableByteStreamController.enqueue() rejects SAB-backed DataView', async
13298
reader.releaseLock();
13399
});
134100

135-
// -- Compression/Decompression streams reject raw SharedArrayBuffer --
136-
137-
for (const format of ['deflate', 'gzip', 'deflate-raw', 'brotli']) {
138-
test(`CompressionStream rejects raw SharedArrayBuffer for ${format}`, async () => {
139-
const cs = new CompressionStream(format);
140-
const writer = cs.writable.getWriter();
141-
const reader = cs.readable.getReader();
142-
143-
const writePromise = writer.write(sab);
144-
const readPromise = reader.read();
145-
146-
await assert.rejects(writePromise, { code: 'ERR_INVALID_ARG_TYPE' });
147-
await assert.rejects(readPromise, { code: 'ERR_INVALID_ARG_TYPE' });
148-
});
149-
150-
test(`DecompressionStream rejects raw SharedArrayBuffer for ${format}`, async () => {
151-
const ds = new DecompressionStream(format);
152-
const writer = ds.writable.getWriter();
153-
const reader = ds.readable.getReader();
154-
155-
const writePromise = writer.write(sab);
156-
const readPromise = reader.read();
157-
158-
await assert.rejects(writePromise, { code: 'ERR_INVALID_ARG_TYPE' });
159-
await assert.rejects(readPromise, { code: 'ERR_INVALID_ARG_TYPE' });
160-
});
161-
}
162-
163101
// -- SharedWebIDL converters --
164102

165103
const { converters } = require('internal/webidl');

test/parallel/test-webstreams-compression-bad-chunks.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ const badChunks = [
2222
{
2323
name: 'Uint8Array backed by SharedArrayBuffer',
2424
value: new Uint8Array(new SharedArrayBuffer(1)),
25-
code: 'ERR_INVALID_ARG_VALUE',
25+
code: 'ERR_INVALID_ARG_TYPE',
2626
},
2727
];
2828

0 commit comments

Comments
 (0)