Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
When I built #1973 for unary steps, I went through and methodically updated everywhere that wrote to
store
and had it write tounaryStore
(new) instead for unary steps. There was a lot of "if unary this else that" logic.When thinking about Early Exit (#2013) I realised that it would be useful to store information along with the step results; this would allow tracking of which steps have errored, etc. and would remove the need to do so via the buckets themselves. Being more granular is generally better.
I realised that by pushing the unary work earlier in the process, not only would I make this easier to accomplish, but I'd also be reducing object allocations as I would be creating each execution value when the step that made it completes (once) rather than each time it is then used in a future step (which could be any number of times).
So this is that refactoring. Theoretically it doesn't change any externally visible behavior, and is just a precursor to the early exit code.
Performance impact
Minor improvement?
Security impact
Unknown.
Checklist
yarn lint:fix
passes.I've added tests for the new feature, andyarn test
passes.I have detailed the new feature in the relevant documentation.RELEASE_NOTES.md
file (if one exists).