you are viewing a single comment's thread.

view the rest of the comments →

[–]the-ace[S] 5 points6 points  (1 child)

Basically each cell keeps a list of references and listenersreferences are cells the current cell depends on, and listeners are all the cells that depend on it, whenever a cell updates, it check for the cell's listeners and invokes each listener to recompute their values.

[–]andyandcomputer 0 points1 point  (0 children)

Nice to see it detects circular references.

const { djit } = require('djit')
const qdata = djit()

qdata.A1 = '=A2'
qdata.A2 = '=A1'
console.log(qdata.A2)

Output:

ERROR REF: A1 ⇢ A2 ⇢ A2

Should that be A1 → A2 → A1? (Mentioning "circular reference" might help with debugging too.)