UNPKG

arraybuffer-slice

Version:
43 lines (32 loc) 959 B
// https://github.com/ttaubert/node-arraybuffer-slice // (c) 2014 Tim Taubert <tim@timtaubert.de> // arraybuffer-slice may be freely distributed under the MIT license. (function (undefined) { "use strict"; function clamp(val, length) { val = (val|0) || 0; if (val < 0) { return Math.max(val + length, 0); } return Math.min(val, length); } if (!ArrayBuffer.prototype.slice) { ArrayBuffer.prototype.slice = function (from, to) { var length = this.byteLength; var begin = clamp(from, length); var end = length; if (to !== undefined) { end = clamp(to, length); } if (begin > end) { return new ArrayBuffer(0); } var num = end - begin; var target = new ArrayBuffer(num); var targetArray = new Uint8Array(target); var sourceArray = new Uint8Array(this, begin, num); targetArray.set(sourceArray); return target; }; } })();