1
0
Fork 0
mirror of https://github.com/codedread/bitjs synced 2025-10-03 17:49:16 +02:00

Add optional boolean parameter for setLittleEndian() and setBigEndian()

This commit is contained in:
Jeff Schiller 2024-01-10 21:47:00 +09:00
parent 5aad62cc49
commit 5fe6688145
2 changed files with 28 additions and 8 deletions

View file

@ -71,14 +71,20 @@ export class ByteStream {
return this.littleEndian_; return this.littleEndian_;
} }
/** Big-Endian is sometimes called Motorola-style. */ /**
setBigEndian() { * Big-Endian is sometimes called Motorola-style.
this.littleEndian_ = false; * @param {boolean=} The value to set. If not present, the stream is set to big-endian.
*/
setBigEndian(val = true) {
this.littleEndian_ = !val;
} }
/** Little-Endian is sometimes called Intel-style. */ /**
setLittleEndian() { * Little-Endian is sometimes called Intel-style.
this.littleEndian_ = true; * @param {boolean=} The value to set. If not present, the stream to little-endian.
*/
setLittleEndian(val = true) {
this.littleEndian_ = val;
} }
/** /**

View file

@ -78,9 +78,23 @@ describe('bitjs.io.ByteStream', () => {
// Stream now has 0, 1, 0, 1. // Stream now has 0, 1, 0, 1.
const stream = new ByteStream(array.buffer); const stream = new ByteStream(array.buffer);
stream.setBigEndian(); stream.setBigEndian();
expect(stream.readNumber(2)).equals(1); expect(stream.peekNumber(2)).equals(1);
stream.setBigEndian(false);
expect(stream.peekNumber(2)).equals(256);
stream.setBigEndian(true);
expect(stream.peekNumber(2)).equals(1);
stream.skip(2);
stream.setLittleEndian(); stream.setLittleEndian();
expect(stream.readNumber(2)).equals(256); expect(stream.peekNumber(2)).equals(256);
stream.setLittleEndian(false);
expect(stream.peekNumber(2)).equals(1);
stream.setLittleEndian(true);
expect(stream.peekNumber(2)).equals(256);
stream.skip(2);
expect(() => stream.readNumber(1)).to.throw(); expect(() => stream.readNumber(1)).to.throw();
}); });