考虑以下两个程序:
// works.js
var buffer = new ArrayBuffer(16777216);
var HEAP8 = new Int8Array(buffer);
和
// fails.js
var HEAP8;
var buffer = new ArrayBuffer(16777216);
HEAP8 = new Int8Array(buffer);
运行node
,然后输入.load works.js
。一切似乎都很开心。现在退出node
。
再次运行node
并输入.load fails.js
。
在我的机器上fails.js
以交互方式引导node
进程占用超过1GB的RAM和100%的CPU,最后的语句永远阻塞解释器。 works.js
只是按预期运行并返回。
有什么好的理由来区别吗?或者我应该写一个错误报告?
奇怪的是,直接从命令行运行任一脚本都可以正常工作:
node works.js # exits normally
node fails.js # exits normally
更新:我在OS X 10.9.5上使用节点0.12.0