Untracked consumption errors in React renderer #25
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.
This commit adds infrastructure ("read barrier") that makes it possible
to emit errors if any cell is consumed in a rendering context, but it
is not inside a tracking frame.
It also threads through stack information for both the creation of
reactive variables and for consumption of reactive variables. Making
this a dev-time-only cost is extremely urgent and must be done before
0.6.
This commit also implements the read barrier assertion in the React
renderer. The long and short of it is that any reads that happen inside
of a React render function but outside of a useSetup or useReactive
will trigger the error.
Finally, this commit adds TIMELINE.entryPoint, which allows third-party
code to mask abstractions from developer tools and debug messages.
This allows libraries to help make sure that these messages actually
point at user code and not internals. The
@starbeamx/store
packagenow makes use of this infrastructure.