# signal definition size comparison ## Explainations 1. calls (current) 2. addl. arguments: spread 3. addl. arguments: fixed 4. addl. arguments: fixed, repeatable 5. methods 6. methods, repeatable ## render, no intersections/effect 1. `v(0,(s,v)=>{})` 2. `v(0,(s,v)=>{})` 3. `v(0,(s,v)=>{})` 4. `v(0,(s,v)=>{})` 5. `v(0,(s,v)=>{})` ## render, 1 effect 1. `v(0,(s,v)=>{q(s,e)})` 2. `v(0,(s,v)=>{},e)` 2. `v(0,(s,v)=>{},0,0,[e])` 2. `v(0,(s,v)=>{},0,0,e)` 5. `v(0,(s,v)=>{}).e(e)` ## render, 1 effect, 1 intersection 1. `v(0,(s,v,d)=>{d&&q(s,e);i(s,d)})` 2. `v(0,(s,v)=>{},i,e)` 3. `v(0,(s,v)=>{},0,[i],[e])` 4. `v(0,(s,v)=>{},0,i,e)` 5. `v(0,(s,v)=>{}).e(e).i(i)` ## no render, 1 intersection 1. `v(0,(s,v,d)=>{i(s,d)})` 2. `v(0,0,i)` 3. `v(0,0,[i])` 4. `v(0,0,i)` 5. `v(0).i(i)` 6. `i(v(0),a)` ```javascript= if (currentMark === 1) { if ( clean !== 1 && ( creation || !(clean &&= scope[valueAccessor] === nextValue)) ) { scope[valueAccessor] = nextValue; render(scope, nextValue); } else { v?.(scope); } i?.(scope, clean); } ```