Merge pull request #16678 from Snuffleupagus/writeStream-tweaks

Tweak the `writeStream` implementation slightly
This commit is contained in:
Jonas Jenwald 2023-07-12 21:43:01 +02:00 committed by GitHub
commit b449da31ca
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -51,16 +51,10 @@ async function writeStream(stream, buffer, transform) {
}
const { dict } = stream;
// eslint-disable-next-line no-undef
if (typeof CompressionStream === "undefined") {
dict.set("Length", string.length);
await writeDict(dict, buffer, transform);
buffer.push(" stream\n", string, "\nendstream");
return;
}
const filter = await dict.getAsync("Filter");
const params = await dict.getAsync("DecodeParms");
const [filter, params] = await Promise.all([
dict.getAsync("Filter"),
dict.getAsync("DecodeParms"),
]);
const filterZero = Array.isArray(filter)
? await dict.xref.fetchIfRefAsync(filter[0])
@ -71,7 +65,11 @@ async function writeStream(stream, buffer, transform) {
// The number 256 is arbitrary, but it should be reasonable.
const MIN_LENGTH_FOR_COMPRESSING = 256;
if (string.length >= MIN_LENGTH_FOR_COMPRESSING || isFilterZeroFlateDecode) {
if (
// eslint-disable-next-line no-undef
typeof CompressionStream !== "undefined" &&
(string.length >= MIN_LENGTH_FOR_COMPRESSING || isFilterZeroFlateDecode)
) {
try {
const byteArray = stringToBytes(string);
// eslint-disable-next-line no-undef