file.js (1191B)
1 /** 2 * Any copyright is dedicated to the Public Domain. 3 * http://creativecommons.org/publicdomain/zero/1.0/ 4 */ 5 6 function getBuffer(size) { 7 let buffer = new ArrayBuffer(size); 8 is(buffer.byteLength, size, "Correct byte length"); 9 return buffer; 10 } 11 12 // May be called for any size, but you should call getBuffer() if you know 13 // that size is big and that randomness is not necessary because it is 14 // noticeably faster. 15 function getRandomBuffer(size) { 16 let buffer = getBuffer(size); 17 let view = new Uint8Array(buffer); 18 for (let i = 0; i < size; i++) { 19 view[i] = parseInt(Math.random() * 255); 20 } 21 return buffer; 22 } 23 24 function compareBuffers(buffer1, buffer2) { 25 if (buffer1.byteLength != buffer2.byteLength) { 26 return false; 27 } 28 29 let view1 = buffer1 instanceof Uint8Array ? buffer1 : new Uint8Array(buffer1); 30 let view2 = buffer2 instanceof Uint8Array ? buffer2 : new Uint8Array(buffer2); 31 for (let i = 0; i < buffer1.byteLength; i++) { 32 if (view1[i] != view2[i]) { 33 return false; 34 } 35 } 36 return true; 37 } 38 39 function getBlob(type, object) { 40 return new Blob([object], { type }); 41 } 42 43 function getNullBlob(size) { 44 return getBlob("binary/null", getBuffer(size)); 45 }