node.js和V8内置是用JS编写还是编译并作为本机代码运行?

时间:2015-04-27 05:17:43

标签: javascript node.js v8

在node.js中,我假设通过扩展V8,内置(例如JSON,Math等)本机代码驻留在解释器中,或者它们是javascript代码,其解释方式与其他用户相同 - 书面代码?

例如,对JSON.stringify(my_data)的调用是否会跳转到已编译的机器代码,还是只运行更多JS代码?

2 个答案:

答案 0 :(得分:1)

这似乎是JSON字符串化的原因: https://github.com/joyent/node/blob/master/deps/v8/src/json-stringifier.h

快速浏览回购邮件会让您了解用本机代码编写的内容(以及不是什么): https://github.com/joyent/node/tree/master/deps/v8/src

答案 1 :(得分:0)

浏览V8源代码,我认为它是两者的混合。 JSON由json-parser.h中的本机代码支持; (至少部分)数学在math.js中实现为JavaScript。