Skip to content

Commit 67ecb35

Browse files
committed
backport(4.x): fix imaskn state (#317)
1 parent c4098ba commit 67ecb35

File tree

2 files changed

+7
-0
lines changed

2 files changed

+7
-0
lines changed

lib/bn.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2129,6 +2129,11 @@
21292129
this.words[this.length - 1] &= mask;
21302130
}
21312131

2132+
if (this.length === 0) {
2133+
this.words[0] = 0;
2134+
this.length = 1;
2135+
}
2136+
21322137
return this.strip();
21332138
};
21342139

test/binary-test.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@ describe('BN.js/Binary', function () {
5656

5757
describe('.imaskn()', function () {
5858
it('should mask bits in-place', function () {
59+
assert.equal(new BN(42).imaskn(0).toString(), '0');
60+
assert.equal(new BN(42).imaskn(0).toString(16), '0');
5961
assert.equal(new BN(0).imaskn(1).toString(16), '0');
6062
assert.equal(new BN(3).imaskn(1).toString(16), '1');
6163
assert.equal(new BN('123456789', 16).imaskn(4).toString(16), '9');

0 commit comments

Comments
 (0)