script.runInThisContext([options])
Similar to vm.runInThisContext() but a method of a precompiled Script object. script.runInThisContext() runs script's compiled code and returns the result. Running code does not have access to local scope, but does have access to the current global object.
Example of using script.runInThisContext() to compile code once and run it multiple times:
const vm = require('vm');
global.globalVar = 0;
const script = new vm.Script('globalVar += 1', { filename: 'myfile.vm' });
for (var i = 0; i < 1000; ++i) {
script.runInThisContext();
}
console.log(globalVar);
// 1000The options for running a script are:
-
filename: allows you to control the filename that shows up in any stack traces produced. -
lineOffset: allows you to add an offset to the line number that is displayed in stack traces -
columnOffset: allows you to add an offset to the column number that is displayed in stack traces -
displayErrors: whether or not to print any errors to stderr, with the line of code that caused them highlighted, before throwing an exception. Applies only to runtime errors executing the code; it is impossible to create aScriptinstance with syntax errors, as the constructor will throw. -
timeout: a number of milliseconds to execute the script before terminating execution. If execution is terminated, anErrorwill be thrown.
Please login to continue.