рдпрд╣ рдХреЛрдб рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреА рдЕрд╡рд╣реЗрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд▓рдЯрдХрд╛ рджреЗрддрд╛ рд╣реИ:
'use strict'
const {VM} = require('vm2')
const vm = new VM({
timeout: 5000,
})
console.log('Runs')
vm.run('Promise.resolve(42).then(() => {while(true) {}})') // hangs the process
setImmediate(console.log, 'Will never run')
рдФрд░ рд╡рд╛рджрд╛ рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдХреНрд╖рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛: #74.
рд░реАрдбрдореА.рдПрдордбреА
рдорд╣рддреНрд╡рдкреВрд░реНрдг: рдЯрд╛рдЗрдордЖрдЙрдЯ NodeVM рдХреЗ рд▓рд┐рдП рдкреНрд░рднрд╛рд╡реА рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЬрдмрдХрд┐ (рд╕рддреНрдп) {} рдпрд╛ рдЗрд╕реА рддрд░рд╣ рдХреА рдмреБрд░рд╛рдИ рд╕реЗ рдкреНрд░рддрд┐рд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИред
@awiebe рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдореИрдВ VM
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, NodeVM
рдирд╣реАрдВред
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рдиреЛрдб рдХреЗ рдЯрд╛рдЗрдордЖрдЙрдЯ рдлреАрдЪрд░ рдХреА рдПрдХ рдФрд░ рд╕реАрдорд╛ рд╣реИ - рдпрд╣ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рд╡реЗ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рд╣реЛрдВред
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреБрд░рд╛рдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рд╣рд╛рд▓ рдХреА рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реИред рдЖрдЧреЗ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рдЗрд╕реЗ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЖрдкрдХреЗ рдпреЛрдЧрджрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред