Skip to content

Commit 65f4263

Browse files
Limited explicit Double casting
1 parent 32e0613 commit 65f4263

File tree

2 files changed

+8
-11
lines changed

2 files changed

+8
-11
lines changed

src/parser/serializer.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -486,7 +486,7 @@ function serializeDouble(
486486
buffer[index++] = 0;
487487

488488
// Write float
489-
buffer.writeDoubleLE(value.value, index); // little endian by default
489+
buffer.writeDoubleLE(value.value, index);
490490

491491
// Adjust index
492492
index = index + 8;

test/node/double_tests.js

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -39,24 +39,22 @@ describe('Double', function () {
3939

4040
describe('specialValues', () => {
4141
function twiceSerialized(value) {
42-
let serializedDouble = BSON.serialize({ d: new Double(value) });
42+
let serializedDouble = BSON.serialize({ d: value });
4343
let deserializedDouble = BSON.deserialize(serializedDouble, { promoteValues: true });
4444
let newVal = deserializedDouble.d;
4545
return newVal;
4646
}
4747

4848
it('inf', () => {
4949
let value = Infinity;
50-
let orig = new Double(value).valueOf();
5150
let newVal = twiceSerialized(value);
52-
expect(orig).to.equal(newVal);
51+
expect(value).to.equal(newVal);
5352
});
5453

5554
it('-inf', () => {
5655
let value = -Infinity;
57-
let orig = new Double(value).valueOf();
5856
let newVal = twiceSerialized(value);
59-
expect(orig).to.equal(newVal);
57+
expect(value).to.equal(newVal);
6058
});
6159

6260
it('NaN', () => {
@@ -71,7 +69,7 @@ describe('Double', function () {
7169
}
7270
let buffer = Buffer.from('120000000000F87F', 'hex');
7371
let value = buffer.readDoubleLE(0);
74-
let serializedDouble = BSON.serialize({ d: new Double(value) });
72+
let serializedDouble = BSON.serialize({ d: value });
7573
expect(serializedDouble.subarray(7, 15)).to.deep.equal(buffer);
7674
let { d: newVal } = BSON.deserialize(serializedDouble, { promoteValues: true });
7775
expect(Number.isNaN(newVal)).to.equal(true);
@@ -80,22 +78,21 @@ describe('Double', function () {
8078
it('0', () => {
8179
let value = 0;
8280
let orig = new Double(value).valueOf();
83-
let newVal = twiceSerialized(value);
81+
let newVal = twiceSerialized(orig);
8482
expect(orig).to.equal(newVal);
8583
});
8684

8785
it('-0', () => {
8886
let value = -0;
8987
let orig = new Double(value).valueOf();
90-
let newVal = twiceSerialized(value);
88+
let newVal = twiceSerialized(orig);
9189
expect(orig).to.equal(newVal);
9290
});
9391

9492
it('Number.EPSILON', () => {
9593
let value = Number.EPSILON;
96-
let orig = new Double(value).valueOf();
9794
let newVal = twiceSerialized(value);
98-
expect(orig).to.equal(newVal);
95+
expect(value).to.equal(newVal);
9996
});
10097
});
10198
});

0 commit comments

Comments
 (0)