node v0.3.1 から導入された VM モジュールって何さ
事の始まり
- あ、そういえばローカルの node が v0.3.0 だった。アップデートしようっと。
- 何が変わったんだろう。とりあえず Change log 読むか。
- VM Module? なんじゃそら。もしかして別スレッドでコード走ったりする?
- 実験してみよう!
というわけで実験
こんなコードを書いてみた。
var vm = require('vm'); console.log('start'); vm.runInNewContext('while(true){}'); console.log('end');
vm.runInNewContext というのは引数に渡された文字列をJavascriptとして実行するもの。evalと同じような感じ。
このコードを実行し、"start"の直後に"end"が表示されれば別スレッド、無限ループに突入したら同スレッド、ということになる。