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

Are node.js and V8 builtins written in JS or compiled and run as native code?

在 node.js 中,我假设扩展为 V8,是驻留在解释器中的内置代码(例如 JSON、Math 等),或者它们是 javascript 代码它的解释方式与其他用户编写的代码相同?

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

看了一眼 V8 源代码,我认为它是两者的结合。 JSON 由 json-parser.h; (at least some of) math is implemented as JavaScript in math.js 中的本机代码支持。

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

快速浏览 repo 将使您了解用本机代码编写的内容(以及未编写的内容): https://github.com/joyent/node/tree/master/deps/v8/src