---
# System prepended metadata

title: signal definition size comparison

---

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