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