본문으로 건너뛰기

내장 함수

V8의 내장 함수는 기능, 성능 요구 사항 및 때로는 단순히 역사적 발전에 따라 구현과 관련하여 다양한 형태로 제공됩니다.

일부는 JavaScript로 직접 구현되며 사용자 JavaScript처럼 런타임에 실행 가능한 코드로 컴파일됩니다. 그들 중 일부는 소위 runtime functions 의 일부 기능을 의존합니다. 런타임 함수는 C++로 작성되며 JavaScript에서 % 접두사를 통해 호출됩니다. 일반적으로 이러한 런타임 함수는 V8 내부 JavaScript 코드로 제한됩니다. 디버깅 목적으로 V8이 --allow-natives-syntax 플래그로 실행되는 경우 일반 JavaScript 코드에서도 호출할 수 있습니다. 일부 런타임 함수는 컴파일러에 의해 생성된 코드에 직접 포함됩니다. 목록은 src/runtime/runtime.h를 참조하십시오.

다른 함수는 _built-ins_로 구현되며, 이는 스스로 여러 가지 다른 방식으로 구현될 수 있습니다. 일부는 플랫폼 종속 어셈블리로 직접 구현됩니다. 일부는 _CodeStubAssembler_라는 플랫폼 독립적 추상화 형태로 구현됩니다. 다른 것은 C++로 직접 구현됩니다. 내장 함수는 때때로 전체 함수가 아니라 코드 일부를 구현하는 접착 코드에도 사용됩니다. 목록은 src/builtins/builtins.h를 참조하십시오.