@vobs/runtime 1.2.0 → 1.2.2
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/async-boundary.cjs +73 -374
- package/dist/async-boundary.cjs.map +1 -1
- package/dist/async-boundary.js +44 -367
- package/dist/async-boundary.js.map +1 -1
- package/dist/bind.cjs +83 -234
- package/dist/bind.cjs.map +1 -1
- package/dist/bind.js +54 -227
- package/dist/bind.js.map +1 -1
- package/dist/boundary.cjs +67 -369
- package/dist/boundary.cjs.map +1 -1
- package/dist/boundary.js +42 -366
- package/dist/boundary.js.map +1 -1
- package/dist/debug.cjs +41 -12
- package/dist/debug.cjs.map +1 -1
- package/dist/debug.js +10 -3
- package/dist/debug.js.map +1 -1
- package/dist/dynamic.cjs +76 -378
- package/dist/dynamic.cjs.map +1 -1
- package/dist/dynamic.js +43 -367
- package/dist/dynamic.js.map +1 -1
- package/dist/error-boundary.cjs +72 -371
- package/dist/error-boundary.cjs.map +1 -1
- package/dist/error-boundary.js +43 -366
- package/dist/error-boundary.js.map +1 -1
- package/dist/error.cjs +35 -9
- package/dist/error.cjs.map +1 -1
- package/dist/error.js +7 -3
- package/dist/error.js.map +1 -1
- package/dist/fragment.cjs +44 -133
- package/dist/fragment.cjs.map +1 -1
- package/dist/fragment.js +19 -130
- package/dist/fragment.js.map +1 -1
- package/dist/hmr.cjs +50 -22
- package/dist/hmr.cjs.map +1 -1
- package/dist/hmr.js +9 -3
- package/dist/hmr.js.map +1 -1
- package/dist/index.cjs +193 -462
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +92 -385
- package/dist/index.js.map +1 -1
- package/dist/ops.cjs +126 -242
- package/dist/ops.cjs.map +1 -1
- package/dist/ops.js +76 -214
- package/dist/ops.js.map +1 -1
- package/dist/profiler.cjs +69 -320
- package/dist/profiler.cjs.map +1 -1
- package/dist/profiler.js +40 -315
- package/dist/profiler.js.map +1 -1
- package/dist/ref.cjs +33 -131
- package/dist/ref.cjs.map +1 -1
- package/dist/ref.js +10 -130
- package/dist/ref.js.map +1 -1
- package/dist/renderer.cjs +18 -2
- package/dist/renderer.cjs.map +1 -1
- package/dist/renderer.js +0 -2
- package/dist/renderer.js.map +1 -1
- package/dist/template.cjs +29 -6
- package/dist/template.cjs.map +1 -1
- package/dist/template.js +4 -3
- package/dist/template.js.map +1 -1
- package/package.json +6 -2
package/dist/dynamic.js
CHANGED
|
@@ -1,367 +1,14 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
2
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
3
|
|
|
4
|
-
// packages/
|
|
5
|
-
|
|
6
|
-
var signalNames = /* @__PURE__ */ new WeakMap();
|
|
7
|
-
function hasDebugHooks() {
|
|
8
|
-
return activeDebugHooks !== null;
|
|
9
|
-
}
|
|
10
|
-
__name(hasDebugHooks, "hasDebugHooks");
|
|
11
|
-
function setSignalDebugName(signal, name) {
|
|
12
|
-
signalNames.set(signal, name);
|
|
13
|
-
invokeDebug("signalNamed", signal, name);
|
|
14
|
-
}
|
|
15
|
-
__name(setSignalDebugName, "setSignalDebugName");
|
|
16
|
-
function invokeDebug(name, ...args) {
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
__name(invokeDebug, "invokeDebug");
|
|
20
|
-
|
|
21
|
-
// packages/reactivity/src/owner.ts
|
|
22
|
-
var currentOwner = null;
|
|
23
|
-
var nextOwnerId = 1;
|
|
24
|
-
var ownerNames = /* @__PURE__ */ new WeakMap();
|
|
25
|
-
function createOwner() {
|
|
26
|
-
const parent = currentOwner;
|
|
27
|
-
let disposed = parent?.disposed ?? false;
|
|
28
|
-
const children = [];
|
|
29
|
-
const cleanups = [];
|
|
30
|
-
const errorHandlers = /* @__PURE__ */ new Set();
|
|
31
|
-
const owner = {
|
|
32
|
-
id: `owner-${nextOwnerId++}`,
|
|
33
|
-
parent,
|
|
34
|
-
children,
|
|
35
|
-
depth: (parent?.depth ?? -1) + 1,
|
|
36
|
-
get disposed() {
|
|
37
|
-
return disposed;
|
|
38
|
-
},
|
|
39
|
-
run(fn) {
|
|
40
|
-
if (disposed) throw new Error("Vobs: \u5DF2\u9500\u6BC1\u7684 Owner \u4E0D\u80FD\u7EE7\u7EED\u8FD0\u884C");
|
|
41
|
-
const previous = currentOwner;
|
|
42
|
-
currentOwner = owner;
|
|
43
|
-
try {
|
|
44
|
-
return fn();
|
|
45
|
-
} finally {
|
|
46
|
-
currentOwner = previous;
|
|
47
|
-
}
|
|
48
|
-
},
|
|
49
|
-
addCleanup(cleanup) {
|
|
50
|
-
if (disposed) {
|
|
51
|
-
cleanup();
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
54
|
-
cleanups.push(cleanup);
|
|
55
|
-
},
|
|
56
|
-
onDispose(cleanup) {
|
|
57
|
-
owner.addCleanup(cleanup);
|
|
58
|
-
},
|
|
59
|
-
onError(handler) {
|
|
60
|
-
errorHandlers.add(handler);
|
|
61
|
-
const remove = /* @__PURE__ */ __name(() => errorHandlers.delete(handler), "remove");
|
|
62
|
-
owner.addCleanup(remove);
|
|
63
|
-
return remove;
|
|
64
|
-
},
|
|
65
|
-
handleError(error) {
|
|
66
|
-
for (const handler of [...errorHandlers].reverse()) {
|
|
67
|
-
try {
|
|
68
|
-
handler(error);
|
|
69
|
-
return true;
|
|
70
|
-
} catch (handlerError) {
|
|
71
|
-
return parent?.handleError(handlerError) ?? false;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
return parent?.handleError(error) ?? false;
|
|
75
|
-
},
|
|
76
|
-
dispose() {
|
|
77
|
-
if (disposed) return;
|
|
78
|
-
disposed = true;
|
|
79
|
-
for (const child of [...children]) child.dispose();
|
|
80
|
-
children.length = 0;
|
|
81
|
-
let firstError;
|
|
82
|
-
for (let index = cleanups.length - 1; index >= 0; index--) {
|
|
83
|
-
try {
|
|
84
|
-
cleanups[index]();
|
|
85
|
-
} catch (error) {
|
|
86
|
-
firstError ?? (firstError = error);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
cleanups.length = 0;
|
|
90
|
-
if (parent) {
|
|
91
|
-
const index = parent.children.indexOf(owner);
|
|
92
|
-
if (index >= 0) parent.children.splice(index, 1);
|
|
93
|
-
}
|
|
94
|
-
if (firstError) throw firstError;
|
|
95
|
-
}
|
|
96
|
-
};
|
|
97
|
-
if (parent && !parent.disposed) parent.children.push(owner);
|
|
98
|
-
return owner;
|
|
99
|
-
}
|
|
100
|
-
__name(createOwner, "createOwner");
|
|
101
|
-
function setOwnerDebugName(owner, name) {
|
|
102
|
-
ownerNames.set(owner, name);
|
|
103
|
-
}
|
|
104
|
-
__name(setOwnerDebugName, "setOwnerDebugName");
|
|
105
|
-
function getCurrentOwner() {
|
|
106
|
-
return currentOwner;
|
|
107
|
-
}
|
|
108
|
-
__name(getCurrentOwner, "getCurrentOwner");
|
|
109
|
-
|
|
110
|
-
// packages/reactivity/src/signal.ts
|
|
111
|
-
var currentSubscriber = null;
|
|
112
|
-
function getCurrentSubscriber() {
|
|
113
|
-
return currentSubscriber;
|
|
114
|
-
}
|
|
115
|
-
__name(getCurrentSubscriber, "getCurrentSubscriber");
|
|
116
|
-
function setCurrentSubscriber(subscriber) {
|
|
117
|
-
currentSubscriber = subscriber;
|
|
118
|
-
}
|
|
119
|
-
__name(setCurrentSubscriber, "setCurrentSubscriber");
|
|
120
|
-
function trackDependency(dependency) {
|
|
121
|
-
if (!currentSubscriber || currentSubscriber.disposed) return;
|
|
122
|
-
!currentSubscriber.dependencies.has(dependency);
|
|
123
|
-
currentSubscriber.dependencies.add(dependency);
|
|
124
|
-
}
|
|
125
|
-
__name(trackDependency, "trackDependency");
|
|
126
|
-
function state(initialValue, debugName) {
|
|
127
|
-
let value = initialValue;
|
|
128
|
-
let disposed = false;
|
|
129
|
-
const subscribers = /* @__PURE__ */ new Set();
|
|
130
|
-
const signalInstance = {
|
|
131
|
-
get value() {
|
|
132
|
-
const subscriber = getCurrentSubscriber();
|
|
133
|
-
if (subscriber && !subscriber.disposed) {
|
|
134
|
-
subscribers.add(subscriber);
|
|
135
|
-
trackDependency(signalInstance);
|
|
136
|
-
}
|
|
137
|
-
return value;
|
|
138
|
-
},
|
|
139
|
-
set value(nextValue) {
|
|
140
|
-
if (disposed || Object.is(value, nextValue)) return;
|
|
141
|
-
value = nextValue;
|
|
142
|
-
for (const subscriber of [...subscribers]) subscriber.notify();
|
|
143
|
-
},
|
|
144
|
-
unsubscribe(subscriber) {
|
|
145
|
-
subscribers.delete(subscriber);
|
|
146
|
-
},
|
|
147
|
-
// 与 `.value =` 赋值同一条路径:判等短路、debug hook、notify 全部一致。
|
|
148
|
-
// 以闭包实现,可安全地作为回调直接传递(无 this 绑定问题)。
|
|
149
|
-
set(next) {
|
|
150
|
-
signalInstance.value = next;
|
|
151
|
-
},
|
|
152
|
-
dispose() {
|
|
153
|
-
if (disposed) return;
|
|
154
|
-
disposed = true;
|
|
155
|
-
subscribers.clear();
|
|
156
|
-
}
|
|
157
|
-
};
|
|
158
|
-
const owner = getCurrentOwner();
|
|
159
|
-
owner?.addCleanup(signalInstance.dispose);
|
|
160
|
-
if (debugName?.trim()) setSignalDebugName(signalInstance, debugName.trim());
|
|
161
|
-
return signalInstance;
|
|
162
|
-
}
|
|
163
|
-
__name(state, "state");
|
|
164
|
-
|
|
165
|
-
// packages/reactivity/src/scheduler.ts
|
|
166
|
-
var _Scheduler = class _Scheduler {
|
|
167
|
-
constructor() {
|
|
168
|
-
this.dirtyEffects = /* @__PURE__ */ new Set();
|
|
169
|
-
this.lowPriorityEffects = /* @__PURE__ */ new Set();
|
|
170
|
-
// flush 不可重入(flushing 标志保证),缓冲数组可在轮次间安全复用,避免每轮分配。
|
|
171
|
-
this.normalBuffer = [];
|
|
172
|
-
this.lowBuffer = [];
|
|
173
|
-
this.flushing = false;
|
|
174
|
-
this.scheduled = false;
|
|
175
|
-
this.batchDepth = 0;
|
|
176
|
-
}
|
|
177
|
-
schedule(effect2) {
|
|
178
|
-
if (effect2.disposed) return;
|
|
179
|
-
this.dirtyEffects.add(effect2);
|
|
180
|
-
this.lowPriorityEffects.delete(effect2);
|
|
181
|
-
this.ensureScheduled();
|
|
182
|
-
}
|
|
183
|
-
/** Queue an effect behind normal updates while preserving deterministic order. */
|
|
184
|
-
scheduleLow(effect2) {
|
|
185
|
-
if (effect2.disposed) return;
|
|
186
|
-
if (!this.dirtyEffects.has(effect2)) this.lowPriorityEffects.add(effect2);
|
|
187
|
-
this.ensureScheduled();
|
|
188
|
-
}
|
|
189
|
-
ensureScheduled() {
|
|
190
|
-
if (this.batchDepth === 0 && !this.flushing && !this.scheduled) {
|
|
191
|
-
this.scheduled = true;
|
|
192
|
-
queueMicrotask(() => {
|
|
193
|
-
this.scheduled = false;
|
|
194
|
-
this.flush();
|
|
195
|
-
});
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
remove(effect2) {
|
|
199
|
-
this.dirtyEffects.delete(effect2);
|
|
200
|
-
this.lowPriorityEffects.delete(effect2);
|
|
201
|
-
}
|
|
202
|
-
batch(fn) {
|
|
203
|
-
this.batchDepth++;
|
|
204
|
-
try {
|
|
205
|
-
return fn();
|
|
206
|
-
} finally {
|
|
207
|
-
this.batchDepth--;
|
|
208
|
-
if (this.batchDepth === 0) this.flush();
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
flush() {
|
|
212
|
-
if (this.flushing || this.batchDepth > 0) return;
|
|
213
|
-
this.flushing = true;
|
|
214
|
-
let rounds = 0;
|
|
215
|
-
let firstError;
|
|
216
|
-
let hasError = false;
|
|
217
|
-
try {
|
|
218
|
-
while (this.dirtyEffects.size > 0 || this.lowPriorityEffects.size > 0) {
|
|
219
|
-
if (++rounds > 100) {
|
|
220
|
-
this.dirtyEffects.clear();
|
|
221
|
-
this.lowPriorityEffects.clear();
|
|
222
|
-
throw new Error("Vobs: \u54CD\u5E94\u5F0F\u66F4\u65B0\u8D85\u8FC7 100 \u8F6E\uFF0C\u53EF\u80FD\u5B58\u5728\u5FAA\u73AF\u4F9D\u8D56");
|
|
223
|
-
}
|
|
224
|
-
this.collectRunnable(this.dirtyEffects, this.normalBuffer);
|
|
225
|
-
this.collectRunnable(this.lowPriorityEffects, this.lowBuffer);
|
|
226
|
-
sortEffects(this.normalBuffer);
|
|
227
|
-
sortEffects(this.lowBuffer);
|
|
228
|
-
for (const effect2 of this.normalBuffer) {
|
|
229
|
-
try {
|
|
230
|
-
effect2.run();
|
|
231
|
-
} catch (error) {
|
|
232
|
-
if (!hasError) {
|
|
233
|
-
firstError = error;
|
|
234
|
-
hasError = true;
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
for (const effect2 of this.lowBuffer) {
|
|
239
|
-
try {
|
|
240
|
-
effect2.run();
|
|
241
|
-
} catch (error) {
|
|
242
|
-
if (!hasError) {
|
|
243
|
-
firstError = error;
|
|
244
|
-
hasError = true;
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
this.normalBuffer.length = 0;
|
|
249
|
-
this.lowBuffer.length = 0;
|
|
250
|
-
}
|
|
251
|
-
} finally {
|
|
252
|
-
this.normalBuffer.length = 0;
|
|
253
|
-
this.lowBuffer.length = 0;
|
|
254
|
-
this.flushing = false;
|
|
255
|
-
}
|
|
256
|
-
if (hasError) throw firstError;
|
|
257
|
-
}
|
|
258
|
-
/** 收集未 disposed 的 effect 并清空源集合;run() 期间新调度的 effect 留给下一轮。 */
|
|
259
|
-
collectRunnable(source, target) {
|
|
260
|
-
for (const effect2 of source) {
|
|
261
|
-
if (!effect2.disposed) target.push(effect2);
|
|
262
|
-
}
|
|
263
|
-
source.clear();
|
|
264
|
-
}
|
|
265
|
-
};
|
|
266
|
-
__name(_Scheduler, "Scheduler");
|
|
267
|
-
var Scheduler = _Scheduler;
|
|
268
|
-
function sortEffects(effects) {
|
|
269
|
-
if (effects.length > 1) {
|
|
270
|
-
effects.sort((a, b) => b.depth - a.depth || a.order - b.order);
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
__name(sortEffects, "sortEffects");
|
|
274
|
-
var scheduler = new Scheduler();
|
|
4
|
+
// packages/runtime/src/dynamic.ts
|
|
5
|
+
import { createOwner as createOwner2, effect, state } from "@vobs/reactivity";
|
|
275
6
|
|
|
276
|
-
// packages/
|
|
277
|
-
|
|
278
|
-
function cleanupDependencies(subscriber) {
|
|
279
|
-
for (const dependency of subscriber.dependencies) {
|
|
280
|
-
dependency.unsubscribe(subscriber);
|
|
281
|
-
}
|
|
282
|
-
subscriber.dependencies.clear();
|
|
283
|
-
}
|
|
284
|
-
__name(cleanupDependencies, "cleanupDependencies");
|
|
285
|
-
function effect(callback) {
|
|
286
|
-
const owner = getCurrentOwner();
|
|
287
|
-
let cleanup;
|
|
288
|
-
let dirty = true;
|
|
289
|
-
let disposed = false;
|
|
290
|
-
const eff = {
|
|
291
|
-
order: nextEffectOrder++,
|
|
292
|
-
depth: owner?.depth ?? 0,
|
|
293
|
-
dependencies: /* @__PURE__ */ new Set(),
|
|
294
|
-
get disposed() {
|
|
295
|
-
return disposed;
|
|
296
|
-
},
|
|
297
|
-
notify() {
|
|
298
|
-
if (disposed || dirty) return;
|
|
299
|
-
dirty = true;
|
|
300
|
-
scheduler.schedule(eff);
|
|
301
|
-
},
|
|
302
|
-
run() {
|
|
303
|
-
if (disposed || !dirty) return;
|
|
304
|
-
dirty = false;
|
|
305
|
-
const previousCleanup = cleanup;
|
|
306
|
-
cleanup = void 0;
|
|
307
|
-
let cleanupError;
|
|
308
|
-
if (previousCleanup) {
|
|
309
|
-
try {
|
|
310
|
-
previousCleanup();
|
|
311
|
-
} catch (error) {
|
|
312
|
-
const handled2 = owner?.handleError(error) ?? false;
|
|
313
|
-
if (!handled2) cleanupError = error;
|
|
314
|
-
}
|
|
315
|
-
}
|
|
316
|
-
cleanupDependencies(eff);
|
|
317
|
-
const previous = getCurrentSubscriber();
|
|
318
|
-
setCurrentSubscriber(eff);
|
|
319
|
-
let thrown;
|
|
320
|
-
let handled = false;
|
|
321
|
-
try {
|
|
322
|
-
const result = owner ? owner.run(callback) : callback();
|
|
323
|
-
cleanup = typeof result === "function" ? result : void 0;
|
|
324
|
-
} catch (error) {
|
|
325
|
-
thrown = error;
|
|
326
|
-
handled = owner?.handleError(error) ?? false;
|
|
327
|
-
if (!handled) throw error;
|
|
328
|
-
} finally {
|
|
329
|
-
setCurrentSubscriber(previous);
|
|
330
|
-
}
|
|
331
|
-
if (cleanupError && !thrown) throw cleanupError;
|
|
332
|
-
},
|
|
333
|
-
scheduleLow() {
|
|
334
|
-
if (disposed || dirty) return;
|
|
335
|
-
dirty = true;
|
|
336
|
-
scheduler.scheduleLow(eff);
|
|
337
|
-
},
|
|
338
|
-
dispose() {
|
|
339
|
-
if (disposed) return;
|
|
340
|
-
disposed = true;
|
|
341
|
-
dirty = false;
|
|
342
|
-
scheduler.remove(eff);
|
|
343
|
-
const previousCleanup = cleanup;
|
|
344
|
-
cleanup = void 0;
|
|
345
|
-
let cleanupError;
|
|
346
|
-
if (previousCleanup) {
|
|
347
|
-
try {
|
|
348
|
-
previousCleanup();
|
|
349
|
-
} catch (error) {
|
|
350
|
-
const handled = owner?.handleError(error) ?? false;
|
|
351
|
-
if (!handled) cleanupError = error;
|
|
352
|
-
}
|
|
353
|
-
}
|
|
354
|
-
cleanupDependencies(eff);
|
|
355
|
-
if (cleanupError) throw cleanupError;
|
|
356
|
-
}
|
|
357
|
-
};
|
|
358
|
-
owner?.addCleanup(eff.dispose);
|
|
359
|
-
eff.run();
|
|
360
|
-
return eff;
|
|
361
|
-
}
|
|
362
|
-
__name(effect, "effect");
|
|
7
|
+
// packages/runtime/src/ops.ts
|
|
8
|
+
import { createOwner, getCurrentOwner as getCurrentOwner3, setOwnerDebugName } from "@vobs/reactivity";
|
|
363
9
|
|
|
364
10
|
// packages/runtime/src/fragment.ts
|
|
11
|
+
import { getCurrentOwner } from "@vobs/reactivity";
|
|
365
12
|
function createFragment(factory) {
|
|
366
13
|
const start = createComment("vobs:fragment:start");
|
|
367
14
|
const end = createComment("vobs:fragment:end");
|
|
@@ -435,7 +82,12 @@ function getRuntimeDebugHooks() {
|
|
|
435
82
|
}
|
|
436
83
|
__name(getRuntimeDebugHooks, "getRuntimeDebugHooks");
|
|
437
84
|
function invokeRuntimeDebug(name, ...args) {
|
|
438
|
-
|
|
85
|
+
const callback = activeRuntimeDebugHooks?.[name];
|
|
86
|
+
if (!callback) return;
|
|
87
|
+
try {
|
|
88
|
+
callback(...args);
|
|
89
|
+
} catch {
|
|
90
|
+
}
|
|
439
91
|
}
|
|
440
92
|
__name(invokeRuntimeDebug, "invokeRuntimeDebug");
|
|
441
93
|
function describeDebugNode(node) {
|
|
@@ -458,11 +110,18 @@ function markHmrInstanceMounted(node, parent) {
|
|
|
458
110
|
}
|
|
459
111
|
__name(markHmrInstanceMounted, "markHmrInstanceMounted");
|
|
460
112
|
var hmrInstances = /* @__PURE__ */ new WeakMap();
|
|
113
|
+
|
|
114
|
+
// packages/runtime/src/ref.ts
|
|
115
|
+
import { getCurrentOwner as getCurrentOwner2 } from "@vobs/reactivity";
|
|
116
|
+
|
|
117
|
+
// packages/runtime/src/ops.ts
|
|
118
|
+
var currentRenderer = null;
|
|
461
119
|
var nodeOwners = /* @__PURE__ */ new WeakMap();
|
|
462
120
|
function getRenderer() {
|
|
463
|
-
{
|
|
121
|
+
if (!currentRenderer) {
|
|
464
122
|
throw new Error("\u6E32\u67D3\u5668\u672A\u521D\u59CB\u5316");
|
|
465
123
|
}
|
|
124
|
+
return currentRenderer;
|
|
466
125
|
}
|
|
467
126
|
__name(getRenderer, "getRenderer");
|
|
468
127
|
function createText(content) {
|
|
@@ -480,6 +139,13 @@ function insertBefore(parent, child, anchor) {
|
|
|
480
139
|
}
|
|
481
140
|
getRenderer().insertBefore(parent, child, isVobsFragment(anchor) ? anchor.start : anchor);
|
|
482
141
|
markHmrInstanceMounted(child, parent);
|
|
142
|
+
if (getRuntimeDebugHooks()) {
|
|
143
|
+
invokeRuntimeDebug("domMutation", {
|
|
144
|
+
operation: "insert",
|
|
145
|
+
target: describeDebugNode(child),
|
|
146
|
+
parent: describeDebugNode(parent)
|
|
147
|
+
});
|
|
148
|
+
}
|
|
483
149
|
}
|
|
484
150
|
__name(insertBefore, "insertBefore");
|
|
485
151
|
function removeChild(parent, child) {
|
|
@@ -489,6 +155,13 @@ function removeChild(parent, child) {
|
|
|
489
155
|
return;
|
|
490
156
|
}
|
|
491
157
|
getRenderer().removeChild(parent, child);
|
|
158
|
+
if (getRuntimeDebugHooks()) {
|
|
159
|
+
invokeRuntimeDebug("domMutation", {
|
|
160
|
+
operation: "remove",
|
|
161
|
+
target: describeDebugNode(child),
|
|
162
|
+
parent: describeDebugNode(parent)
|
|
163
|
+
});
|
|
164
|
+
}
|
|
492
165
|
}
|
|
493
166
|
__name(removeChild, "removeChild");
|
|
494
167
|
function createBlock(factory) {
|
|
@@ -541,7 +214,7 @@ function insertDynamicValue(parent, anchor, factory) {
|
|
|
541
214
|
let current = null;
|
|
542
215
|
let scope = null;
|
|
543
216
|
effect(() => {
|
|
544
|
-
const nextScope =
|
|
217
|
+
const nextScope = createOwner2();
|
|
545
218
|
const next = nextScope.run(() => normalizeDynamicChild(factory()));
|
|
546
219
|
if (next === current) {
|
|
547
220
|
nextScope.dispose();
|
|
@@ -737,13 +410,13 @@ function isPrimitiveItem(item) {
|
|
|
737
410
|
}
|
|
738
411
|
__name(isPrimitiveItem, "isPrimitiveItem");
|
|
739
412
|
function createListEntry(item, index, key, renderItem) {
|
|
740
|
-
const owner =
|
|
413
|
+
const owner = createOwner2();
|
|
741
414
|
let itemSignal;
|
|
742
415
|
let viewOwner;
|
|
743
416
|
let node;
|
|
744
417
|
owner.run(() => {
|
|
745
418
|
itemSignal = state(item);
|
|
746
|
-
viewOwner =
|
|
419
|
+
viewOwner = createOwner2();
|
|
747
420
|
node = viewOwner.run(() => renderItem(toReactiveItem(itemSignal, item), index));
|
|
748
421
|
});
|
|
749
422
|
associateNodeOwner(node, viewOwner);
|
|
@@ -755,7 +428,7 @@ function refreshListEntry(parent, entry, index, renderItem) {
|
|
|
755
428
|
entry.index = index;
|
|
756
429
|
const previousView = entry.viewOwner;
|
|
757
430
|
entry.owner.run(() => {
|
|
758
|
-
entry.viewOwner =
|
|
431
|
+
entry.viewOwner = createOwner2();
|
|
759
432
|
entry.node = entry.viewOwner.run(() => renderItem(
|
|
760
433
|
toReactiveItem(entry.item, entry.value),
|
|
761
434
|
index
|
|
@@ -790,7 +463,10 @@ function disposeEntry(parent, entry) {
|
|
|
790
463
|
entry.owner.dispose();
|
|
791
464
|
}
|
|
792
465
|
__name(disposeEntry, "disposeEntry");
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
466
|
+
export {
|
|
467
|
+
insertDynamic,
|
|
468
|
+
insertDynamicValue,
|
|
469
|
+
insertList,
|
|
470
|
+
normalizeDynamicChild
|
|
471
|
+
};
|
|
796
472
|
//# sourceMappingURL=dynamic.js.map
|