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 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 maxValue = 3.402823466e+38;
1230
- const minValue = 1.175494351e-38;
1231
- if (value < minValue || value > maxValue) {
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: " + minValue + " max: " + maxValue + " value: " + value);
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 maxValue = 1.7976931348623158e308;
1337
- const minValue = 2.2250738585072014e-308;
1338
- if (value < minValue || value > maxValue) {
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: " + minValue + " max: " + maxValue + " value: " + value);
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) + lengthWriteSize;
1603
+ var totalLength = (length || encodedString.length);
1597
1604
  if (stringType == 'wide-pascal') {
1598
- totalLength = (length || (encodedString.length * 2)) + lengthWriteSize;
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') {