ziex 0.1.0-dev.1050 → 0.1.0-dev.1103

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/README.md CHANGED
@@ -168,6 +168,13 @@ You can view our current progress and planned features here:
168
168
 
169
169
  **[Check out the Ziex Issue Tracker →](https://github.com/ziex-dev/ziex/issues)**
170
170
 
171
+ ## Versions
172
+ | Zig | Ziex | Branch | Status |
173
+ |-------------|-------------------|-------------------|----------------|
174
+ | `0.16.0` | `0.1.0-dev.1050+` | `main` | Unstable (dev) |
175
+ | `0.15.2` | `0.1.0-dev-1050` | `zig-0.15` | Stable (dev) |
176
+
177
+
171
178
  ## Editor Support
172
179
 
173
180
  * [VSCode](https://marketplace.visualstudio.com/items?itemName=ziex.ziex)/[VSCode Forks](https://open-vsx.org/extension/ziex/ziex) Extension
package/build.zig.zon CHANGED
@@ -2,6 +2,6 @@
2
2
  .name = .ziex_js,
3
3
  .fingerprint = 0x3428b4e119b455bf,
4
4
  .version = "0.1.0-dev.804",
5
- .minimum_zig_version = "0.15.2",
5
+ .minimum_zig_version = "0.16.0",
6
6
  .paths = .{""},
7
7
  }
@@ -84,6 +84,8 @@ class ZigJS {
84
84
  const bytes = encoder.encode(val);
85
85
  if (bytes.byteLength > max)
86
86
  return;
87
+ if (bytes.length === 0)
88
+ return;
87
89
  new Uint8Array(this.memory.buffer, ptr, bytes.length).set(bytes);
88
90
  }
89
91
  valueNew(out, id, argsAddr, argsLen) {
@@ -1129,69 +1131,48 @@ var TAG_NAMES = [
1129
1131
  "view"
1130
1132
  ];
1131
1133
  var DELEGATED_EVENTS = [
1132
- "click",
1133
- "dblclick",
1134
- "input",
1135
- "change",
1136
- "submit",
1137
- "focus",
1138
- "blur",
1139
- "keydown",
1140
- "keyup",
1141
- "keypress",
1142
- "mouseenter",
1143
- "mouseleave",
1144
- "mousedown",
1145
- "mouseup",
1146
- "mousemove",
1147
- "touchstart",
1148
- "touchend",
1149
- "touchmove",
1150
- "scroll"
1134
+ { domType: "click", eventTypeId: 0 },
1135
+ { domType: "dblclick", eventTypeId: 1 },
1136
+ { domType: "input", eventTypeId: 2 },
1137
+ { domType: "change", eventTypeId: 3 },
1138
+ { domType: "submit", eventTypeId: 4 },
1139
+ { domType: "focusin", eventTypeId: 5 },
1140
+ { domType: "focusout", eventTypeId: 6 },
1141
+ { domType: "keydown", eventTypeId: 7 },
1142
+ { domType: "keyup", eventTypeId: 8 },
1143
+ { domType: "keypress", eventTypeId: 9 },
1144
+ { domType: "mouseenter", eventTypeId: 10 },
1145
+ { domType: "mouseleave", eventTypeId: 11 },
1146
+ { domType: "mousedown", eventTypeId: 12 },
1147
+ { domType: "mouseup", eventTypeId: 13 },
1148
+ { domType: "mousemove", eventTypeId: 14 },
1149
+ { domType: "touchstart", eventTypeId: 15 },
1150
+ { domType: "touchend", eventTypeId: 16 },
1151
+ { domType: "touchmove", eventTypeId: 17 },
1152
+ { domType: "scroll", eventTypeId: 18 }
1151
1153
  ];
1152
- var EVENT_TYPE_MAP = {
1153
- click: 0,
1154
- dblclick: 1,
1155
- input: 2,
1156
- change: 3,
1157
- submit: 4,
1158
- focus: 5,
1159
- blur: 6,
1160
- keydown: 7,
1161
- keyup: 8,
1162
- keypress: 9,
1163
- mouseenter: 10,
1164
- mouseleave: 11,
1165
- mousedown: 12,
1166
- mouseup: 13,
1167
- mousemove: 14,
1168
- touchstart: 15,
1169
- touchend: 16,
1170
- touchmove: 17,
1171
- scroll: 18
1172
- };
1173
1154
  var eventHandlerModes = new Map;
1174
1155
  function initEventDelegation(bridge, rootSelector = "body") {
1175
1156
  const root = document.querySelector(rootSelector);
1176
1157
  if (!root)
1177
1158
  return () => {};
1178
1159
  const removers = [];
1179
- for (const eventType of DELEGATED_EVENTS) {
1160
+ for (const delegatedEvent of DELEGATED_EVENTS) {
1180
1161
  const listener = (event) => {
1181
1162
  let target = event.target;
1182
1163
  while (target && target !== document.body) {
1183
1164
  const zxRef = target.__zx_ref;
1184
1165
  if (zxRef !== undefined) {
1185
- bridge.eventbridge(BigInt(zxRef), EVENT_TYPE_MAP[eventType] ?? 0, event);
1166
+ bridge.eventbridge(BigInt(zxRef), delegatedEvent.eventTypeId, event);
1186
1167
  if (event.cancelBubble)
1187
1168
  break;
1188
1169
  }
1189
1170
  target = target.parentElement;
1190
1171
  }
1191
1172
  };
1192
- const options = { passive: eventType.startsWith("touch") || eventType === "scroll" };
1193
- root.addEventListener(eventType, listener, options);
1194
- removers.push(() => root.removeEventListener(eventType, listener, options));
1173
+ const options = { passive: delegatedEvent.domType.startsWith("touch") || delegatedEvent.domType === "scroll" };
1174
+ root.addEventListener(delegatedEvent.domType, listener, options);
1175
+ removers.push(() => root.removeEventListener(delegatedEvent.domType, listener, options));
1195
1176
  }
1196
1177
  return () => {
1197
1178
  for (const remove of removers)
@@ -1707,6 +1688,61 @@ function createWasiImports({
1707
1688
  dv.setBigUint64(filestat_ptr + 56, 0n, true);
1708
1689
  return 0;
1709
1690
  },
1691
+ fd_filestat_set_size(_fd, _size) {
1692
+ return 76;
1693
+ },
1694
+ fd_filestat_set_times(_fd, _atim, _mtim, _fst_flags) {
1695
+ return 76;
1696
+ },
1697
+ fd_fdstat_set_flags(_fd, _flags) {
1698
+ return 0;
1699
+ },
1700
+ fd_fdstat_set_rights(_fd, _rights_base, _rights_inheriting) {
1701
+ return 0;
1702
+ },
1703
+ fd_sync(_fd) {
1704
+ return 0;
1705
+ },
1706
+ fd_datasync(_fd) {
1707
+ return 0;
1708
+ },
1709
+ fd_advise(_fd, _offset, _len, _advice) {
1710
+ return 0;
1711
+ },
1712
+ fd_allocate(_fd, _offset, _len) {
1713
+ return 76;
1714
+ },
1715
+ fd_tell(_fd, offset_ptr) {
1716
+ v().setBigUint64(offset_ptr, 0n, true);
1717
+ return 0;
1718
+ },
1719
+ fd_renumber(_from, _to) {
1720
+ return 0;
1721
+ },
1722
+ path_filestat_set_times(_fd, _flags, _path, _path_len, _atim, _mtim, _fst_flags) {
1723
+ return 76;
1724
+ },
1725
+ path_link(_old_fd, _old_flags, _old_path, _old_path_len, _new_fd, _new_path, _new_path_len) {
1726
+ return 76;
1727
+ },
1728
+ path_symlink(_old_path, _old_path_len, _fd, _new_path, _new_path_len) {
1729
+ return 76;
1730
+ },
1731
+ proc_raise(_sig) {
1732
+ return 0;
1733
+ },
1734
+ sock_recv(_fd, _ri_data, _ri_data_len, _ri_flags, ro_datalen_ptr, ro_flags_ptr) {
1735
+ v().setUint32(ro_datalen_ptr, 0, true);
1736
+ v().setUint32(ro_flags_ptr, 0, true);
1737
+ return 76;
1738
+ },
1739
+ sock_send(_fd, _si_data, _si_data_len, _si_flags, so_datalen_ptr) {
1740
+ v().setUint32(so_datalen_ptr, 0, true);
1741
+ return 76;
1742
+ },
1743
+ sock_shutdown(_fd, _how) {
1744
+ return 76;
1745
+ },
1710
1746
  fd_seek(_fd, _offset, _whence, newoffset_ptr) {
1711
1747
  v().setBigInt64(newoffset_ptr, 0n, true);
1712
1748
  return 0;
@@ -1721,6 +1757,10 @@ function createWasiImports({
1721
1757
  v().setBigUint64(time_ptr, BigInt(Date.now()) * 1000000n, true);
1722
1758
  return 0;
1723
1759
  },
1760
+ clock_res_get(_id, res_ptr) {
1761
+ v().setBigUint64(res_ptr, 1000000n, true);
1762
+ return 0;
1763
+ },
1724
1764
  random_get(buf_ptr, buf_len) {
1725
1765
  crypto.getRandomValues(new Uint8Array(wasmMemory.buffer, buf_ptr, buf_len));
1726
1766
  return 0;
package/index.js CHANGED
@@ -570,6 +570,61 @@ function createWasiImports({
570
570
  dv.setBigUint64(filestat_ptr + 56, 0n, true);
571
571
  return 0;
572
572
  },
573
+ fd_filestat_set_size(_fd, _size) {
574
+ return 76;
575
+ },
576
+ fd_filestat_set_times(_fd, _atim, _mtim, _fst_flags) {
577
+ return 76;
578
+ },
579
+ fd_fdstat_set_flags(_fd, _flags) {
580
+ return 0;
581
+ },
582
+ fd_fdstat_set_rights(_fd, _rights_base, _rights_inheriting) {
583
+ return 0;
584
+ },
585
+ fd_sync(_fd) {
586
+ return 0;
587
+ },
588
+ fd_datasync(_fd) {
589
+ return 0;
590
+ },
591
+ fd_advise(_fd, _offset, _len, _advice) {
592
+ return 0;
593
+ },
594
+ fd_allocate(_fd, _offset, _len) {
595
+ return 76;
596
+ },
597
+ fd_tell(_fd, offset_ptr) {
598
+ v().setBigUint64(offset_ptr, 0n, true);
599
+ return 0;
600
+ },
601
+ fd_renumber(_from, _to) {
602
+ return 0;
603
+ },
604
+ path_filestat_set_times(_fd, _flags, _path, _path_len, _atim, _mtim, _fst_flags) {
605
+ return 76;
606
+ },
607
+ path_link(_old_fd, _old_flags, _old_path, _old_path_len, _new_fd, _new_path, _new_path_len) {
608
+ return 76;
609
+ },
610
+ path_symlink(_old_path, _old_path_len, _fd, _new_path, _new_path_len) {
611
+ return 76;
612
+ },
613
+ proc_raise(_sig) {
614
+ return 0;
615
+ },
616
+ sock_recv(_fd, _ri_data, _ri_data_len, _ri_flags, ro_datalen_ptr, ro_flags_ptr) {
617
+ v().setUint32(ro_datalen_ptr, 0, true);
618
+ v().setUint32(ro_flags_ptr, 0, true);
619
+ return 76;
620
+ },
621
+ sock_send(_fd, _si_data, _si_data_len, _si_flags, so_datalen_ptr) {
622
+ v().setUint32(so_datalen_ptr, 0, true);
623
+ return 76;
624
+ },
625
+ sock_shutdown(_fd, _how) {
626
+ return 76;
627
+ },
573
628
  fd_seek(_fd, _offset, _whence, newoffset_ptr) {
574
629
  v().setBigInt64(newoffset_ptr, 0n, true);
575
630
  return 0;
@@ -584,6 +639,10 @@ function createWasiImports({
584
639
  v().setBigUint64(time_ptr, BigInt(Date.now()) * 1000000n, true);
585
640
  return 0;
586
641
  },
642
+ clock_res_get(_id, res_ptr) {
643
+ v().setBigUint64(res_ptr, 1000000n, true);
644
+ return 0;
645
+ },
587
646
  random_get(buf_ptr, buf_len) {
588
647
  crypto.getRandomValues(new Uint8Array(wasmMemory.buffer, buf_ptr, buf_len));
589
648
  return 0;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ziex",
3
- "version": "0.1.0-dev.1050",
3
+ "version": "0.1.0-dev.1103",
4
4
  "description": "ZX is a framework for building web applications with Zig.",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -37,7 +37,7 @@
37
37
  "license": "MIT",
38
38
  "scripts": {},
39
39
  "dependencies": {
40
- "@ziex/cli": "0.1.0-dev.1050"
40
+ "@ziex/cli": "0.1.0-dev.1103"
41
41
  },
42
42
  "peerDependenciesMeta": {
43
43
  "react": {
package/wasi.d.ts CHANGED
@@ -37,10 +37,28 @@ export declare function createWasiImports({ request, stdinData, onStdout, }: {
37
37
  fd_pread(_fd: number, _iovs: number, _iovs_len: number, _offset: bigint, nread_ptr: number): number;
38
38
  fd_pwrite(_fd: number, _iovs: number, _iovs_len: number, _offset: bigint, nwritten_ptr: number): number;
39
39
  fd_filestat_get(_fd: number, filestat_ptr: number): number;
40
+ fd_filestat_set_size(_fd: number, _size: bigint): number;
41
+ fd_filestat_set_times(_fd: number, _atim: bigint, _mtim: bigint, _fst_flags: number): number;
42
+ fd_fdstat_set_flags(_fd: number, _flags: number): number;
43
+ fd_fdstat_set_rights(_fd: number, _rights_base: bigint, _rights_inheriting: bigint): number;
44
+ fd_sync(_fd: number): number;
45
+ fd_datasync(_fd: number): number;
46
+ fd_advise(_fd: number, _offset: bigint, _len: bigint, _advice: number): number;
47
+ fd_allocate(_fd: number, _offset: bigint, _len: bigint): number;
48
+ fd_tell(_fd: number, offset_ptr: number): number;
49
+ fd_renumber(_from: number, _to: number): number;
50
+ path_filestat_set_times(_fd: number, _flags: number, _path: number, _path_len: number, _atim: bigint, _mtim: bigint, _fst_flags: number): number;
51
+ path_link(_old_fd: number, _old_flags: number, _old_path: number, _old_path_len: number, _new_fd: number, _new_path: number, _new_path_len: number): number;
52
+ path_symlink(_old_path: number, _old_path_len: number, _fd: number, _new_path: number, _new_path_len: number): number;
53
+ proc_raise(_sig: number): number;
54
+ sock_recv(_fd: number, _ri_data: number, _ri_data_len: number, _ri_flags: number, ro_datalen_ptr: number, ro_flags_ptr: number): number;
55
+ sock_send(_fd: number, _si_data: number, _si_data_len: number, _si_flags: number, so_datalen_ptr: number): number;
56
+ sock_shutdown(_fd: number, _how: number): number;
40
57
  fd_seek(_fd: number, _offset: bigint, _whence: number, newoffset_ptr: number): number;
41
58
  proc_exit(code: number): never;
42
59
  sched_yield(): number;
43
60
  clock_time_get(_id: number, _precision: bigint, time_ptr: number): number;
61
+ clock_res_get(_id: number, res_ptr: number): number;
44
62
  random_get(buf_ptr: number, buf_len: number): number;
45
63
  path_open(_fd: number, _dirflags: number, _path: number, _path_len: number, _oflags: number, _rights_base: bigint, _rights_inheriting: bigint, _fdflags: number, opened_fd_ptr: number): number;
46
64
  path_create_directory(_fd: number, _path: number, _path_len: number): number;
package/wasm/index.js CHANGED
@@ -84,6 +84,8 @@ class ZigJS {
84
84
  const bytes = encoder.encode(val);
85
85
  if (bytes.byteLength > max)
86
86
  return;
87
+ if (bytes.length === 0)
88
+ return;
87
89
  new Uint8Array(this.memory.buffer, ptr, bytes.length).set(bytes);
88
90
  }
89
91
  valueNew(out, id, argsAddr, argsLen) {
@@ -1129,69 +1131,48 @@ var TAG_NAMES = [
1129
1131
  "view"
1130
1132
  ];
1131
1133
  var DELEGATED_EVENTS = [
1132
- "click",
1133
- "dblclick",
1134
- "input",
1135
- "change",
1136
- "submit",
1137
- "focus",
1138
- "blur",
1139
- "keydown",
1140
- "keyup",
1141
- "keypress",
1142
- "mouseenter",
1143
- "mouseleave",
1144
- "mousedown",
1145
- "mouseup",
1146
- "mousemove",
1147
- "touchstart",
1148
- "touchend",
1149
- "touchmove",
1150
- "scroll"
1134
+ { domType: "click", eventTypeId: 0 },
1135
+ { domType: "dblclick", eventTypeId: 1 },
1136
+ { domType: "input", eventTypeId: 2 },
1137
+ { domType: "change", eventTypeId: 3 },
1138
+ { domType: "submit", eventTypeId: 4 },
1139
+ { domType: "focusin", eventTypeId: 5 },
1140
+ { domType: "focusout", eventTypeId: 6 },
1141
+ { domType: "keydown", eventTypeId: 7 },
1142
+ { domType: "keyup", eventTypeId: 8 },
1143
+ { domType: "keypress", eventTypeId: 9 },
1144
+ { domType: "mouseenter", eventTypeId: 10 },
1145
+ { domType: "mouseleave", eventTypeId: 11 },
1146
+ { domType: "mousedown", eventTypeId: 12 },
1147
+ { domType: "mouseup", eventTypeId: 13 },
1148
+ { domType: "mousemove", eventTypeId: 14 },
1149
+ { domType: "touchstart", eventTypeId: 15 },
1150
+ { domType: "touchend", eventTypeId: 16 },
1151
+ { domType: "touchmove", eventTypeId: 17 },
1152
+ { domType: "scroll", eventTypeId: 18 }
1151
1153
  ];
1152
- var EVENT_TYPE_MAP = {
1153
- click: 0,
1154
- dblclick: 1,
1155
- input: 2,
1156
- change: 3,
1157
- submit: 4,
1158
- focus: 5,
1159
- blur: 6,
1160
- keydown: 7,
1161
- keyup: 8,
1162
- keypress: 9,
1163
- mouseenter: 10,
1164
- mouseleave: 11,
1165
- mousedown: 12,
1166
- mouseup: 13,
1167
- mousemove: 14,
1168
- touchstart: 15,
1169
- touchend: 16,
1170
- touchmove: 17,
1171
- scroll: 18
1172
- };
1173
1154
  var eventHandlerModes = new Map;
1174
1155
  function initEventDelegation(bridge, rootSelector = "body") {
1175
1156
  const root = document.querySelector(rootSelector);
1176
1157
  if (!root)
1177
1158
  return () => {};
1178
1159
  const removers = [];
1179
- for (const eventType of DELEGATED_EVENTS) {
1160
+ for (const delegatedEvent of DELEGATED_EVENTS) {
1180
1161
  const listener = (event) => {
1181
1162
  let target = event.target;
1182
1163
  while (target && target !== document.body) {
1183
1164
  const zxRef = target.__zx_ref;
1184
1165
  if (zxRef !== undefined) {
1185
- bridge.eventbridge(BigInt(zxRef), EVENT_TYPE_MAP[eventType] ?? 0, event);
1166
+ bridge.eventbridge(BigInt(zxRef), delegatedEvent.eventTypeId, event);
1186
1167
  if (event.cancelBubble)
1187
1168
  break;
1188
1169
  }
1189
1170
  target = target.parentElement;
1190
1171
  }
1191
1172
  };
1192
- const options = { passive: eventType.startsWith("touch") || eventType === "scroll" };
1193
- root.addEventListener(eventType, listener, options);
1194
- removers.push(() => root.removeEventListener(eventType, listener, options));
1173
+ const options = { passive: delegatedEvent.domType.startsWith("touch") || delegatedEvent.domType === "scroll" };
1174
+ root.addEventListener(delegatedEvent.domType, listener, options);
1175
+ removers.push(() => root.removeEventListener(delegatedEvent.domType, listener, options));
1195
1176
  }
1196
1177
  return () => {
1197
1178
  for (const remove of removers)
package/wasm/init.js CHANGED
@@ -69,6 +69,8 @@ class ZigJS {
69
69
  const bytes = encoder.encode(val);
70
70
  if (bytes.byteLength > max)
71
71
  return;
72
+ if (bytes.length === 0)
73
+ return;
72
74
  new Uint8Array(this.memory.buffer, ptr, bytes.length).set(bytes);
73
75
  }
74
76
  valueNew(out, id, argsAddr, argsLen) {
@@ -1091,69 +1093,48 @@ var TAG_NAMES = [
1091
1093
  "view"
1092
1094
  ];
1093
1095
  var DELEGATED_EVENTS = [
1094
- "click",
1095
- "dblclick",
1096
- "input",
1097
- "change",
1098
- "submit",
1099
- "focus",
1100
- "blur",
1101
- "keydown",
1102
- "keyup",
1103
- "keypress",
1104
- "mouseenter",
1105
- "mouseleave",
1106
- "mousedown",
1107
- "mouseup",
1108
- "mousemove",
1109
- "touchstart",
1110
- "touchend",
1111
- "touchmove",
1112
- "scroll"
1096
+ { domType: "click", eventTypeId: 0 },
1097
+ { domType: "dblclick", eventTypeId: 1 },
1098
+ { domType: "input", eventTypeId: 2 },
1099
+ { domType: "change", eventTypeId: 3 },
1100
+ { domType: "submit", eventTypeId: 4 },
1101
+ { domType: "focusin", eventTypeId: 5 },
1102
+ { domType: "focusout", eventTypeId: 6 },
1103
+ { domType: "keydown", eventTypeId: 7 },
1104
+ { domType: "keyup", eventTypeId: 8 },
1105
+ { domType: "keypress", eventTypeId: 9 },
1106
+ { domType: "mouseenter", eventTypeId: 10 },
1107
+ { domType: "mouseleave", eventTypeId: 11 },
1108
+ { domType: "mousedown", eventTypeId: 12 },
1109
+ { domType: "mouseup", eventTypeId: 13 },
1110
+ { domType: "mousemove", eventTypeId: 14 },
1111
+ { domType: "touchstart", eventTypeId: 15 },
1112
+ { domType: "touchend", eventTypeId: 16 },
1113
+ { domType: "touchmove", eventTypeId: 17 },
1114
+ { domType: "scroll", eventTypeId: 18 }
1113
1115
  ];
1114
- var EVENT_TYPE_MAP = {
1115
- click: 0,
1116
- dblclick: 1,
1117
- input: 2,
1118
- change: 3,
1119
- submit: 4,
1120
- focus: 5,
1121
- blur: 6,
1122
- keydown: 7,
1123
- keyup: 8,
1124
- keypress: 9,
1125
- mouseenter: 10,
1126
- mouseleave: 11,
1127
- mousedown: 12,
1128
- mouseup: 13,
1129
- mousemove: 14,
1130
- touchstart: 15,
1131
- touchend: 16,
1132
- touchmove: 17,
1133
- scroll: 18
1134
- };
1135
1116
  var eventHandlerModes = new Map;
1136
1117
  function initEventDelegation(bridge, rootSelector = "body") {
1137
1118
  const root = document.querySelector(rootSelector);
1138
1119
  if (!root)
1139
1120
  return () => {};
1140
1121
  const removers = [];
1141
- for (const eventType of DELEGATED_EVENTS) {
1122
+ for (const delegatedEvent of DELEGATED_EVENTS) {
1142
1123
  const listener = (event) => {
1143
1124
  let target = event.target;
1144
1125
  while (target && target !== document.body) {
1145
1126
  const zxRef = target.__zx_ref;
1146
1127
  if (zxRef !== undefined) {
1147
- bridge.eventbridge(BigInt(zxRef), EVENT_TYPE_MAP[eventType] ?? 0, event);
1128
+ bridge.eventbridge(BigInt(zxRef), delegatedEvent.eventTypeId, event);
1148
1129
  if (event.cancelBubble)
1149
1130
  break;
1150
1131
  }
1151
1132
  target = target.parentElement;
1152
1133
  }
1153
1134
  };
1154
- const options = { passive: eventType.startsWith("touch") || eventType === "scroll" };
1155
- root.addEventListener(eventType, listener, options);
1156
- removers.push(() => root.removeEventListener(eventType, listener, options));
1135
+ const options = { passive: delegatedEvent.domType.startsWith("touch") || delegatedEvent.domType === "scroll" };
1136
+ root.addEventListener(delegatedEvent.domType, listener, options);
1137
+ removers.push(() => root.removeEventListener(delegatedEvent.domType, listener, options));
1157
1138
  }
1158
1139
  return () => {
1159
1140
  for (const remove of removers)