@toyz/loom 0.12.8 → 0.13.0

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.
@@ -15,118 +15,160 @@ const SVG_TAGS = new Set([
15
15
  ]);
16
16
  /** Properties that must be set as JS properties, not HTML attributes */
17
17
  const PROP_KEYS = new Set(["value", "checked", "selected", "indeterminate"]);
18
+ /**
19
+ * Cache event type strings: "onClick" → "click", "onInput" → "input"
20
+ * Avoids allocating a new .slice(2).toLowerCase() string per jsx() call.
21
+ */
22
+ const _eventTypeCache = {};
23
+ /**
24
+ * V8 optimization: cloneNode(false) is 2-3x faster than createElement.
25
+ * Cache template elements for repeated tag names.
26
+ */
27
+ const _elCache = {};
28
+ const _svgCache = {};
29
+ function acquireElement(tag, isSVG) {
30
+ if (isSVG) {
31
+ let tmpl = _svgCache[tag];
32
+ if (!tmpl) {
33
+ tmpl = document.createElementNS(SVG_NS, tag);
34
+ _svgCache[tag] = tmpl;
35
+ }
36
+ return tmpl.cloneNode(false);
37
+ }
38
+ // Custom elements (tag contains hyphen) MUST use createElement — cloneNode
39
+ // does NOT call the custom element constructor, breaking shadow DOM, reactivity, etc.
40
+ if (tag.indexOf('-') !== -1)
41
+ return document.createElement(tag);
42
+ let tmpl = _elCache[tag];
43
+ if (!tmpl) {
44
+ tmpl = document.createElement(tag);
45
+ _elCache[tag] = tmpl;
46
+ }
47
+ return tmpl.cloneNode(false);
48
+ }
18
49
  export function jsx(tag, props) {
19
50
  if (typeof tag === "function")
20
51
  return tag(props);
21
- const isSVG = SVG_TAGS.has(tag);
22
- const el = isSVG
23
- ? document.createElementNS(SVG_NS, tag)
24
- : document.createElement(tag);
25
- for (const [key, val] of Object.entries(props ?? {})) {
26
- if (key === "children")
27
- continue;
28
- if (key.startsWith("on") && typeof val === "function") {
29
- const eventType = key.slice(2).toLowerCase();
30
- // Track for morph diffing
31
- let events = el[LOOM_EVENTS];
32
- if (!events) {
33
- events = new Map();
34
- el[LOOM_EVENTS] = events;
35
- }
36
- if (!events.has(eventType)) {
37
- el.addEventListener(eventType, loomEventProxy);
38
- }
39
- events.set(eventType, val);
40
- }
41
- else if (key === "ref" && typeof val === "function") {
42
- val(el);
43
- }
44
- else if (key === "style" && typeof val === "object") {
45
- Object.assign(el.style, val);
46
- }
47
- else if (key === "className" || key === "class") {
48
- if (typeof val === "function") {
49
- // Closure binding for class
50
- startSubTrace();
51
- try {
52
- const res = val();
53
- if (isSVG)
54
- el.setAttribute("class", String(res));
55
- else
56
- el.className = String(res);
57
- const deps = endSubTrace();
58
- if (deps.size > 0) {
59
- addBinding(deps, el, () => {
60
- const v = val();
61
- if (isSVG)
62
- el.setAttribute("class", String(v));
63
- else
64
- el.className = String(v);
65
- });
66
- }
52
+ // Fast SVG rejection: SVG tags only start with c,d,e,f,g,i,l,m,p,r,s,t,u
53
+ // Common HTML tags (div, span, button, a, h1-h6, input, label, ul, li, etc.)
54
+ // are rejected before touching the Set.
55
+ const fc = tag.charCodeAt(0);
56
+ const isSVG = (fc === 99 || fc === 100 || fc === 101 || fc === 102 || // c,d,e,f
57
+ fc === 103 || fc === 105 || fc === 108 || fc === 109 || // g,i,l,m
58
+ fc === 112 || fc === 114 || fc === 115 || fc === 116 || // p,r,s,t
59
+ fc === 117) && SVG_TAGS.has(tag); // u
60
+ const el = acquireElement(tag, isSVG);
61
+ if (props)
62
+ for (const key in props) {
63
+ const val = props[key];
64
+ if (key === "children")
65
+ continue;
66
+ if (key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && typeof val === "function") { // 'o','n'
67
+ let eventType = _eventTypeCache[key];
68
+ if (!eventType) {
69
+ eventType = key.slice(2).toLowerCase();
70
+ _eventTypeCache[key] = eventType;
71
+ }
72
+ // Track for morph diffing
73
+ let events = el[LOOM_EVENTS];
74
+ if (!events) {
75
+ events = Object.create(null);
76
+ el[LOOM_EVENTS] = events;
67
77
  }
68
- catch (e) {
69
- console.error("Loom: Error executing class binding", e);
70
- endSubTrace();
78
+ if (!(eventType in events)) {
79
+ el.addEventListener(eventType, loomEventProxy);
71
80
  }
81
+ events[eventType] = val;
72
82
  }
73
- else {
74
- if (isSVG) {
75
- el.setAttribute("class", val);
83
+ else if (key === "ref" && typeof val === "function") {
84
+ val(el);
85
+ }
86
+ else if (key === "style" && typeof val === "object") {
87
+ Object.assign(el.style, val);
88
+ }
89
+ else if (key === "className" || key === "class") {
90
+ if (typeof val === "function") {
91
+ // Closure binding for class
92
+ startSubTrace();
93
+ try {
94
+ const res = val();
95
+ if (isSVG)
96
+ el.setAttribute("class", '' + res);
97
+ else
98
+ el.className = '' + res;
99
+ const deps = endSubTrace();
100
+ if (deps.size > 0) {
101
+ addBinding(deps, el, () => {
102
+ const v = val();
103
+ if (isSVG)
104
+ el.setAttribute("class", '' + v);
105
+ else
106
+ el.className = '' + v;
107
+ });
108
+ }
109
+ }
110
+ catch (e) {
111
+ console.error("Loom: Error executing class binding", e);
112
+ endSubTrace();
113
+ }
76
114
  }
77
115
  else {
78
- el.className = val;
116
+ if (isSVG) {
117
+ el.setAttribute("class", val);
118
+ }
119
+ else {
120
+ el.className = val;
121
+ }
79
122
  }
80
123
  }
81
- }
82
- else if (key === "htmlFor") {
83
- el.setAttribute("for", val);
84
- }
85
- else if (key === "rawHTML" || key === "innerHTML") {
86
- el.innerHTML = val;
87
- el.__loomRawHTML = true;
88
- }
89
- else if (PROP_KEYS.has(key)) {
90
- el[key] = val;
91
- }
92
- else if (typeof val === "boolean") {
93
- val ? el.setAttribute(key, "") : el.removeAttribute(key);
94
- }
95
- else if (typeof val === "object" || typeof val === "function") {
96
- // Non-primitive values (arrays, objects) — set as JS property
97
- el[key] = val;
98
- // Track for morph diffing (so morph copies them to the existing element)
99
- let tracked = el[LOOM_PROPS];
100
- if (!tracked) {
101
- tracked = new Map();
102
- el[LOOM_PROPS] = tracked;
124
+ else if (key === "htmlFor") {
125
+ el.setAttribute("for", val);
103
126
  }
104
- tracked.set(key, val);
105
- }
106
- else {
107
- // Check for closure binding: class={() => this.theme}
108
- if (typeof val === "function") {
109
- startSubTrace();
110
- try {
111
- const res = val();
112
- el.setAttribute(key, String(res));
113
- const deps = endSubTrace();
114
- if (deps.size > 0) {
115
- addBinding(deps, el, () => el.setAttribute(key, String(val())));
116
- }
117
- }
118
- catch (e) {
119
- // Fallback or error handling for failed binding execution
120
- console.error(`Loom: Error executing binding for attribute '${key}'`, e);
121
- el.setAttribute(key, "");
122
- endSubTrace(); // Ensure trace stack is popped
127
+ else if (key === "rawHTML" || key === "innerHTML") {
128
+ el.innerHTML = val;
129
+ el.__loomRawHTML = true;
130
+ }
131
+ else if (PROP_KEYS.has(key)) {
132
+ el[key] = val;
133
+ }
134
+ else if (typeof val === "boolean") {
135
+ val ? el.setAttribute(key, "") : el.removeAttribute(key);
136
+ }
137
+ else if (typeof val === "object" || typeof val === "function") {
138
+ // Non-primitive values (arrays, objects) set as JS property
139
+ el[key] = val;
140
+ // Track for morph diffing (so morph copies them to the existing element)
141
+ let tracked = el[LOOM_PROPS];
142
+ if (!tracked) {
143
+ tracked = Object.create(null);
144
+ el[LOOM_PROPS] = tracked;
123
145
  }
146
+ tracked[key] = val;
124
147
  }
125
148
  else {
126
- el.setAttribute(key, String(val));
149
+ // Check for closure binding: class={() => this.theme}
150
+ if (typeof val === "function") {
151
+ startSubTrace();
152
+ try {
153
+ const res = val();
154
+ el.setAttribute(key, '' + res);
155
+ const deps = endSubTrace();
156
+ if (deps.size > 0) {
157
+ addBinding(deps, el, () => el.setAttribute(key, '' + val()));
158
+ }
159
+ }
160
+ catch (e) {
161
+ // Fallback or error handling for failed binding execution
162
+ console.error(`Loom: Error executing binding for attribute '${key}'`, e);
163
+ el.setAttribute(key, "");
164
+ endSubTrace(); // Ensure trace stack is popped
165
+ }
166
+ }
167
+ else {
168
+ el.setAttribute(key, '' + val);
169
+ }
127
170
  }
128
171
  }
129
- }
130
172
  appendChildren(el, props?.children);
131
173
  return el;
132
174
  }
@@ -141,7 +183,8 @@ function appendChildren(parent, children) {
141
183
  if (children == null || children === false)
142
184
  return;
143
185
  if (Array.isArray(children)) {
144
- children.forEach((c) => appendChildren(parent, c));
186
+ for (let i = 0; i < children.length; i++)
187
+ appendChildren(parent, children[i]);
145
188
  }
146
189
  else if (children instanceof Node) {
147
190
  parent.appendChild(children);
@@ -161,12 +204,12 @@ function appendChildren(parent, children) {
161
204
  startSubTrace();
162
205
  try {
163
206
  const res = children();
164
- textNode.textContent = String(res);
207
+ textNode.textContent = '' + res;
165
208
  const deps = endSubTrace();
166
209
  if (deps.size > 0) {
167
210
  // Create binding with the closure itself as the patcher
168
211
  addBinding(deps, textNode, () => {
169
- textNode.textContent = String(children());
212
+ textNode.textContent = '' + children();
170
213
  });
171
214
  }
172
215
  }
@@ -176,7 +219,7 @@ function appendChildren(parent, children) {
176
219
  }
177
220
  }
178
221
  else {
179
- parent.appendChild(document.createTextNode(String(children)));
222
+ parent.appendChild(document.createTextNode('' + children));
180
223
  }
181
224
  }
182
225
  //# sourceMappingURL=jsx-runtime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jsx-runtime.js","sourceRoot":"","sources":["../src/jsx-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jsx-runtime.js","sourceRoot":"","sources":["../src/jsx-runtime.ts"],"names":[],"mappings":"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"}
package/dist/morph.d.ts CHANGED
@@ -16,9 +16,9 @@ export declare const LOOM_EVENTS = "__loomEvents";
16
16
  /** Expando key for tracked JS properties (non-attribute, non-event) */
17
17
  export declare const LOOM_PROPS = "__loomProps";
18
18
  /** Type for tracked events on an element */
19
- export type LoomEventMap = Map<string, EventListener>;
19
+ export type LoomEventMap = Record<string, EventListener>;
20
20
  /** Type for tracked JS properties on an element */
21
- export type LoomPropMap = Map<string, any>;
21
+ export type LoomPropMap = Record<string, any>;
22
22
  /**
23
23
  * Morph the children of `root` (typically a ShadowRoot) to match `newTree`.
24
24
  * `newTree` can be a single Node or an array of Nodes (from Fragment).
@@ -1 +1 @@
1
- {"version":3,"file":"morph.d.ts","sourceRoot":"","sources":["../src/morph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,8CAA8C;AAC9C,eAAO,MAAM,WAAW,iBAAiB,CAAC;AAE1C,uEAAuE;AACvE,eAAO,MAAM,UAAU,gBAAgB,CAAC;AAExC,4CAA4C;AAC5C,MAAM,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAEtD,mDAAmD;AACnD,MAAM,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAI3C;;;GAGG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,WAAW,EAAE,OAAO,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,IAAI,CAGlF;AAiKD,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,GAAG,IAAI,CAO5D"}
1
+ {"version":3,"file":"morph.d.ts","sourceRoot":"","sources":["../src/morph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,8CAA8C;AAC9C,eAAO,MAAM,WAAW,iBAAiB,CAAC;AAE1C,uEAAuE;AACvE,eAAO,MAAM,UAAU,gBAAgB,CAAC;AAExC,4CAA4C;AAC5C,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAEzD,mDAAmD;AACnD,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAI9C;;;GAGG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,WAAW,EAAE,OAAO,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,IAAI,CAGlF;AAgLD,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,GAAG,IAAI,CAO5D"}
package/dist/morph.js CHANGED
@@ -59,10 +59,20 @@ function morphChildren(parent, newChildren) {
59
59
  }
60
60
  continue;
61
61
  }
62
- // Skip unconsumed keyed nodes or kept nodes
63
- while (oldChild && ((oldKeyed && getKey(oldChild) && oldKeyed.has(getKey(oldChild))) ||
64
- (hasKeep && isKeep(oldChild)))) {
65
- oldChild = oldChild.nextSibling;
62
+ // Skip unconsumed keyed nodes or kept nodes — cache getKey to avoid double call
63
+ while (oldChild) {
64
+ if (oldKeyed) {
65
+ const ock = (oldChild.nodeType === 1) ? oldChild.getAttribute("loom-key") : null;
66
+ if (ock && oldKeyed.has(ock)) {
67
+ oldChild = oldChild.nextSibling;
68
+ continue;
69
+ }
70
+ }
71
+ if (hasKeep && oldChild.nodeType === 1 && oldChild.hasAttribute("loom-keep")) {
72
+ oldChild = oldChild.nextSibling;
73
+ continue;
74
+ }
75
+ break;
66
76
  }
67
77
  if (!oldChild) {
68
78
  // No more old children — append
@@ -81,7 +91,8 @@ function morphChildren(parent, newChildren) {
81
91
  // Remove unconsumed old children
82
92
  while (oldChild) {
83
93
  const next = oldChild.nextSibling;
84
- const isUnconsumedKeyed = oldKeyed && getKey(oldChild) && oldKeyed.has(getKey(oldChild));
94
+ const oldKey = getKey(oldChild);
95
+ const isUnconsumedKeyed = oldKeyed && oldKey && oldKeyed.has(oldKey);
85
96
  if (!isKeep(oldChild) && !isUnconsumedKeyed) {
86
97
  parent.removeChild(oldChild);
87
98
  }
@@ -98,6 +109,9 @@ function morphChildren(parent, newChildren) {
98
109
  }
99
110
  /** Morph a single node in-place. */
100
111
  function morphNode(old, next) {
112
+ // Identity short-circuit — same node, nothing to diff
113
+ if (old === next)
114
+ return;
101
115
  // Text nodes
102
116
  if (old.nodeType === Node.TEXT_NODE && next.nodeType === Node.TEXT_NODE) {
103
117
  if (old.textContent !== next.textContent) {
@@ -116,8 +130,12 @@ function morphNode(old, next) {
116
130
  if (old.nodeType === Node.ELEMENT_NODE && next.nodeType === Node.ELEMENT_NODE) {
117
131
  const oldEl = old;
118
132
  const nextEl = next;
119
- // Patch attributes
120
- patchAttributes(oldEl, nextEl);
133
+ // Patch attributes — skip if both have none
134
+ const oldAttrLen = oldEl.attributes.length;
135
+ const nextAttrLen = nextEl.attributes.length;
136
+ if (oldAttrLen > 0 || nextAttrLen > 0) {
137
+ patchAttributes(oldEl, nextEl);
138
+ }
121
139
  // Patch event listeners
122
140
  patchEvents(oldEl, nextEl);
123
141
  // Patch special DOM properties
@@ -137,8 +155,12 @@ function morphNode(old, next) {
137
155
  if (oldEl.constructor?.__loom_noshadow) {
138
156
  return;
139
157
  }
140
- // Recurse children
141
- morphChildren(oldEl, Array.from(nextEl.childNodes));
158
+ // Recurse children — avoid Array.from iterator overhead
159
+ const nextNodes = nextEl.childNodes;
160
+ const nextArr = new Array(nextNodes.length);
161
+ for (let i = 0; i < nextNodes.length; i++)
162
+ nextArr[i] = nextNodes[i];
163
+ morphChildren(oldEl, nextArr);
142
164
  }
143
165
  }
144
166
  // ── Attribute diffing ──
@@ -161,7 +183,7 @@ function patchAttributes(old, next) {
161
183
  }
162
184
  }
163
185
  export function loomEventProxy(e) {
164
- const handler = this[LOOM_EVENTS]?.get(e.type);
186
+ const handler = this[LOOM_EVENTS]?.[e.type];
165
187
  if (typeof handler === "function") {
166
188
  handler.call(this, e);
167
189
  }
@@ -170,31 +192,42 @@ export function loomEventProxy(e) {
170
192
  }
171
193
  }
172
194
  function patchEvents(old, next) {
173
- const oldEvents = old[LOOM_EVENTS] ?? new Map();
174
- const newEvents = next[LOOM_EVENTS] ?? new Map();
195
+ const oldEvents = old[LOOM_EVENTS];
196
+ const newEvents = next[LOOM_EVENTS];
197
+ // Early exit: both have no events
198
+ if (!oldEvents && !newEvents)
199
+ return;
200
+ const oe = oldEvents ?? Object.create(null);
201
+ const ne = newEvents ?? Object.create(null);
175
202
  // Remove old listeners not in new
176
- for (const type of oldEvents.keys()) {
177
- if (!newEvents.has(type)) {
203
+ for (const type in oe) {
204
+ if (!(type in ne)) {
178
205
  old.removeEventListener(type, loomEventProxy);
179
- oldEvents.delete(type);
206
+ delete oe[type];
180
207
  }
181
208
  }
182
209
  // Add/replace listeners from new
183
- for (const [type, listener] of newEvents) {
184
- if (!oldEvents.has(type)) {
210
+ for (const type in ne) {
211
+ if (!(type in oe)) {
185
212
  old.addEventListener(type, loomEventProxy);
186
213
  }
187
- oldEvents.set(type, listener);
214
+ oe[type] = ne[type];
188
215
  }
189
- // Transfer the map to old element
190
- if (newEvents.size > 0) {
191
- old[LOOM_EVENTS] = oldEvents;
216
+ // Transfer the record to old element if new has any events
217
+ let hasNew = false;
218
+ for (const _ in ne) {
219
+ hasNew = true;
220
+ break;
221
+ }
222
+ if (hasNew) {
223
+ old[LOOM_EVENTS] = oe;
192
224
  }
193
225
  }
194
226
  // ── DOM property patching ──
195
227
  const PROP_KEYS = ["value", "checked", "selected", "indeterminate"];
196
228
  function patchProperties(old, next) {
197
- for (const key of PROP_KEYS) {
229
+ for (let i = 0; i < PROP_KEYS.length; i++) {
230
+ const key = PROP_KEYS[i];
198
231
  if (key in next && old[key] !== next[key]) {
199
232
  old[key] = next[key];
200
233
  }
@@ -203,22 +236,26 @@ function patchProperties(old, next) {
203
236
  // ── JSX JS-property patching ──
204
237
  function patchJSProps(old, next) {
205
238
  const newProps = next[LOOM_PROPS];
206
- const oldProps = old[LOOM_PROPS] ?? new Map();
239
+ const oldProps = old[LOOM_PROPS];
240
+ // Early exit: both have no JS props
241
+ if (!newProps && !oldProps)
242
+ return;
243
+ const op = oldProps ?? Object.create(null);
207
244
  // Remove old props not in new
208
- for (const key of oldProps.keys()) {
209
- if (!newProps?.has(key)) {
210
- oldProps.delete(key);
245
+ for (const key in op) {
246
+ if (!newProps || !(key in newProps)) {
247
+ delete op[key];
211
248
  }
212
249
  }
213
250
  // Set/update props from new
214
251
  if (newProps) {
215
- for (const [key, val] of newProps) {
216
- if (old[key] !== val) {
217
- old[key] = val;
252
+ for (const key in newProps) {
253
+ if (old[key] !== newProps[key]) {
254
+ old[key] = newProps[key];
218
255
  }
219
- oldProps.set(key, val);
256
+ op[key] = newProps[key];
220
257
  }
221
- old[LOOM_PROPS] = oldProps;
258
+ old[LOOM_PROPS] = op;
222
259
  }
223
260
  }
224
261
  // ── Helpers ──
@@ -248,9 +285,13 @@ function canMorph(old, next) {
248
285
  function normalizeChildren(tree) {
249
286
  if (Array.isArray(tree))
250
287
  return tree;
251
- // DocumentFragment — extract children
288
+ // DocumentFragment — extract children without iterator
252
289
  if (tree.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {
253
- return Array.from(tree.childNodes);
290
+ const nodes = tree.childNodes;
291
+ const arr = new Array(nodes.length);
292
+ for (let i = 0; i < nodes.length; i++)
293
+ arr[i] = nodes[i];
294
+ return arr;
254
295
  }
255
296
  return [tree];
256
297
  }
package/dist/morph.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"morph.js","sourceRoot":"","sources":["../src/morph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"morph.js","sourceRoot":"","sources":["../src/morph.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/store/decorators.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEhD;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAM,CAAC;AAIvD,qFAAqF;AACrF,eAAO,MAAM,MAAM,eAAiC,CAAC;AAErD,oFAAoF;AACpF,eAAO,MAAM,UAAU,eAAgC,CAAC;AAExD;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,IAAI,SAAS,MAAM,EAAE,CAAC,EAC7C,MAAM,EAAE,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,EAC7C,OAAO,EAAE,6BAA6B,CAAC,IAAI,EAAE,CAAC,CAAC,GAC9C,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,CAiDvC;AAWD,KAAK,aAAa,GAAG;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,IAAI,CAAC,IAAI,SAAS,MAAM,EAAE,CAAC,EACzC,MAAM,EAAE,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,EAC7C,OAAO,EAAE,6BAA6B,CAAC,IAAI,EAAE,CAAC,CAAC,GAC9C,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACzC,wBAAgB,IAAI,CAAC,IAAI,EAAE,aAAa,GAAG,CAAC,IAAI,SAAS,MAAM,EAAE,CAAC,EAChE,MAAM,EAAE,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,EAC7C,OAAO,EAAE,6BAA6B,CAAC,IAAI,EAAE,CAAC,CAAC,KAC5C,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AA+C3C;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,IAAI,SAAS,MAAM,EAAE,CAAC,EAC7C,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,EACzB,OAAO,EAAE,2BAA2B,CAAC,IAAI,EAAE,CAAC,CAAC,GAC5C,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,CAsBnB;AAoDD;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,MAAM,EACpC,QAAQ,EAAE,CAAC,EACX,OAAO,CAAC,EAAE,cAAc,IAEhB,IAAI,SAAS,MAAM,EACzB,SAAS,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,EAC9C,SAAS,6BAA6B,CAAC,IAAI,EAAE,CAAC,CAAC,KAC9C,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,CA+BzC"}
1
+ {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/store/decorators.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEhD;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAM,CAAC;AAIvD,qFAAqF;AACrF,eAAO,MAAM,MAAM,eAAiC,CAAC;AAErD,oFAAoF;AACpF,eAAO,MAAM,UAAU,eAAgC,CAAC;AAExD;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,IAAI,SAAS,MAAM,EAAE,CAAC,EAC7C,MAAM,EAAE,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,EAC7C,OAAO,EAAE,6BAA6B,CAAC,IAAI,EAAE,CAAC,CAAC,GAC9C,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,CAqDvC;AAWD,KAAK,aAAa,GAAG;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,IAAI,CAAC,IAAI,SAAS,MAAM,EAAE,CAAC,EACzC,MAAM,EAAE,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,EAC7C,OAAO,EAAE,6BAA6B,CAAC,IAAI,EAAE,CAAC,CAAC,GAC9C,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACzC,wBAAgB,IAAI,CAAC,IAAI,EAAE,aAAa,GAAG,CAAC,IAAI,SAAS,MAAM,EAAE,CAAC,EAChE,MAAM,EAAE,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,EAC7C,OAAO,EAAE,6BAA6B,CAAC,IAAI,EAAE,CAAC,CAAC,KAC5C,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AA+C3C;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,IAAI,SAAS,MAAM,EAAE,CAAC,EAC7C,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,EACzB,OAAO,EAAE,2BAA2B,CAAC,IAAI,EAAE,CAAC,CAAC,GAC5C,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,CAsBnB;AAoDD;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,MAAM,EACpC,QAAQ,EAAE,CAAC,EACX,OAAO,CAAC,EAAE,cAAc,IAEhB,IAAI,SAAS,MAAM,EACzB,SAAS,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,EAC9C,SAAS,6BAA6B,CAAC,IAAI,EAAE,CAAC,CAAC,KAC9C,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,CA+BzC"}
@@ -50,12 +50,22 @@ export function reactive(target, context) {
50
50
  r.subscribe(() => this.scheduleUpdate?.());
51
51
  // Wire @watch handlers (WATCHERS is populated because method
52
52
  // addInitializer runs BEFORE accessor field init in TC39)
53
- for (const w of (this[WATCHERS.key] ?? []).filter((w) => w.field === key)) {
54
- r.subscribe((v, prev) => this[w.key](v, prev));
53
+ const watchers = this[WATCHERS.key];
54
+ if (watchers) {
55
+ for (let i = 0; i < watchers.length; i++) {
56
+ const w = watchers[i];
57
+ if (w.field === key)
58
+ r.subscribe((v, prev) => this[w.key](v, prev));
59
+ }
55
60
  }
56
61
  // Wire @emit handlers
57
- for (const e of (this[EMITTERS.key] ?? []).filter((e) => e.field === key)) {
58
- r.subscribe((v) => bus.emit(e.factory(v)));
62
+ const emitters = this[EMITTERS.key];
63
+ if (emitters) {
64
+ for (let i = 0; i < emitters.length; i++) {
65
+ const e = emitters[i];
66
+ if (e.field === key)
67
+ r.subscribe((v) => bus.emit(e.factory(v)));
68
+ }
59
69
  }
60
70
  }
61
71
  return this[storageKey].value;