bireader 1.0.56 → 1.0.58
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/index.cjs +18 -11
- package/lib/cjs/index.cjs.map +1 -1
- package/lib/cjs/index.d.cts.map +1 -1
- package/lib/esm/index.d.mts.map +1 -1
- package/lib/esm/index.mjs +18 -11
- package/lib/esm/index.mjs.map +1 -1
- package/package.json +1 -1
package/lib/cjs/index.cjs
CHANGED
|
@@ -1226,11 +1226,14 @@ function rfloat(_this, endian) {
|
|
|
1226
1226
|
}
|
|
1227
1227
|
function wfloat(_this, value, endian) {
|
|
1228
1228
|
check_size(_this, 4, 0);
|
|
1229
|
-
const
|
|
1230
|
-
const
|
|
1231
|
-
|
|
1229
|
+
const MIN_POSITIVE_FLOAT32 = 1.17549435e-38;
|
|
1230
|
+
const MAX_POSITIVE_FLOAT32 = 3.4028235e+38;
|
|
1231
|
+
const MIN_NEGATIVE_FLOAT32 = -3.4028235e+38;
|
|
1232
|
+
const MAX_NEGATIVE_FLOAT32 = -1.17549435e-38;
|
|
1233
|
+
if (!((value === 0) || (value >= MIN_POSITIVE_FLOAT32 && value <= MAX_POSITIVE_FLOAT32) ||
|
|
1234
|
+
(value >= MIN_NEGATIVE_FLOAT32 && value <= MAX_NEGATIVE_FLOAT32))) {
|
|
1232
1235
|
_this.errorDump ? "[Error], hexdump:\n" + _this.hexdump() : "";
|
|
1233
|
-
throw new Error('Value is out of range for the specified float length.' + " min: " +
|
|
1236
|
+
throw new Error('Value is out of range for the specified float length.' + " min: " + MIN_NEGATIVE_FLOAT32 + " max: " + MAX_POSITIVE_FLOAT32 + " value: " + value);
|
|
1234
1237
|
}
|
|
1235
1238
|
const dataView = new DataView(new Uint8Array(4).buffer);
|
|
1236
1239
|
dataView.setFloat32(0, value, true);
|
|
@@ -1333,11 +1336,15 @@ function wint64(_this, value, unsigned, endian) {
|
|
|
1333
1336
|
}
|
|
1334
1337
|
function wdfloat(_this, value, endian) {
|
|
1335
1338
|
check_size(_this, 8, 0);
|
|
1336
|
-
const
|
|
1337
|
-
const
|
|
1338
|
-
|
|
1339
|
+
const MIN_POSITIVE_FLOAT64 = 2.2250738585072014e-308;
|
|
1340
|
+
const MAX_POSITIVE_FLOAT64 = 1.7976931348623157e+308;
|
|
1341
|
+
const MIN_NEGATIVE_FLOAT64 = -1.7976931348623157e+308;
|
|
1342
|
+
const MAX_NEGATIVE_FLOAT64 = -2.2250738585072014e-308;
|
|
1343
|
+
if (!((value === 0) ||
|
|
1344
|
+
(value >= MIN_POSITIVE_FLOAT64 && value <= MAX_POSITIVE_FLOAT64) ||
|
|
1345
|
+
(value >= MIN_NEGATIVE_FLOAT64 && value <= MAX_NEGATIVE_FLOAT64))) {
|
|
1339
1346
|
_this.errorDump ? "[Error], hexdump:\n" + _this.hexdump() : "";
|
|
1340
|
-
throw new Error('Value is out of range for the specified 64bit length.' + " min: " +
|
|
1347
|
+
throw new Error('Value is out of range for the specified 64bit length.' + " min: " + MIN_NEGATIVE_FLOAT64 + " max: " + MAX_POSITIVE_FLOAT64 + " value: " + value);
|
|
1341
1348
|
}
|
|
1342
1349
|
const intArray = new Int32Array(2);
|
|
1343
1350
|
const floatArray = new Float64Array(intArray.buffer);
|
|
@@ -1593,11 +1600,10 @@ function wstring(_this, string, options) {
|
|
|
1593
1600
|
}
|
|
1594
1601
|
var maxBytes = Math.min(string.length, maxLength);
|
|
1595
1602
|
const encodedString = encoder.encode(string.substring(0, maxBytes));
|
|
1596
|
-
var totalLength = (length || encodedString.length)
|
|
1603
|
+
var totalLength = (length || encodedString.length);
|
|
1597
1604
|
if (stringType == 'wide-pascal') {
|
|
1598
|
-
totalLength = (length || (encodedString.length * 2))
|
|
1605
|
+
totalLength = (length || (encodedString.length * 2));
|
|
1599
1606
|
}
|
|
1600
|
-
check_size(_this, totalLength, 0);
|
|
1601
1607
|
if (lengthWriteSize == 1) {
|
|
1602
1608
|
_this.writeUByte(maxBytes);
|
|
1603
1609
|
}
|
|
@@ -1607,6 +1613,7 @@ function wstring(_this, string, options) {
|
|
|
1607
1613
|
else if (lengthWriteSize == 4) {
|
|
1608
1614
|
_this.writeUInt32(maxBytes, endian);
|
|
1609
1615
|
}
|
|
1616
|
+
check_size(_this, totalLength, 0);
|
|
1610
1617
|
// Write the string bytes to the Uint8Array
|
|
1611
1618
|
for (let i = 0; i < encodedString.length; i++) {
|
|
1612
1619
|
if (stringType == 'wide-pascal') {
|