( locals: Map<FiberRef.FiberRef<any>, Arr.NonEmptyReadonlyArray<readonly [FiberId.Single, any]>>, fiberId: FiberId.Single, fiberRef: FiberRef.FiberRef<any>, value: any )
| 219 | }) |
| 220 | |
| 221 | const unsafeUpdateAs = ( |
| 222 | locals: Map<FiberRef.FiberRef<any>, Arr.NonEmptyReadonlyArray<readonly [FiberId.Single, any]>>, |
| 223 | fiberId: FiberId.Single, |
| 224 | fiberRef: FiberRef.FiberRef<any>, |
| 225 | value: any |
| 226 | ) => { |
| 227 | const oldStack: ReadonlyArray<readonly [FiberId.Single, any]> = locals.get(fiberRef) ?? [] |
| 228 | let newStack: Arr.NonEmptyReadonlyArray<readonly [FiberId.Single, any]> | undefined |
| 229 | |
| 230 | if (Arr.isNonEmptyReadonlyArray(oldStack)) { |
| 231 | const [currentId, currentValue] = Arr.headNonEmpty(oldStack) |
| 232 | if (currentId[Equal.symbol](fiberId)) { |
| 233 | if (Equal.equals(currentValue, value)) { |
| 234 | return |
| 235 | } else { |
| 236 | newStack = [ |
| 237 | [fiberId, value] as const, |
| 238 | ...oldStack.slice(1) |
| 239 | ] |
| 240 | } |
| 241 | } else { |
| 242 | newStack = [ |
| 243 | [fiberId, value] as const, |
| 244 | ...oldStack |
| 245 | ] |
| 246 | } |
| 247 | } else { |
| 248 | newStack = [[fiberId, value] as const] |
| 249 | } |
| 250 | |
| 251 | locals.set(fiberRef, newStack) |
| 252 | } |
| 253 | |
| 254 | /** @internal */ |
| 255 | export const updateManyAs = dual< |
no test coverage detected
searching dependent graphs…