內建函式
V8 中的內建函式在實作上各有不同,取決於其功能、效能需求,有時還取決於單純的歷史發展。
有些函式直接在 JavaScript 中實作,並在執行時編譯成可執行程式碼,就像任何使用者 JavaScript 一樣。其中有些函式會使用所謂的執行時期函式來執行部分功能。執行時期函式以 C++ 編寫,並透過 %
前綴從 JavaScript 中呼叫。通常,這些執行時期函式僅限於 V8 內部 JavaScript 程式碼。為了除錯,如果 V8 以 --allow-natives-syntax
旗標執行,也可以從一般 JavaScript 程式碼中呼叫它們。有些執行時期函式會由編譯器直接內嵌到產生的程式碼中。如需清單,請參閱 src/runtime/runtime.h
。
其他函式實作為內建函式,而內建函式本身可以用許多不同的方式實作。有些函式直接在與平台相關的組譯程式中實作。有些函式在CodeStubAssembler 中實作,這是一個與平台無關的抽象概念。其他函式則直接在 C++ 中實作。內建函式有時也用於實作程式碼片段,不一定是整個函式。如需清單,請參閱 src/builtins/builtins.h
。