mirror of
https://github.com/rails/execjs
synced 2023-03-27 23:21:20 -04:00
06bfd33f7b
As suggested by Joshua Peek in a previous issue. Node's vm module gives us full control over the globals passed to the context the code is run in. In order to do this we store our code as a JS string, wrap it in an IFFE (to support the `return` symantics we use for all runtimes) vm.runInNewContext is called with {filename: "(execjs)"} in order to have the proper filename appear in backtraces. Normally this string is inserted into backtraces via a gsub in external_runtime.rb which replaces the filename. See https://nodejs.org/api/vm.html |
||
---|---|---|
.. | ||
execjs | ||
execjs.rb |