Move vm.runInThisContext
to require.exec
#849
Open
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.
In split contexts, like NW.js',
vm.runInThisContext
evaluates modules in the wrong context. And, due to its location in the code, this behavior is impossible to override.This commit moves the call to
require.exec
, where it's overridable, and changesrequire.makeNodeWrapper
to useglobal.requirejsVars
so it doesn't reference a non-existent object when run in NW.js' context.With this change require can be used in NW.js when exec is overridden like this (although there's a bug with vm in NW.js at the moment so eval has to be used instead):