内置函数
V8中的内置函数根据其功能、性能要求以及有时的历史开发进程,拥有不同的实现方式。
有些直接用JavaScript实现,并在运行时像任何用户JavaScript一样编译成可执行代码。它们中的一部分会使用所谓的_运行时函数_来完成部分功能。运行时函数是用C++编写,并通过%
前缀从JavaScript中调用。这些运行时函数通常仅限于V8内部JavaScript代码。为了调试目的,如果V8以--allow-natives-syntax
标志运行,它们也可以从普通的JavaScript代码中调用。有些运行时函数由编译器直接嵌入到生成的代码中。有关列表,请参见src/runtime/runtime.h
。
其他函数作为_内置函数_实现,这些内置函数可以通过多种不同方式实现。有些直接用平台相关的汇编语言编写;有些使用_CodeStubAssembler_实现,它是一个平台独立的抽象;还有些直接用C++实现。内置函数有时也用于实现胶水代码片段,不一定是完整的函数。有关列表,请参见src/builtins/builtins.h
。