Summary:
The operands of a function expression are the elements passed as context. This means that it doesn't make sense to record mutations for them.
The relevant mutations will happen in the function body, so we need to prevent FunctionExpression type instruction from running the logic for effect mutations.
This was also causing some values to depend on themselves in some cases triggering an infinite loop. Also added n invariant to prevent this issue
Test Plan:
Added fixture test