# 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);
}
```