Rough attempt to run time trial for the code in the background (see #139) #154
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.
DO NOT MERGE
This is my work trying to catch infinite loops from blocking the UI thread whenever Web Workers are available.
There are a few blockers that prevent this from being really viable to merge at the moment.
The major problem is that this is currently only working with
Output.exec
becauseOutput.runCode
assumesexec
is synchronous - the introduction of time trial testing with a background thread makes it async.I'm also not totally clear how the injection process with
fnCalls.push
works - so if I do userunCode
, then the second timeTrial won't work, becausefnCalls
is not defined in the worker thread.Only using
exec
instead ofrunCode
makes a lot of things not work as they should in the editor (which is why runCode was introduced in the first place, I'm guessing).