40 lines
976 B
JavaScript
Executable File
40 lines
976 B
JavaScript
Executable File
var ByteStream = function (byte_array) {
|
|
console.log("Instance created.");
|
|
this.byte_array = byte_array;
|
|
this.index = 0;
|
|
};
|
|
|
|
ByteStream.prototype.get_u1 = function() {
|
|
var result = this.byte_array[this.index];
|
|
this.index += 1;
|
|
return result;
|
|
}
|
|
|
|
ByteStream.prototype.get_u2 = function() {
|
|
var high = this.get_u1();
|
|
var low = this.get_u1();
|
|
return (high << 8) + low;
|
|
}
|
|
|
|
ByteStream.prototype.get_u4 = function() {
|
|
var high = this.get_u2();
|
|
var low = this.get_u2();
|
|
return (high * 0x10000) + low;
|
|
}
|
|
|
|
ByteStream.prototype.get_i4 = function() {
|
|
var unsigned_val = this.get_u4();
|
|
var sign_mult = (unsigned_val & 0x80000000) ? -1 : 1;
|
|
return (unsigned_val & 0x7FFFFFFF) * sign_mult;
|
|
}
|
|
|
|
ByteStream.prototype.get_bytes = function(n) {
|
|
var result = [];
|
|
for (var i = 0; i < n; i++) {
|
|
result.push(this.get_u1());
|
|
}
|
|
return result;
|
|
}
|
|
|
|
exports.ByteStream = ByteStream;
|