-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathcallstack.js
65 lines (50 loc) · 1.5 KB
/
callstack.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import * as usignal from '../esm/index.js';
const report = {};
testUsignal(report, 4829);
console.table(report);
function testUsignal(report, layerCount) {
var start = {
prop1: usignal.signal(1),
prop2: usignal.signal(2),
prop3: usignal.signal(3),
prop4: usignal.signal(4)
};
var layer = start;
for (var i = layerCount; i--; ) {
layer = (function (m) {
var s = {
prop1: usignal.computed(function () {
return m.prop2.value;
}),
prop2: usignal.computed(function () {
return m.prop1.value - m.prop3.value;
}),
prop3: usignal.computed(function () {
return m.prop2.value + m.prop4.value;
}),
prop4: usignal.computed(function () {
return m.prop3.value;
})
};
usignal.computed(() => s.prop1.value);
usignal.computed(() => s.prop2.value);
usignal.computed(() => s.prop3.value);
usignal.computed(() => s.prop4.value);
s.prop1.value;
s.prop2.value;
s.prop3.value;
s.prop4.value;
return s;
})(layer);
}
var end = layer;
report.layers = layerCount;
report.beforeChange = [end.prop1.value, end.prop2.value, end.prop3.value, end.prop4.value];
var st = performance.now();
start.prop1.value = 4;
start.prop2.value = 3;
start.prop3.value = 2;
start.prop4.value = 1;
report.afterChange = [end.prop1.value, end.prop2.value, end.prop3.value, end.prop4.value];
report.recalculationTime = performance.now() - st;
}