- Version:
Node.js v6.7.0 / Node.js 4.4.2
- Platform:
Ubuntu 14.04 LTS x64 (v6.7.0) / macOS Sierra (v4.4.2)
- Subsystem:
VM

I just found there's unexpected behavior on timeout option of vm.runInContext.
When timeout option was specified, Script execution on VM is much slower then timeout options wasn't specified.
This is two of example snippets to reproduce that problem:
vm-normal.js
'use strict';
const
vm = require('vm'),
sandbox = {
current: -1
};
console.time('vm-normal');
vm.createContext(sandbox);
for (let i = 0 ; i < 100000 ; i++) {
vm.runInContext(`current = ${i};`, sandbox, {
displayErrors: false
});
}
console.timeEnd('vm-normal');
vm-with-timeout.js
'use strict';
const
vm = require('vm'),
sandbox = {
current: -1
};
console.time('vm-with-timeout');
vm.createContext(sandbox);
for (let i = 0 ; i < 100000 ; i++) {
vm.runInContext(`current = ${i};`, sandbox, {
displayErrors: false,
timeout: 1000
});
}
console.timeEnd('vm-with-timeout');
I think maybe that's not a bug (timer for timeout is expansive?), but that's unexpected behavior. It would be nice if that limitation should be documented on VM API documentation.
Node.js v6.7.0 / Node.js 4.4.2
Ubuntu 14.04 LTS x64 (v6.7.0) / macOS Sierra (v4.4.2)
VM
I just found there's unexpected behavior on
timeoutoption ofvm.runInContext.When
timeoutoption was specified, Script execution on VM is much slower thentimeoutoptions wasn't specified.This is two of example snippets to reproduce that problem:
vm-normal.js
vm-with-timeout.js
I think maybe that's not a bug (timer for timeout is expansive?), but that's unexpected behavior. It would be nice if that limitation should be documented on VM API documentation.