compression.js (787B)
1 // |reftest| skip-if(!xulRuntime.shell) 2 3 // Compressed buffers must have magic header and length 4 assertThrows(() => decompressLZ4(new ArrayBuffer())); 5 6 // Compress and decompress take an array buffer, not arrays 7 assertThrows(() => compressLZ4([])); 8 assertThrows(() => decompressLZ4([])); 9 10 // Round trip several buffers 11 let tests = [ 12 new Uint8Array([]), 13 new Uint8Array([0]), 14 new Uint8Array([0, 1, 2, 3]), 15 new Uint8Array(1000), 16 ]; 17 18 for (let test of tests) { 19 let original = test.buffer; 20 21 let compressed = compressLZ4(original); 22 assertEq(compressed instanceof ArrayBuffer, true); 23 24 let decompressed = decompressLZ4(compressed); 25 assertEq(decompressed instanceof ArrayBuffer, true); 26 27 assertEqArray(new Uint8Array(original), new Uint8Array(decompressed)); 28 } 29 30 reportCompare(true,true);