Files
tra-analysis/website/functions/node_modules/bytebuffer/src/methods/fill.js
2019-01-06 13:14:45 -06:00

36 lines
1.4 KiB
JavaScript

/**
* Overwrites this ByteBuffer's contents with the specified value. Contents are the bytes between
* {@link ByteBuffer#offset} and {@link ByteBuffer#limit}.
* @param {number|string} value Byte value to fill with. If given as a string, the first character is used.
* @param {number=} begin Begin offset. Will use and increase {@link ByteBuffer#offset} by the number of bytes
* written if omitted. defaults to {@link ByteBuffer#offset}.
* @param {number=} end End offset, defaults to {@link ByteBuffer#limit}.
* @returns {!ByteBuffer} this
* @expose
* @example `someByteBuffer.clear().fill(0)` fills the entire backing buffer with zeroes
*/
ByteBufferPrototype.fill = function(value, begin, end) {
//? RELATIVE(undefined, 'begin');
if (typeof value === 'string' && value.length > 0)
value = value.charCodeAt(0);
if (typeof begin === 'undefined') begin = this.offset;
if (typeof end === 'undefined') end = this.limit;
if (!this.noAssert) {
//? ASSERT_INTEGER('value');
//? ASSERT_RANGE();
}
if (begin >= end)
return this; // Nothing to fill
//? if (NODE) {
this.buffer.fill(value, begin, end);
begin = end;
//? } else if (DATAVIEW) {
while (begin < end) this.view.setUint8(begin++, value);
//? } else {
while (begin < end) this.view[begin++] = value;
//? }
if (relative) this.offset = begin;
return this;
};