|
|
@ -536,28 +536,36 @@ Buffer.prototype.asciiWrite = function(string, offset) { |
|
|
|
return this.write(string, offset, 'ascii'); |
|
|
|
}; |
|
|
|
|
|
|
|
Buffer.prototype.readUInt8NoChk = function(offset, bigEndian) { |
|
|
|
Buffer.prototype.readUInt8 = function(offset, noAssert) { |
|
|
|
var buffer = this; |
|
|
|
|
|
|
|
if (!noAssert) { |
|
|
|
assert.ok(offset !== undefined && offset !== null, |
|
|
|
'missing offset'); |
|
|
|
|
|
|
|
assert.ok(offset < buffer.length, |
|
|
|
'Trying to read beyond buffer length'); |
|
|
|
} |
|
|
|
|
|
|
|
return buffer[offset]; |
|
|
|
}; |
|
|
|
|
|
|
|
Buffer.prototype.readUInt8 = function(offset, bigEndian) { |
|
|
|
var buffer = this; |
|
|
|
function readUInt16(buffer, offset, isBigEndian, noAssert) { |
|
|
|
var val = 0; |
|
|
|
|
|
|
|
assert.ok(offset !== undefined && offset !== null, |
|
|
|
'missing offset'); |
|
|
|
|
|
|
|
assert.ok(offset < buffer.length, |
|
|
|
'Trying to read beyond buffer length'); |
|
|
|
if (!noAssert) { |
|
|
|
assert.ok(typeof (isBigEndian) === 'boolean', |
|
|
|
'missing or invalid endian'); |
|
|
|
|
|
|
|
return buffer.readUInt8NoChk(offset, bigEndian); |
|
|
|
}; |
|
|
|
assert.ok(offset !== undefined && offset !== null, |
|
|
|
'missing offset'); |
|
|
|
|
|
|
|
Buffer.prototype.readUInt16NoChk = function(offset, bigEndian) { |
|
|
|
var val = 0; |
|
|
|
var buffer = this; |
|
|
|
assert.ok(offset + 1 < buffer.length, |
|
|
|
'Trying to read beyond buffer length'); |
|
|
|
} |
|
|
|
|
|
|
|
if (bigEndian) { |
|
|
|
if (isBigEndian) { |
|
|
|
val = buffer[offset] << 8; |
|
|
|
val |= buffer[offset + 1]; |
|
|
|
} else { |
|
|
@ -566,28 +574,31 @@ Buffer.prototype.readUInt16NoChk = function(offset, bigEndian) { |
|
|
|
} |
|
|
|
|
|
|
|
return val; |
|
|
|
}; |
|
|
|
} |
|
|
|
|
|
|
|
Buffer.prototype.readUInt16 = function(offset, bigEndian) { |
|
|
|
var buffer = this; |
|
|
|
Buffer.prototype.readUInt16LE = function(offset, noAssert) { |
|
|
|
return readUInt16(this, offset, false, noAssert); |
|
|
|
}; |
|
|
|
|
|
|
|
assert.ok(typeof (bigEndian) === 'boolean', |
|
|
|
'missing or invalid endian'); |
|
|
|
Buffer.prototype.readUInt16BE = function(offset, noAssert) { |
|
|
|
return readUInt16(this, offset, true, noAssert); |
|
|
|
}; |
|
|
|
|
|
|
|
assert.ok(offset !== undefined && offset !== null, |
|
|
|
'missing offset'); |
|
|
|
function readUInt32(buffer, offset, isBigEndian, noAssert) { |
|
|
|
var val = 0; |
|
|
|
|
|
|
|
assert.ok(offset + 1 < buffer.length, |
|
|
|
'Trying to read beyond buffer length'); |
|
|
|
if (!noAssert) { |
|
|
|
assert.ok(typeof (isBigEndian) === 'boolean', |
|
|
|
'missing or invalid endian'); |
|
|
|
|
|
|
|
return buffer.readUInt16NoChk(offset, bigEndian); |
|
|
|
}; |
|
|
|
assert.ok(offset !== undefined && offset !== null, |
|
|
|
'missing offset'); |
|
|
|
|
|
|
|
Buffer.prototype.readUInt32NoChk = function(offset, bigEndian) { |
|
|
|
var val = 0; |
|
|
|
var buffer = this; |
|
|
|
assert.ok(offset + 3 < buffer.length, |
|
|
|
'Trying to read beyond buffer length'); |
|
|
|
} |
|
|
|
|
|
|
|
if (bigEndian) { |
|
|
|
if (isBigEndian) { |
|
|
|
val = buffer[offset + 1] << 16; |
|
|
|
val |= buffer[offset + 2] << 8; |
|
|
|
val |= buffer[offset + 3]; |
|
|
@ -600,22 +611,14 @@ Buffer.prototype.readUInt32NoChk = function(offset, bigEndian) { |
|
|
|
} |
|
|
|
|
|
|
|
return val; |
|
|
|
}; |
|
|
|
|
|
|
|
Buffer.prototype.readUInt32 = function(offset, bigEndian) { |
|
|
|
var val = 0; |
|
|
|
var buffer = this; |
|
|
|
|
|
|
|
assert.ok(typeof (bigEndian) === 'boolean', |
|
|
|
'missing or invalid endian'); |
|
|
|
|
|
|
|
assert.ok(offset !== undefined && offset !== null, |
|
|
|
'missing offset'); |
|
|
|
} |
|
|
|
|
|
|
|
assert.ok(offset + 3 < buffer.length, |
|
|
|
'Trying to read beyond buffer length'); |
|
|
|
Buffer.prototype.readUInt32LE = function(offset, noAssert) { |
|
|
|
return readUInt32(this, offset, false, noAssert); |
|
|
|
}; |
|
|
|
|
|
|
|
return buffer.readUInt32NoChk(offset, bigEndian); |
|
|
|
Buffer.prototype.readUInt32BE = function(offset, noAssert) { |
|
|
|
return readUInt32(this, offset, true, noAssert); |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
@ -664,15 +667,17 @@ Buffer.prototype.readUInt32 = function(offset, bigEndian) { |
|
|
|
* (0x007f + 1) * -1 |
|
|
|
* (0x0080) * -1 |
|
|
|
*/ |
|
|
|
Buffer.prototype.readInt8 = function(offset, bigEndian) { |
|
|
|
Buffer.prototype.readInt8 = function(offset, noAssert) { |
|
|
|
var buffer = this; |
|
|
|
var neg; |
|
|
|
|
|
|
|
assert.ok(offset !== undefined && offset !== null, |
|
|
|
'missing offset'); |
|
|
|
if (!noAssert) { |
|
|
|
assert.ok(offset !== undefined && offset !== null, |
|
|
|
'missing offset'); |
|
|
|
|
|
|
|
assert.ok(offset < buffer.length, |
|
|
|
'Trying to read beyond buffer length'); |
|
|
|
assert.ok(offset < buffer.length, |
|
|
|
'Trying to read beyond buffer length'); |
|
|
|
} |
|
|
|
|
|
|
|
neg = buffer[offset] & 0x80; |
|
|
|
if (!neg) { |
|
|
@ -682,77 +687,108 @@ Buffer.prototype.readInt8 = function(offset, bigEndian) { |
|
|
|
return ((0xff - buffer[offset] + 1) * -1); |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
Buffer.prototype.readInt16 = function(offset, bigEndian) { |
|
|
|
var buffer = this; |
|
|
|
function readInt16(buffer, offset, isBigEndian, noAssert) { |
|
|
|
var neg; |
|
|
|
|
|
|
|
assert.ok(typeof (bigEndian) === 'boolean', |
|
|
|
'missing or invalid endian'); |
|
|
|
if (!noAssert) { |
|
|
|
assert.ok(typeof (isBigEndian) === 'boolean', |
|
|
|
'missing or invalid endian'); |
|
|
|
|
|
|
|
assert.ok(offset !== undefined && offset !== null, |
|
|
|
'missing offset'); |
|
|
|
assert.ok(offset !== undefined && offset !== null, |
|
|
|
'missing offset'); |
|
|
|
|
|
|
|
assert.ok(offset + 1 < buffer.length, |
|
|
|
'Trying to read beyond buffer length'); |
|
|
|
assert.ok(offset + 1 < buffer.length, |
|
|
|
'Trying to read beyond buffer length'); |
|
|
|
} |
|
|
|
|
|
|
|
val = buffer.readUInt16NoChk(offset, bigEndian); |
|
|
|
val = readUInt16(buffer, offset, isBigEndian, noAssert); |
|
|
|
neg = val & 0x8000; |
|
|
|
if (!neg) { |
|
|
|
return val; |
|
|
|
} |
|
|
|
|
|
|
|
return (0xffff - val + 1) * -1; |
|
|
|
} |
|
|
|
|
|
|
|
Buffer.prototype.readInt16LE = function(offset, noAssert) { |
|
|
|
return readInt16(this, offset, false, noAssert); |
|
|
|
}; |
|
|
|
|
|
|
|
Buffer.prototype.readInt16BE = function(offset, noAssert) { |
|
|
|
return readInt16(this, offset, true, noAssert); |
|
|
|
}; |
|
|
|
|
|
|
|
Buffer.prototype.readInt32 = function(offset, bigEndian) { |
|
|
|
var buffer = this; |
|
|
|
function readInt32(buffer, offset, isBigEndian, noAssert) { |
|
|
|
var neg; |
|
|
|
|
|
|
|
assert.ok(typeof (bigEndian) === 'boolean', |
|
|
|
'missing or invalid endian'); |
|
|
|
if (!noAssert) { |
|
|
|
assert.ok(typeof (isBigEndian) === 'boolean', |
|
|
|
'missing or invalid endian'); |
|
|
|
|
|
|
|
assert.ok(offset !== undefined && offset !== null, |
|
|
|
'missing offset'); |
|
|
|
assert.ok(offset !== undefined && offset !== null, |
|
|
|
'missing offset'); |
|
|
|
|
|
|
|
assert.ok(offset + 3 < buffer.length, |
|
|
|
'Trying to read beyond buffer length'); |
|
|
|
assert.ok(offset + 3 < buffer.length, |
|
|
|
'Trying to read beyond buffer length'); |
|
|
|
} |
|
|
|
|
|
|
|
val = buffer.readUInt32NoChk(offset, bigEndian); |
|
|
|
val = readUInt32(buffer, offset, isBigEndian, noAssert); |
|
|
|
neg = val & 0x80000000; |
|
|
|
if (!neg) { |
|
|
|
return (val); |
|
|
|
} |
|
|
|
|
|
|
|
return (0xffffffff - val + 1) * -1; |
|
|
|
}; |
|
|
|
} |
|
|
|
|
|
|
|
Buffer.prototype.readInt32LE = function(offset, noAssert) { |
|
|
|
return readInt32(this, offset, false, noAssert); |
|
|
|
}; |
|
|
|
|
|
|
|
Buffer.prototype.readFloat = function(offset, bigEndian) { |
|
|
|
var buffer = this; |
|
|
|
Buffer.prototype.readInt32BE = function(offset, noAssert) { |
|
|
|
return readInt32(this, offset, true, noAssert); |
|
|
|
}; |
|
|
|
|
|
|
|
assert.ok(typeof (bigEndian) === 'boolean', |
|
|
|
'missing or invalid endian'); |
|
|
|
function readFloat(buffer, offset, isBigEndian, noAssert) { |
|
|
|
if (!noAssert) { |
|
|
|
assert.ok(typeof (isBigEndian) === 'boolean', |
|
|
|
'missing or invalid endian'); |
|
|
|
|
|
|
|
assert.ok(offset + 3 < buffer.length, |
|
|
|
'Trying to read beyond buffer length'); |
|
|
|
assert.ok(offset + 3 < buffer.length, |
|
|
|
'Trying to read beyond buffer length'); |
|
|
|
} |
|
|
|
|
|
|
|
return require('buffer_ieee754').readIEEE754(buffer, offset, bigEndian, |
|
|
|
return require('buffer_ieee754').readIEEE754(buffer, offset, isBigEndian, |
|
|
|
23, 4); |
|
|
|
} |
|
|
|
|
|
|
|
Buffer.prototype.readFloatLE = function(offset, noAssert) { |
|
|
|
return readFloat(this, offset, false, noAssert); |
|
|
|
}; |
|
|
|
|
|
|
|
Buffer.prototype.readDouble = function(offset, bigEndian) { |
|
|
|
var buffer = this; |
|
|
|
Buffer.prototype.readFloatBE = function(offset, noAssert) { |
|
|
|
return readFloat(this, offset, true, noAssert); |
|
|
|
}; |
|
|
|
|
|
|
|
assert.ok(typeof (bigEndian) === 'boolean', |
|
|
|
'missing or invalid endian'); |
|
|
|
function readDouble(buffer, offset, isBigEndian, noAssert) { |
|
|
|
if (!noAssert) { |
|
|
|
assert.ok(typeof (isBigEndian) === 'boolean', |
|
|
|
'missing or invalid endian'); |
|
|
|
|
|
|
|
assert.ok(offset + 7 < buffer.length, |
|
|
|
'Trying to read beyond buffer length'); |
|
|
|
assert.ok(offset + 7 < buffer.length, |
|
|
|
'Trying to read beyond buffer length'); |
|
|
|
} |
|
|
|
|
|
|
|
return require('buffer_ieee754').readIEEE754(buffer, offset, bigEndian, |
|
|
|
return require('buffer_ieee754').readIEEE754(buffer, offset, isBigEndian, |
|
|
|
52, 8); |
|
|
|
} |
|
|
|
|
|
|
|
Buffer.prototype.readDoubleLE = function(offset, noAssert) { |
|
|
|
return readDouble(this, offset, false, noAssert); |
|
|
|
}; |
|
|
|
|
|
|
|
Buffer.prototype.readDoubleBE = function(offset, noAssert) { |
|
|
|
return readDouble(this, offset, true, noAssert); |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
@ -777,68 +813,77 @@ function verifuint(value, max) { |
|
|
|
assert.ok(Math.floor(value) === value, 'value has a fractional component'); |
|
|
|
} |
|
|
|
|
|
|
|
Buffer.prototype.writeUInt8NoChk = function(value, offset, bigEndian) { |
|
|
|
Buffer.prototype.writeUInt8 = function(value, offset, noAssert) { |
|
|
|
var buffer = this; |
|
|
|
buffer[offset] = value; |
|
|
|
}; |
|
|
|
|
|
|
|
Buffer.prototype.writeUInt8 = function(value, offset, bigEndian) { |
|
|
|
var buffer = this; |
|
|
|
if (!noAssert) { |
|
|
|
assert.ok(value !== undefined && value !== null, |
|
|
|
'missing value'); |
|
|
|
|
|
|
|
assert.ok(value !== undefined && value !== null, |
|
|
|
'missing value'); |
|
|
|
assert.ok(offset !== undefined && offset !== null, |
|
|
|
'missing offset'); |
|
|
|
|
|
|
|
assert.ok(typeof (bigEndian) === 'boolean', |
|
|
|
'missing or invalid endian'); |
|
|
|
assert.ok(offset < buffer.length, |
|
|
|
'trying to write beyond buffer length'); |
|
|
|
|
|
|
|
assert.ok(offset !== undefined && offset !== null, |
|
|
|
'missing offset'); |
|
|
|
verifuint(value, 0xff); |
|
|
|
} |
|
|
|
|
|
|
|
assert.ok(offset < buffer.length, |
|
|
|
'trying to write beyond buffer length'); |
|
|
|
buffer[offset] = value; |
|
|
|
}; |
|
|
|
|
|
|
|
verifuint(value, 0xff); |
|
|
|
function writeUInt16(buffer, value, offset, isBigEndian, noAssert) { |
|
|
|
if (!noAssert) { |
|
|
|
assert.ok(value !== undefined && value !== null, |
|
|
|
'missing value'); |
|
|
|
|
|
|
|
buffer.writeUInt8NoChk(value, offset, bigEndian); |
|
|
|
}; |
|
|
|
assert.ok(typeof (isBigEndian) === 'boolean', |
|
|
|
'missing or invalid endian'); |
|
|
|
|
|
|
|
Buffer.prototype.writeUInt16NoChk = function(value, offset, bigEndian) { |
|
|
|
var buffer = this; |
|
|
|
assert.ok(offset !== undefined && offset !== null, |
|
|
|
'missing offset'); |
|
|
|
|
|
|
|
if (bigEndian) { |
|
|
|
assert.ok(offset + 1 < buffer.length, |
|
|
|
'trying to write beyond buffer length'); |
|
|
|
|
|
|
|
verifuint(value, 0xffff); |
|
|
|
} |
|
|
|
|
|
|
|
if (isBigEndian) { |
|
|
|
buffer[offset] = (value & 0xff00) >>> 8; |
|
|
|
buffer[offset + 1] = value & 0x00ff; |
|
|
|
} else { |
|
|
|
buffer[offset + 1] = (value & 0xff00) >>> 8; |
|
|
|
buffer[offset] = value & 0x00ff; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
Buffer.prototype.writeUInt16LE = function(value, offset, noAssert) { |
|
|
|
writeUInt16(this, value, offset, false, noAssert); |
|
|
|
}; |
|
|
|
|
|
|
|
Buffer.prototype.writeUInt16 = function(value, offset, bigEndian) { |
|
|
|
var buffer = this; |
|
|
|
|
|
|
|
assert.ok(value !== undefined && value !== null, |
|
|
|
'missing value'); |
|
|
|
|
|
|
|
assert.ok(typeof (bigEndian) === 'boolean', |
|
|
|
'missing or invalid endian'); |
|
|
|
Buffer.prototype.writeUInt16BE = function(value, offset, noAssert) { |
|
|
|
writeUInt16(this, value, offset, true, noAssert); |
|
|
|
}; |
|
|
|
|
|
|
|
assert.ok(offset !== undefined && offset !== null, |
|
|
|
'missing offset'); |
|
|
|
function writeUInt32(buffer, value, offset, isBigEndian, noAssert) { |
|
|
|
if (!noAssert) { |
|
|
|
assert.ok(value !== undefined && value !== null, |
|
|
|
'missing value'); |
|
|
|
|
|
|
|
assert.ok(offset + 1 < buffer.length, |
|
|
|
'trying to write beyond buffer length'); |
|
|
|
assert.ok(typeof (isBigEndian) === 'boolean', |
|
|
|
'missing or invalid endian'); |
|
|
|
|
|
|
|
verifuint(value, 0xffff); |
|
|
|
assert.ok(offset !== undefined && offset !== null, |
|
|
|
'missing offset'); |
|
|
|
|
|
|
|
buffer.writeUInt16NoChk(value, offset, bigEndian); |
|
|
|
}; |
|
|
|
assert.ok(offset + 3 < buffer.length, |
|
|
|
'trying to write beyond buffer length'); |
|
|
|
|
|
|
|
Buffer.prototype.writeUInt32NoChk = function(value, offset, bigEndian) { |
|
|
|
var buffer = this; |
|
|
|
verifuint(value, 0xffffffff); |
|
|
|
} |
|
|
|
|
|
|
|
if (bigEndian) { |
|
|
|
if (isBigEndian) { |
|
|
|
buffer[offset] = (value >>> 24) & 0xff; |
|
|
|
buffer[offset + 1] = (value >>> 16) & 0xff; |
|
|
|
buffer[offset + 2] = (value >>> 8) & 0xff; |
|
|
@ -849,26 +894,14 @@ Buffer.prototype.writeUInt32NoChk = function(value, offset, bigEndian) { |
|
|
|
buffer[offset + 1] = (value >>> 8) & 0xff; |
|
|
|
buffer[offset] = value & 0xff; |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
Buffer.prototype.writeUInt32 = function(value, offset, bigEndian) { |
|
|
|
var buffer = this; |
|
|
|
|
|
|
|
assert.ok(value !== undefined && value !== null, |
|
|
|
'missing value'); |
|
|
|
|
|
|
|
assert.ok(typeof (bigEndian) === 'boolean', |
|
|
|
'missing or invalid endian'); |
|
|
|
|
|
|
|
assert.ok(offset !== undefined && offset !== null, |
|
|
|
'missing offset'); |
|
|
|
|
|
|
|
assert.ok(offset + 3 < buffer.length, |
|
|
|
'trying to write beyond buffer length'); |
|
|
|
} |
|
|
|
|
|
|
|
verifuint(value, 0xffffffff); |
|
|
|
Buffer.prototype.writeUInt32LE = function(value, offset, noAssert) { |
|
|
|
writeUInt32(this, value, offset, false, noAssert); |
|
|
|
}; |
|
|
|
|
|
|
|
buffer.writeUInt32NoChk(value, offset, bigEndian); |
|
|
|
Buffer.prototype.writeUInt32BE = function(value, offset, noAssert) { |
|
|
|
writeUInt32(this, value, offset, true, noAssert); |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
@ -923,7 +956,6 @@ function verifsint(value, max, min) { |
|
|
|
assert.ok(Math.floor(value) === value, 'value has a fractional component'); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function verifIEEE754(value, max, min) { |
|
|
|
assert.ok(typeof (value) == 'number', |
|
|
|
'cannot write a non-number as a number'); |
|
|
@ -933,119 +965,147 @@ function verifIEEE754(value, max, min) { |
|
|
|
assert.ok(value >= min, 'value smaller than minimum allowed value'); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
Buffer.prototype.writeInt8 = function(value, offset, bigEndian) { |
|
|
|
Buffer.prototype.writeInt8 = function(value, offset, noAssert) { |
|
|
|
var buffer = this; |
|
|
|
|
|
|
|
assert.ok(value !== undefined && value !== null, |
|
|
|
'missing value'); |
|
|
|
if (!noAssert) { |
|
|
|
assert.ok(value !== undefined && value !== null, |
|
|
|
'missing value'); |
|
|
|
|
|
|
|
assert.ok(typeof (bigEndian) === 'boolean', |
|
|
|
'missing or invalid endian'); |
|
|
|
assert.ok(offset !== undefined && offset !== null, |
|
|
|
'missing offset'); |
|
|
|
|
|
|
|
assert.ok(offset !== undefined && offset !== null, |
|
|
|
'missing offset'); |
|
|
|
assert.ok(offset < buffer.length, |
|
|
|
'Trying to write beyond buffer length'); |
|
|
|
|
|
|
|
assert.ok(offset < buffer.length, |
|
|
|
'Trying to write beyond buffer length'); |
|
|
|
|
|
|
|
verifsint(value, 0x7f, -0xf0); |
|
|
|
verifsint(value, 0x7f, -0xf0); |
|
|
|
} |
|
|
|
|
|
|
|
if (value >= 0) { |
|
|
|
buffer.writeUInt8NoChk(value, offset, bigEndian); |
|
|
|
buffer.writeUInt8(value, offset, noAssert); |
|
|
|
} else { |
|
|
|
buffer.writeUInt8NoChk(0xff + value + 1, offset, bigEndian); |
|
|
|
buffer.writeUInt8(0xff + value + 1, offset, noAssert); |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
function writeInt16(buffer, value, offset, isBigEndian, noAssert) { |
|
|
|
if (!noAssert) { |
|
|
|
assert.ok(value !== undefined && value !== null, |
|
|
|
'missing value'); |
|
|
|
|
|
|
|
Buffer.prototype.writeInt16 = function(value, offset, bigEndian) { |
|
|
|
var buffer = this; |
|
|
|
|
|
|
|
assert.ok(value !== undefined && value !== null, |
|
|
|
'missing value'); |
|
|
|
|
|
|
|
assert.ok(typeof (bigEndian) === 'boolean', |
|
|
|
'missing or invalid endian'); |
|
|
|
assert.ok(typeof (isBigEndian) === 'boolean', |
|
|
|
'missing or invalid endian'); |
|
|
|
|
|
|
|
assert.ok(offset !== undefined && offset !== null, |
|
|
|
'missing offset'); |
|
|
|
assert.ok(offset !== undefined && offset !== null, |
|
|
|
'missing offset'); |
|
|
|
|
|
|
|
assert.ok(offset + 1 < buffer.length, |
|
|
|
'Trying to write beyond buffer length'); |
|
|
|
assert.ok(offset + 1 < buffer.length, |
|
|
|
'Trying to write beyond buffer length'); |
|
|
|
|
|
|
|
verifsint(value, 0x7fff, -0xf000); |
|
|
|
verifsint(value, 0x7fff, -0xf000); |
|
|
|
} |
|
|
|
|
|
|
|
if (value >= 0) { |
|
|
|
buffer.writeUInt16NoChk(value, offset, bigEndian); |
|
|
|
writeUInt16(buffer, value, offset, isBigEndian, noAssert); |
|
|
|
} else { |
|
|
|
buffer.writeUInt16NoChk(0xffff + value + 1, offset, bigEndian); |
|
|
|
writeUInt16(buffer, 0xffff + value + 1, offset, isBigEndian, noAssert); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
Buffer.prototype.writeInt16LE = function(value, offset, noAssert) { |
|
|
|
writeInt16(this, value, offset, false, noAssert); |
|
|
|
}; |
|
|
|
|
|
|
|
Buffer.prototype.writeInt16BE = function(value, offset, noAssert) { |
|
|
|
writeInt16(this, value, offset, true, noAssert); |
|
|
|
}; |
|
|
|
|
|
|
|
Buffer.prototype.writeInt32 = function(value, offset, bigEndian) { |
|
|
|
var buffer = this; |
|
|
|
function writeInt32(buffer, value, offset, isBigEndian, noAssert) { |
|
|
|
if (!noAssert) { |
|
|
|
assert.ok(value !== undefined && value !== null, |
|
|
|
'missing value'); |
|
|
|
|
|
|
|
assert.ok(value !== undefined && value !== null, |
|
|
|
'missing value'); |
|
|
|
assert.ok(typeof (isBigEndian) === 'boolean', |
|
|
|
'missing or invalid endian'); |
|
|
|
|
|
|
|
assert.ok(typeof (bigEndian) === 'boolean', |
|
|
|
'missing or invalid endian'); |
|
|
|
assert.ok(offset !== undefined && offset !== null, |
|
|
|
'missing offset'); |
|
|
|
|
|
|
|
assert.ok(offset !== undefined && offset !== null, |
|
|
|
'missing offset'); |
|
|
|
assert.ok(offset + 3 < buffer.length, |
|
|
|
'Trying to write beyond buffer length'); |
|
|
|
|
|
|
|
assert.ok(offset + 3 < buffer.length, |
|
|
|
'Trying to write beyond buffer length'); |
|
|
|
verifsint(value, 0x7fffffff, -0xf0000000); |
|
|
|
} |
|
|
|
|
|
|
|
verifsint(value, 0x7fffffff, -0xf0000000); |
|
|
|
if (value >= 0) { |
|
|
|
buffer.writeUInt32NoChk(value, offset, bigEndian); |
|
|
|
writeUInt32(buffer, value, offset, isBigEndian, noAssert); |
|
|
|
} else { |
|
|
|
buffer.writeUInt32NoChk(0xffffffff + value + 1, offset, bigEndian); |
|
|
|
writeUInt32(buffer, 0xffffffff + value + 1, offset, isBigEndian, noAssert); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
Buffer.prototype.writeInt32LE = function(value, offset, noAssert) { |
|
|
|
writeInt32(this, value, offset, false, noAssert); |
|
|
|
}; |
|
|
|
|
|
|
|
Buffer.prototype.writeInt32BE = function(value, offset, noAssert) { |
|
|
|
writeInt32(this, value, offset, true, noAssert); |
|
|
|
}; |
|
|
|
|
|
|
|
Buffer.prototype.writeFloat = function(value, offset, bigEndian) { |
|
|
|
var buffer = this; |
|
|
|
function writeFloat(buffer, value, offset, isBigEndian, noAssert) { |
|
|
|
if (!noAssert) { |
|
|
|
assert.ok(value !== undefined && value !== null, |
|
|
|
'missing value'); |
|
|
|
|
|
|
|
assert.ok(value !== undefined && value !== null, |
|
|
|
'missing value'); |
|
|
|
assert.ok(typeof (isBigEndian) === 'boolean', |
|
|
|
'missing or invalid endian'); |
|
|
|
|
|
|
|
assert.ok(typeof (bigEndian) === 'boolean', |
|
|
|
'missing or invalid endian'); |
|
|
|
assert.ok(offset !== undefined && offset !== null, |
|
|
|
'missing offset'); |
|
|
|
|
|
|
|
assert.ok(offset !== undefined && offset !== null, |
|
|
|
'missing offset'); |
|
|
|
assert.ok(offset + 3 < buffer.length, |
|
|
|
'Trying to write beyond buffer length'); |
|
|
|
|
|
|
|
assert.ok(offset + 3 < buffer.length, |
|
|
|
'Trying to write beyond buffer length'); |
|
|
|
verifIEEE754(value, 3.4028234663852886e+38, -3.4028234663852886e+38); |
|
|
|
} |
|
|
|
|
|
|
|
verifIEEE754(value, 3.4028234663852886e+38, -3.4028234663852886e+38); |
|
|
|
require('buffer_ieee754').writeIEEE754(buffer, value, offset, bigEndian, |
|
|
|
require('buffer_ieee754').writeIEEE754(buffer, value, offset, isBigEndian, |
|
|
|
23, 4); |
|
|
|
} |
|
|
|
|
|
|
|
Buffer.prototype.writeFloatLE = function(value, offset, noAssert) { |
|
|
|
writeFloat(this, value, offset, false, noAssert); |
|
|
|
}; |
|
|
|
|
|
|
|
Buffer.prototype.writeFloatBE = function(value, offset, noAssert) { |
|
|
|
writeFloat(this, value, offset, true, noAssert); |
|
|
|
}; |
|
|
|
|
|
|
|
Buffer.prototype.writeDouble = function(value, offset, bigEndian) { |
|
|
|
var buffer = this; |
|
|
|
function writeDouble(buffer, value, offset, isBigEndian, noAssert) { |
|
|
|
if (!noAssert) { |
|
|
|
assert.ok(value !== undefined && value !== null, |
|
|
|
'missing value'); |
|
|
|
|
|
|
|
assert.ok(value !== undefined && value !== null, |
|
|
|
'missing value'); |
|
|
|
assert.ok(typeof (isBigEndian) === 'boolean', |
|
|
|
'missing or invalid endian'); |
|
|
|
|
|
|
|
assert.ok(typeof (bigEndian) === 'boolean', |
|
|
|
'missing or invalid endian'); |
|
|
|
assert.ok(offset !== undefined && offset !== null, |
|
|
|
'missing offset'); |
|
|
|
|
|
|
|
assert.ok(offset !== undefined && offset !== null, |
|
|
|
'missing offset'); |
|
|
|
assert.ok(offset + 7 < buffer.length, |
|
|
|
'Trying to write beyond buffer length'); |
|
|
|
|
|
|
|
assert.ok(offset + 7 < buffer.length, |
|
|
|
'Trying to write beyond buffer length'); |
|
|
|
verifIEEE754(value, 1.7976931348623157E+308, -1.7976931348623157E+308); |
|
|
|
} |
|
|
|
|
|
|
|
verifIEEE754(value, 1.7976931348623157E+308, -1.7976931348623157E+308); |
|
|
|
require('buffer_ieee754').writeIEEE754(buffer, value, offset, bigEndian, |
|
|
|
require('buffer_ieee754').writeIEEE754(buffer, value, offset, isBigEndian, |
|
|
|
52, 8); |
|
|
|
} |
|
|
|
|
|
|
|
Buffer.prototype.writeDoubleLE = function(value, offset, noAssert) { |
|
|
|
writeDouble(this, value, offset, false, noAssert); |
|
|
|
}; |
|
|
|
|
|
|
|
Buffer.prototype.writeDoubleBE = function(value, offset, noAssert) { |
|
|
|
writeDouble(this, value, offset, true, noAssert); |
|
|
|
}; |
|
|
|