Add Runtime.SetGlobalObject() method. #654
Merged
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.
See #653 (comment).
I'm not sure if there should be more to go along with this, this bare minimum function makes sense in the above Proxy example, but if you're actually setting it to a new object rather than Proxying the old global, all the built-ins will be missing from the global scope. Maybe that is desirable in some situations, but maybe another function to initialize a "default" global object makes sense as well?
I added tests for all the cases that seemed notable, things like variables being defined/undefined in old/new global, and checking references to the old global in the new global scope. I also included a test for the original Proxy example to make sure it worked as expected.