Closed
Description
- v9.1.0:
- Linux 4.10.0-38-generic rename node.js -> io.js #42~16.04.1-Ubuntu SMP x86_64 GNU/Linux:
- zlib:
Zlib throws an exception when trying to decompress a previously compressed empty buffer. The code below does not enter any catch
block in node 8.x.x, but enters all of them in node 9.1.0. It seems like the compression part behaves exactly the same in 8.x.x and 9.1.0, but the decompression part definitely not.
'use strict';
const assert = require('assert');
const zlib = require('zlib');
const emptyBuffer = new Buffer(0);
let compressed, decompressed
//deflateRawSync
compressed = zlib.deflateRawSync(emptyBuffer);
console.log(compressed);
try {
decompressed = zlib.inflateRawSync(compressed);
assert(decompressed.compare(emptyBuffer) === 0);
} catch (e) { console.log('deflateRawSync', e);}
//deflateSync
compressed = zlib.deflateSync(emptyBuffer);
console.log(compressed);
try {
decompressed = zlib.inflateSync(compressed);
assert(decompressed.compare(emptyBuffer) === 0);
} catch (e) { console.log('deflateSync', e);}
//gzipSync
compressed = zlib.gzipSync(emptyBuffer);
console.log(compressed);
try {
decompressed = zlib.gunzipSync(compressed);
assert(decompressed.compare(emptyBuffer) === 0);
} catch (e) { console.log('gzipSync', e);}
(edited by @addaleax: syntax highlighting)