jww-parser-mbt 2025.12.2 → 2025.12.5

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/dist/index.cjs CHANGED
@@ -362,7 +362,6 @@ function $makebytes(a, b) {
362
362
  const moonbitlang$core$builtin$$JSArray$push = (arr, val) => {
363
363
  arr.push(val);
364
364
  };
365
- const moonbitlang$core$builtin$$MyInt64$convert_to_double_u = (a) => (a.hi >>> 0) * 4294967296 + (a.lo >>> 0);
366
365
  const moonbitlang$core$builtin$$try_init_wasm_helper = function() {
367
366
  try {
368
367
  return new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([
@@ -996,58 +995,58 @@ const f4ah6o$jww_parser$core$$default$46$record$47$742 = {
996
995
  protect: 0,
997
996
  name: ""
998
997
  };
999
- const f4ah6o$jww_parser$core$$parse$46$constr$47$1000 = 8;
1000
- const f4ah6o$jww_parser$dxf$$ltype_table$46$tuple$47$1037 = {
998
+ const f4ah6o$jww_parser$core$$parse$46$constr$47$1004 = 8;
999
+ const f4ah6o$jww_parser$dxf$$ltype_table$46$tuple$47$1041 = {
1001
1000
  _0: "CONTINUOUS",
1002
1001
  _1: "Solid line",
1003
1002
  _2: ""
1004
1003
  };
1005
- const f4ah6o$jww_parser$dxf$$ltype_table$46$tuple$47$1038 = {
1004
+ const f4ah6o$jww_parser$dxf$$ltype_table$46$tuple$47$1042 = {
1006
1005
  _0: "DASHED",
1007
1006
  _1: "Dashed",
1008
1007
  _2: ""
1009
1008
  };
1010
- const f4ah6o$jww_parser$dxf$$ltype_table$46$tuple$47$1039 = {
1009
+ const f4ah6o$jww_parser$dxf$$ltype_table$46$tuple$47$1043 = {
1011
1010
  _0: "DOTTED",
1012
1011
  _1: "Dotted",
1013
1012
  _2: ""
1014
1013
  };
1015
- const f4ah6o$jww_parser$dxf$$ltype_table$46$tuple$47$1040 = {
1014
+ const f4ah6o$jww_parser$dxf$$ltype_table$46$tuple$47$1044 = {
1016
1015
  _0: "DASHDOT",
1017
1016
  _1: "Dash dot",
1018
1017
  _2: ""
1019
1018
  };
1020
- const f4ah6o$jww_parser$dxf$$ltype_table$46$tuple$47$1041 = {
1019
+ const f4ah6o$jww_parser$dxf$$ltype_table$46$tuple$47$1045 = {
1021
1020
  _0: "DOT2",
1022
1021
  _1: "Dot (small)",
1023
1022
  _2: ""
1024
1023
  };
1025
- const f4ah6o$jww_parser$dxf$$ltype_table$46$tuple$47$1042 = {
1024
+ const f4ah6o$jww_parser$dxf$$ltype_table$46$tuple$47$1046 = {
1026
1025
  _0: "DASHDOT2",
1027
1026
  _1: "Dash dot (small)",
1028
1027
  _2: ""
1029
1028
  };
1030
- const f4ah6o$jww_parser$dxf$$ltype_table$46$tuple$47$1043 = {
1029
+ const f4ah6o$jww_parser$dxf$$ltype_table$46$tuple$47$1047 = {
1031
1030
  _0: "DASHDOTDOT",
1032
1031
  _1: "Dash dot dot",
1033
1032
  _2: ""
1034
1033
  };
1035
- const f4ah6o$jww_parser$dxf$$ltype_table$46$tuple$47$1044 = {
1034
+ const f4ah6o$jww_parser$dxf$$ltype_table$46$tuple$47$1048 = {
1036
1035
  _0: "DIVIDE",
1037
1036
  _1: "Divide",
1038
1037
  _2: ""
1039
1038
  };
1040
- const f4ah6o$jww_parser$dxf$$ltype_table$46$tuple$47$1045 = {
1039
+ const f4ah6o$jww_parser$dxf$$ltype_table$46$tuple$47$1049 = {
1041
1040
  _0: "CENTER",
1042
1041
  _1: "Center",
1043
1042
  _2: ""
1044
1043
  };
1045
- const f4ah6o$jww_parser$dxf$$ltype_table$46$tuple$47$1046 = {
1044
+ const f4ah6o$jww_parser$dxf$$ltype_table$46$tuple$47$1050 = {
1046
1045
  _0: "BORDER",
1047
1046
  _1: "Border",
1048
1047
  _2: ""
1049
1048
  };
1050
- const f4ah6o$jww_parser$dxf$$ltype_table$46$tuple$47$1047 = {
1049
+ const f4ah6o$jww_parser$dxf$$ltype_table$46$tuple$47$1051 = {
1051
1050
  _0: "HIDDEN",
1052
1051
  _1: "Hidden",
1053
1052
  _2: ""
@@ -1685,12 +1684,6 @@ function moonbitlang$core$uint64$$UInt64$extend_uint(value) {
1685
1684
  function moonbitlang$core$uint$$UInt$to_uint64(self) {
1686
1685
  return moonbitlang$core$uint64$$UInt64$extend_uint(self);
1687
1686
  }
1688
- function moonbitlang$core$double$$Double$convert_uint64(value) {
1689
- return moonbitlang$core$builtin$$MyInt64$convert_to_double_u(value);
1690
- }
1691
- function moonbitlang$core$uint64$$UInt64$to_double(self) {
1692
- return moonbitlang$core$double$$Double$convert_uint64(self);
1693
- }
1694
1687
  function moonbitlang$core$uint64$$UInt64$to_int(self) {
1695
1688
  return self.lo;
1696
1689
  }
@@ -1893,9 +1886,6 @@ function moonbitlang$core$bytes$$Bytes$makei$25$(length, value) {
1893
1886
  }
1894
1887
  return arr;
1895
1888
  }
1896
- function moonbitlang$core$byte$$Byte$to_uint64(self) {
1897
- return moonbitlang$core$uint$$UInt$to_uint64(self);
1898
- }
1899
1889
  function moonbitlang$core$builtin$$Eq$equal$9$(self, other) {
1900
1890
  if (self.length !== other.length) return false;
1901
1891
  else {
@@ -9597,21 +9587,18 @@ function f4ah6o$jww_parser$core$$Reader$read_dword(self) {
9597
9587
  const b3 = f4ah6o$jww_parser$core$$Reader$read_byte(self);
9598
9588
  return b0 | b1 << 8 | b2 << 16 | b3 << 24;
9599
9589
  }
9600
- function f4ah6o$jww_parser$core$$Reader$read_uint64(self) {
9601
- const b0 = moonbitlang$core$byte$$Byte$to_uint64(f4ah6o$jww_parser$core$$Reader$read_byte(self));
9602
- const b1 = moonbitlang$core$byte$$Byte$to_uint64(f4ah6o$jww_parser$core$$Reader$read_byte(self));
9603
- const b2 = moonbitlang$core$byte$$Byte$to_uint64(f4ah6o$jww_parser$core$$Reader$read_byte(self));
9604
- const b3 = moonbitlang$core$byte$$Byte$to_uint64(f4ah6o$jww_parser$core$$Reader$read_byte(self));
9605
- const b4 = moonbitlang$core$byte$$Byte$to_uint64(f4ah6o$jww_parser$core$$Reader$read_byte(self));
9606
- const b5 = moonbitlang$core$byte$$Byte$to_uint64(f4ah6o$jww_parser$core$$Reader$read_byte(self));
9607
- const b6 = moonbitlang$core$byte$$Byte$to_uint64(f4ah6o$jww_parser$core$$Reader$read_byte(self));
9608
- const b7 = moonbitlang$core$byte$$Byte$to_uint64(f4ah6o$jww_parser$core$$Reader$read_byte(self));
9609
- return moonbitlang$core$builtin$$BitOr$lor$10$(moonbitlang$core$builtin$$BitOr$lor$10$(moonbitlang$core$builtin$$BitOr$lor$10$(moonbitlang$core$builtin$$BitOr$lor$10$(moonbitlang$core$builtin$$BitOr$lor$10$(moonbitlang$core$builtin$$BitOr$lor$10$(moonbitlang$core$builtin$$BitOr$lor$10$(b0, moonbitlang$core$builtin$$Shl$shl$10$(b1, 8)), moonbitlang$core$builtin$$Shl$shl$10$(b2, 16)), moonbitlang$core$builtin$$Shl$shl$10$(b3, 24)), moonbitlang$core$builtin$$Shl$shl$10$(b4, 32)), moonbitlang$core$builtin$$Shl$shl$10$(b5, 40)), moonbitlang$core$builtin$$Shl$shl$10$(b6, 48)), moonbitlang$core$builtin$$Shl$shl$10$(b7, 56));
9610
- }
9611
- function f4ah6o$jww_parser$core$$Reader$read_double(self) {
9612
- return moonbitlang$core$uint64$$UInt64$to_double(f4ah6o$jww_parser$core$$Reader$read_uint64(self));
9590
+ function f4ah6o$jww_parser$core$Reader$read_double(self) {
9591
+ const buffer = /* @__PURE__ */ new ArrayBuffer(8);
9592
+ const view = new DataView(buffer);
9593
+ for (let i = 0; i < 8; i++) view.setUint8(i, self.data[self.pos++]);
9594
+ return view.getFloat64(0, true);
9613
9595
  }
9614
9596
  function f4ah6o$jww_parser$core$$Reader$read_bytes(self, n) {
9597
+ if ((self.data.length - self.pos | 0) < n) return moonbitlang$core$bytes$$Bytes$from_array({
9598
+ buf: new Uint8Array([]),
9599
+ start: 0,
9600
+ end: 0
9601
+ });
9615
9602
  const start = self.pos;
9616
9603
  const end = self.pos + n | 0;
9617
9604
  self.pos = end;
@@ -9684,42 +9671,46 @@ function f4ah6o$jww_parser$core$$read_cstring(reader) {
9684
9671
  if (len_byte < 255) length = len_byte;
9685
9672
  else {
9686
9673
  const len_word = f4ah6o$jww_parser$core$$Reader$read_word(reader);
9687
- length = len_word < 65535 ? len_word : f4ah6o$jww_parser$core$$Reader$read_dword(reader);
9674
+ if (len_word < 65535) length = len_word;
9675
+ else {
9676
+ const len_dword = f4ah6o$jww_parser$core$$Reader$read_dword(reader);
9677
+ length = len_dword < 0 || len_dword > 1e6 ? 0 : len_dword;
9678
+ }
9688
9679
  }
9689
- if (length === 0) return "";
9690
- return f4ah6o$encoding_sjis_mbt$$shift_jis_to_utf8(f4ah6o$jww_parser$core$$Reader$read_bytes(reader, length));
9680
+ if (length <= 0 || length > 1e6) return "";
9681
+ return f4ah6o$encoding_sjis_mbt$$shift_jis_to_utf8(f4ah6o$jww_parser$core$$Reader$read_bytes(reader, (reader.data.length - reader.pos | 0) < length ? reader.data.length - reader.pos | 0 : length));
9691
9682
  }
9692
9683
  function f4ah6o$jww_parser$core$$parse_entity_by_class(class_name, reader, version) {
9693
9684
  if (class_name === "CDataSen") return new $64$f4ah6o$47$jww_parser$47$core$46$Entity$Line({
9694
9685
  base: f4ah6o$jww_parser$core$$parse_entity_base(reader, version),
9695
- start_x: f4ah6o$jww_parser$core$$Reader$read_double(reader),
9696
- start_y: f4ah6o$jww_parser$core$$Reader$read_double(reader),
9697
- end_x: f4ah6o$jww_parser$core$$Reader$read_double(reader),
9698
- end_y: f4ah6o$jww_parser$core$$Reader$read_double(reader)
9686
+ start_x: f4ah6o$jww_parser$core$Reader$read_double(reader),
9687
+ start_y: f4ah6o$jww_parser$core$Reader$read_double(reader),
9688
+ end_x: f4ah6o$jww_parser$core$Reader$read_double(reader),
9689
+ end_y: f4ah6o$jww_parser$core$Reader$read_double(reader)
9699
9690
  });
9700
9691
  else if (class_name === "CDataEnko") return new $64$f4ah6o$47$jww_parser$47$core$46$Entity$Arc({
9701
9692
  base: f4ah6o$jww_parser$core$$parse_entity_base(reader, version),
9702
- center_x: f4ah6o$jww_parser$core$$Reader$read_double(reader),
9703
- center_y: f4ah6o$jww_parser$core$$Reader$read_double(reader),
9704
- radius: f4ah6o$jww_parser$core$$Reader$read_double(reader),
9705
- start_angle: f4ah6o$jww_parser$core$$Reader$read_double(reader),
9706
- arc_angle: f4ah6o$jww_parser$core$$Reader$read_double(reader),
9707
- tilt_angle: f4ah6o$jww_parser$core$$Reader$read_double(reader),
9708
- flatness: f4ah6o$jww_parser$core$$Reader$read_double(reader),
9693
+ center_x: f4ah6o$jww_parser$core$Reader$read_double(reader),
9694
+ center_y: f4ah6o$jww_parser$core$Reader$read_double(reader),
9695
+ radius: f4ah6o$jww_parser$core$Reader$read_double(reader),
9696
+ start_angle: f4ah6o$jww_parser$core$Reader$read_double(reader),
9697
+ arc_angle: f4ah6o$jww_parser$core$Reader$read_double(reader),
9698
+ tilt_angle: f4ah6o$jww_parser$core$Reader$read_double(reader),
9699
+ flatness: f4ah6o$jww_parser$core$Reader$read_double(reader),
9709
9700
  is_full_circle: f4ah6o$jww_parser$core$$Reader$read_dword(reader) !== 0
9710
9701
  });
9711
9702
  else if (class_name === "CDataTen") {
9712
9703
  const base = f4ah6o$jww_parser$core$$parse_entity_base(reader, version);
9713
- const x = f4ah6o$jww_parser$core$$Reader$read_double(reader);
9714
- const y = f4ah6o$jww_parser$core$$Reader$read_double(reader);
9704
+ const x = f4ah6o$jww_parser$core$Reader$read_double(reader);
9705
+ const y = f4ah6o$jww_parser$core$Reader$read_double(reader);
9715
9706
  const is_temporary = f4ah6o$jww_parser$core$$Reader$read_dword(reader) !== 0;
9716
9707
  let code = 0;
9717
9708
  let angle = 0;
9718
9709
  let scale = 1;
9719
9710
  if (base.pen_style === 100) {
9720
9711
  code = f4ah6o$jww_parser$core$$Reader$read_dword(reader);
9721
- angle = f4ah6o$jww_parser$core$$Reader$read_double(reader);
9722
- scale = f4ah6o$jww_parser$core$$Reader$read_double(reader);
9712
+ angle = f4ah6o$jww_parser$core$Reader$read_double(reader);
9713
+ scale = f4ah6o$jww_parser$core$Reader$read_double(reader);
9723
9714
  }
9724
9715
  return new $64$f4ah6o$47$jww_parser$47$core$46$Entity$Point({
9725
9716
  base,
@@ -9732,28 +9723,28 @@ function f4ah6o$jww_parser$core$$parse_entity_by_class(class_name, reader, versi
9732
9723
  });
9733
9724
  } else if (class_name === "CDataMoji") return new $64$f4ah6o$47$jww_parser$47$core$46$Entity$Text({
9734
9725
  base: f4ah6o$jww_parser$core$$parse_entity_base(reader, version),
9735
- start_x: f4ah6o$jww_parser$core$$Reader$read_double(reader),
9736
- start_y: f4ah6o$jww_parser$core$$Reader$read_double(reader),
9737
- end_x: f4ah6o$jww_parser$core$$Reader$read_double(reader),
9738
- end_y: f4ah6o$jww_parser$core$$Reader$read_double(reader),
9726
+ start_x: f4ah6o$jww_parser$core$Reader$read_double(reader),
9727
+ start_y: f4ah6o$jww_parser$core$Reader$read_double(reader),
9728
+ end_x: f4ah6o$jww_parser$core$Reader$read_double(reader),
9729
+ end_y: f4ah6o$jww_parser$core$Reader$read_double(reader),
9739
9730
  text_type: f4ah6o$jww_parser$core$$Reader$read_dword(reader),
9740
- size_x: f4ah6o$jww_parser$core$$Reader$read_double(reader),
9741
- size_y: f4ah6o$jww_parser$core$$Reader$read_double(reader),
9742
- spacing: f4ah6o$jww_parser$core$$Reader$read_double(reader),
9743
- angle: f4ah6o$jww_parser$core$$Reader$read_double(reader),
9731
+ size_x: f4ah6o$jww_parser$core$Reader$read_double(reader),
9732
+ size_y: f4ah6o$jww_parser$core$Reader$read_double(reader),
9733
+ spacing: f4ah6o$jww_parser$core$Reader$read_double(reader),
9734
+ angle: f4ah6o$jww_parser$core$Reader$read_double(reader),
9744
9735
  font_name: f4ah6o$jww_parser$core$$read_cstring(reader),
9745
9736
  content: f4ah6o$jww_parser$core$$read_cstring(reader)
9746
9737
  });
9747
9738
  else if (class_name === "CDataSolid") {
9748
9739
  const base = f4ah6o$jww_parser$core$$parse_entity_base(reader, version);
9749
- const point1_x = f4ah6o$jww_parser$core$$Reader$read_double(reader);
9750
- const point1_y = f4ah6o$jww_parser$core$$Reader$read_double(reader);
9751
- const point4_x = f4ah6o$jww_parser$core$$Reader$read_double(reader);
9752
- const point4_y = f4ah6o$jww_parser$core$$Reader$read_double(reader);
9753
- const point2_x = f4ah6o$jww_parser$core$$Reader$read_double(reader);
9754
- const point2_y = f4ah6o$jww_parser$core$$Reader$read_double(reader);
9755
- const point3_x = f4ah6o$jww_parser$core$$Reader$read_double(reader);
9756
- const point3_y = f4ah6o$jww_parser$core$$Reader$read_double(reader);
9740
+ const point1_x = f4ah6o$jww_parser$core$Reader$read_double(reader);
9741
+ const point1_y = f4ah6o$jww_parser$core$Reader$read_double(reader);
9742
+ const point4_x = f4ah6o$jww_parser$core$Reader$read_double(reader);
9743
+ const point4_y = f4ah6o$jww_parser$core$Reader$read_double(reader);
9744
+ const point2_x = f4ah6o$jww_parser$core$Reader$read_double(reader);
9745
+ const point2_y = f4ah6o$jww_parser$core$Reader$read_double(reader);
9746
+ const point3_x = f4ah6o$jww_parser$core$Reader$read_double(reader);
9747
+ const point3_y = f4ah6o$jww_parser$core$Reader$read_double(reader);
9757
9748
  let color = 0;
9758
9749
  if (base.pen_color === 10) color = f4ah6o$jww_parser$core$$Reader$read_dword(reader);
9759
9750
  return new $64$f4ah6o$47$jww_parser$47$core$46$Entity$Solid({
@@ -9770,30 +9761,30 @@ function f4ah6o$jww_parser$core$$parse_entity_by_class(class_name, reader, versi
9770
9761
  });
9771
9762
  } else if (class_name === "CDataBlock") return new $64$f4ah6o$47$jww_parser$47$core$46$Entity$Block({
9772
9763
  base: f4ah6o$jww_parser$core$$parse_entity_base(reader, version),
9773
- ref_x: f4ah6o$jww_parser$core$$Reader$read_double(reader),
9774
- ref_y: f4ah6o$jww_parser$core$$Reader$read_double(reader),
9775
- scale_x: f4ah6o$jww_parser$core$$Reader$read_double(reader),
9776
- scale_y: f4ah6o$jww_parser$core$$Reader$read_double(reader),
9777
- rotation: f4ah6o$jww_parser$core$$Reader$read_double(reader),
9764
+ ref_x: f4ah6o$jww_parser$core$Reader$read_double(reader),
9765
+ ref_y: f4ah6o$jww_parser$core$Reader$read_double(reader),
9766
+ scale_x: f4ah6o$jww_parser$core$Reader$read_double(reader),
9767
+ scale_y: f4ah6o$jww_parser$core$Reader$read_double(reader),
9768
+ rotation: f4ah6o$jww_parser$core$Reader$read_double(reader),
9778
9769
  def_number: f4ah6o$jww_parser$core$$Reader$read_dword(reader)
9779
9770
  });
9780
9771
  else if (class_name === "CDataSunpou") {
9781
9772
  f4ah6o$jww_parser$core$$parse_entity_base(reader, version);
9782
9773
  const line_base = f4ah6o$jww_parser$core$$parse_entity_base(reader, version);
9783
- const start_x = f4ah6o$jww_parser$core$$Reader$read_double(reader);
9784
- const start_y = f4ah6o$jww_parser$core$$Reader$read_double(reader);
9785
- const end_x = f4ah6o$jww_parser$core$$Reader$read_double(reader);
9786
- const end_y = f4ah6o$jww_parser$core$$Reader$read_double(reader);
9774
+ const start_x = f4ah6o$jww_parser$core$Reader$read_double(reader);
9775
+ const start_y = f4ah6o$jww_parser$core$Reader$read_double(reader);
9776
+ const end_x = f4ah6o$jww_parser$core$Reader$read_double(reader);
9777
+ const end_y = f4ah6o$jww_parser$core$Reader$read_double(reader);
9787
9778
  f4ah6o$jww_parser$core$$parse_entity_base(reader, version);
9788
- f4ah6o$jww_parser$core$$Reader$read_double(reader);
9789
- f4ah6o$jww_parser$core$$Reader$read_double(reader);
9790
- f4ah6o$jww_parser$core$$Reader$read_double(reader);
9791
- f4ah6o$jww_parser$core$$Reader$read_double(reader);
9779
+ f4ah6o$jww_parser$core$Reader$read_double(reader);
9780
+ f4ah6o$jww_parser$core$Reader$read_double(reader);
9781
+ f4ah6o$jww_parser$core$Reader$read_double(reader);
9782
+ f4ah6o$jww_parser$core$Reader$read_double(reader);
9792
9783
  f4ah6o$jww_parser$core$$Reader$read_dword(reader);
9793
- f4ah6o$jww_parser$core$$Reader$read_double(reader);
9794
- f4ah6o$jww_parser$core$$Reader$read_double(reader);
9795
- f4ah6o$jww_parser$core$$Reader$read_double(reader);
9796
- f4ah6o$jww_parser$core$$Reader$read_double(reader);
9784
+ f4ah6o$jww_parser$core$Reader$read_double(reader);
9785
+ f4ah6o$jww_parser$core$Reader$read_double(reader);
9786
+ f4ah6o$jww_parser$core$Reader$read_double(reader);
9787
+ f4ah6o$jww_parser$core$Reader$read_double(reader);
9797
9788
  f4ah6o$jww_parser$core$$read_cstring(reader);
9798
9789
  f4ah6o$jww_parser$core$$read_cstring(reader);
9799
9790
  if (version >>> 0 >= 420) {
@@ -9803,10 +9794,10 @@ function f4ah6o$jww_parser$core$$parse_entity_by_class(class_name, reader, versi
9803
9794
  const _ = _tmp;
9804
9795
  if (_ < 2) {
9805
9796
  f4ah6o$jww_parser$core$$parse_entity_base(reader, version);
9806
- f4ah6o$jww_parser$core$$Reader$read_double(reader);
9807
- f4ah6o$jww_parser$core$$Reader$read_double(reader);
9808
- f4ah6o$jww_parser$core$$Reader$read_double(reader);
9809
- f4ah6o$jww_parser$core$$Reader$read_double(reader);
9797
+ f4ah6o$jww_parser$core$Reader$read_double(reader);
9798
+ f4ah6o$jww_parser$core$Reader$read_double(reader);
9799
+ f4ah6o$jww_parser$core$Reader$read_double(reader);
9800
+ f4ah6o$jww_parser$core$Reader$read_double(reader);
9810
9801
  _tmp = _ + 1 | 0;
9811
9802
  continue;
9812
9803
  } else break;
@@ -9816,8 +9807,8 @@ function f4ah6o$jww_parser$core$$parse_entity_by_class(class_name, reader, versi
9816
9807
  const _ = _tmp$2;
9817
9808
  if (_ < 4) {
9818
9809
  f4ah6o$jww_parser$core$$parse_entity_base(reader, version);
9819
- f4ah6o$jww_parser$core$$Reader$read_double(reader);
9820
- f4ah6o$jww_parser$core$$Reader$read_double(reader);
9810
+ f4ah6o$jww_parser$core$Reader$read_double(reader);
9811
+ f4ah6o$jww_parser$core$Reader$read_double(reader);
9821
9812
  f4ah6o$jww_parser$core$$Reader$read_dword(reader);
9822
9813
  _tmp$2 = _ + 1 | 0;
9823
9814
  continue;
@@ -9854,7 +9845,7 @@ function f4ah6o$jww_parser$core$$parse_entity_with_pid_tracking(reader, version,
9854
9845
  } else break;
9855
9846
  }
9856
9847
  const class_name = name_chars;
9857
- if (next_pid < 256) moonbitlang$core$array$$Array$set$13$(pid_to_class, next_pid, class_name);
9848
+ if (next_pid < 65536) moonbitlang$core$array$$Array$set$13$(pid_to_class, next_pid, class_name);
9858
9849
  _bind = {
9859
9850
  _0: class_name,
9860
9851
  _1: pid_to_class,
@@ -9867,7 +9858,7 @@ function f4ah6o$jww_parser$core$$parse_entity_with_pid_tracking(reader, version,
9867
9858
  };
9868
9859
  else {
9869
9860
  const class_pid = class_id & 32767;
9870
- if (class_pid < 256) {
9861
+ if (class_pid < 65536) {
9871
9862
  const name = moonbitlang$core$array$$Array$at$13$(pid_to_class, class_pid);
9872
9863
  if (name === "") return {
9873
9864
  entity: void 0,
@@ -9903,7 +9894,7 @@ function f4ah6o$jww_parser$core$$parse_entity_list(data, offset, version) {
9903
9894
  let _tmp = 0;
9904
9895
  while (true) {
9905
9896
  const _ = _tmp;
9906
- if (_ < 256) {
9897
+ if (_ < 65536) {
9907
9898
  moonbitlang$core$array$$Array$push$13$(pid_to_class, "");
9908
9899
  _tmp = _ + 1 | 0;
9909
9900
  continue;
@@ -10012,6 +10003,7 @@ function f4ah6o$jww_parser$core$$parse_block_def_with_tracking(reader, version,
10012
10003
  function f4ah6o$jww_parser$core$$parse_block_def_list(data, offset, version) {
10013
10004
  if (offset >= data.length) return moonbitlang$core$array$$Array$new$46$inner$19$(0);
10014
10005
  const reader = f4ah6o$jww_parser$core$$Reader$new(moonbitlang$core$bytes$$Bytes$from_array(moonbitlang$core$array$$Array$sub$46$inner$3$(moonbitlang$core$bytes$$Bytes$to_array(data), offset, data.length)));
10006
+ if ((reader.data.length - reader.pos | 0) < 4) return moonbitlang$core$array$$Array$new$46$inner$19$(0);
10015
10007
  const count = f4ah6o$jww_parser$core$$Reader$read_dword(reader);
10016
10008
  if (count >>> 0 > 1e4) return moonbitlang$core$array$$Array$new$46$inner$19$(0);
10017
10009
  const block_defs = moonbitlang$core$array$$Array$new$46$inner$19$(0);
@@ -10031,6 +10023,7 @@ function f4ah6o$jww_parser$core$$parse_block_def_list(data, offset, version) {
10031
10023
  while (true) {
10032
10024
  const _ = _tmp$2;
10033
10025
  if (_ < _end50) {
10026
+ if ((reader.data.length - reader.pos | 0) < 8) break;
10034
10027
  const result = f4ah6o$jww_parser$core$$parse_block_def_with_tracking(reader, version, class_map, next_id);
10035
10028
  const _bind = result.block_def;
10036
10029
  if (_bind === void 0) {} else moonbitlang$core$array$$Array$push$19$(block_defs, _bind);
@@ -10084,7 +10077,7 @@ function f4ah6o$jww_parser$core$$set_layer_names(layer_groups) {
10084
10077
  }
10085
10078
  function f4ah6o$jww_parser$core$$parse(data) {
10086
10079
  if (data.length < 8) return f4ah6o$jww_parser$core$$Document$default();
10087
- if (moonbitlang$core$builtin$$op_notequal$9$(moonbitlang$core$bytes$$Bytes$from_array(moonbitlang$core$array$$Array$sub$46$inner$3$(moonbitlang$core$bytes$$Bytes$to_array(data), 0, f4ah6o$jww_parser$core$$parse$46$constr$47$1000)), $bytes_literal$1)) return f4ah6o$jww_parser$core$$Document$default();
10080
+ if (moonbitlang$core$builtin$$op_notequal$9$(moonbitlang$core$bytes$$Bytes$from_array(moonbitlang$core$array$$Array$sub$46$inner$3$(moonbitlang$core$bytes$$Bytes$to_array(data), 0, f4ah6o$jww_parser$core$$parse$46$constr$47$1004)), $bytes_literal$1)) return f4ah6o$jww_parser$core$$Document$default();
10088
10081
  const reader = f4ah6o$jww_parser$core$$Reader$new(moonbitlang$core$bytes$$Bytes$from_array(moonbitlang$core$array$$Array$sub$46$inner$3$(moonbitlang$core$bytes$$Bytes$to_array(data), 8, data.length)));
10089
10082
  const version = f4ah6o$jww_parser$core$$Reader$read_dword(reader);
10090
10083
  const memo = f4ah6o$jww_parser$core$$read_cstring(reader);
@@ -10097,7 +10090,7 @@ function f4ah6o$jww_parser$core$$parse(data) {
10097
10090
  if (_g_idx < 16) {
10098
10091
  const state = f4ah6o$jww_parser$core$$Reader$read_dword(reader);
10099
10092
  const write_layer = f4ah6o$jww_parser$core$$Reader$read_dword(reader);
10100
- const scale = f4ah6o$jww_parser$core$$Reader$read_double(reader);
10093
+ const scale = f4ah6o$jww_parser$core$Reader$read_double(reader);
10101
10094
  const protect = f4ah6o$jww_parser$core$$Reader$read_dword(reader);
10102
10095
  const layers = moonbitlang$core$array$$Array$new$46$inner$12$(0);
10103
10096
  let _tmp$2 = 0;
@@ -10187,17 +10180,17 @@ function f4ah6o$jww_parser$dxf$$ltype_table() {
10187
10180
  output = `${output}2\nLTYPE\n`;
10188
10181
  output = `${output}70\n11\n`;
10189
10182
  const ltypes = [
10190
- f4ah6o$jww_parser$dxf$$ltype_table$46$tuple$47$1037,
10191
- f4ah6o$jww_parser$dxf$$ltype_table$46$tuple$47$1038,
10192
- f4ah6o$jww_parser$dxf$$ltype_table$46$tuple$47$1039,
10193
- f4ah6o$jww_parser$dxf$$ltype_table$46$tuple$47$1040,
10194
10183
  f4ah6o$jww_parser$dxf$$ltype_table$46$tuple$47$1041,
10195
10184
  f4ah6o$jww_parser$dxf$$ltype_table$46$tuple$47$1042,
10196
10185
  f4ah6o$jww_parser$dxf$$ltype_table$46$tuple$47$1043,
10197
10186
  f4ah6o$jww_parser$dxf$$ltype_table$46$tuple$47$1044,
10198
10187
  f4ah6o$jww_parser$dxf$$ltype_table$46$tuple$47$1045,
10199
10188
  f4ah6o$jww_parser$dxf$$ltype_table$46$tuple$47$1046,
10200
- f4ah6o$jww_parser$dxf$$ltype_table$46$tuple$47$1047
10189
+ f4ah6o$jww_parser$dxf$$ltype_table$46$tuple$47$1047,
10190
+ f4ah6o$jww_parser$dxf$$ltype_table$46$tuple$47$1048,
10191
+ f4ah6o$jww_parser$dxf$$ltype_table$46$tuple$47$1049,
10192
+ f4ah6o$jww_parser$dxf$$ltype_table$46$tuple$47$1050,
10193
+ f4ah6o$jww_parser$dxf$$ltype_table$46$tuple$47$1051
10201
10194
  ];
10202
10195
  const _len = ltypes.length;
10203
10196
  let _tmp = 0;
@@ -10485,6 +10478,10 @@ function f4ah6o$jww_parser$dxf$$to_string(doc) {
10485
10478
  output = `${output}0\nEOF\n`;
10486
10479
  return output;
10487
10480
  }
10481
+ function f4ah6o$jww_parser$dxf$$feq(a, b) {
10482
+ const _p = a - b;
10483
+ return (_p < 0 ? -_p : _p) < 1e-9;
10484
+ }
10488
10485
  function f4ah6o$jww_parser$dxf$$cos(_tmp) {
10489
10486
  return Math.cos(_tmp);
10490
10487
  }
@@ -10568,7 +10565,7 @@ function f4ah6o$jww_parser$dxf$$convert_entity(entity, jww_doc) {
10568
10565
  }
10569
10566
  case 1: {
10570
10567
  const _arc = entity._0;
10571
- if (_arc.is_full_circle && _arc.flatness === 1) return new $64$f4ah6o$47$jww_parser$47$dxf$46$DxfEntity$Circle({
10568
+ if (_arc.is_full_circle && f4ah6o$jww_parser$dxf$$feq(_arc.flatness, 1)) return new $64$f4ah6o$47$jww_parser$47$dxf$46$DxfEntity$Circle({
10572
10569
  layer: layer_name,
10573
10570
  color,
10574
10571
  line_type,
@@ -10576,7 +10573,7 @@ function f4ah6o$jww_parser$dxf$$convert_entity(entity, jww_doc) {
10576
10573
  center_y: _arc.center_y,
10577
10574
  radius: _arc.radius
10578
10575
  });
10579
- else if (_arc.flatness !== 1) {
10576
+ else if (!f4ah6o$jww_parser$dxf$$feq(_arc.flatness, 1)) {
10580
10577
  let major_radius = _arc.radius;
10581
10578
  let minor_ratio = _arc.flatness;
10582
10579
  let tilt_angle = _arc.tilt_angle;