Toolverse
Wszystkie skille

implementing-jsc-classes-cpp

autor: oven-sh

Umożliwia tworzenie klas JavaScript z wiązaniami C++ przy użyciu JavaScriptCore

Instalacja

Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.

Instalacja

Szybkie info

Autor
oven-sh
Kategoria
UX / Design
Wyświetlenia
2

O skillu

Skill do implementacji klas JavaScript w C++ z pełnym wsparciem dla konstruktorów, prototypów i pól C++. Wykorzystuje JavaScriptCore do tworzenia nowych klas dostępnych z poziomu JavaScript z natywnym kodem C++. Zawiera szablony dla struktury klas, konfiguracji izolowanych podprzestrzeni pamięci oraz definicji właściwości i metod. Idealny dla deweloperów pracujących nad wiązaniami w projekcie Bun, którzy potrzebują integracji JavaScript z wydajnym kodem C++.

Jak używać

  1. Utwórz trzy klasy C++: główną klasę dziedziczącą po JSC::DestructibleObject (jeśli masz pola C++) lub użyj JSC::constructEmptyObject, klasę Prototype dziedziczącą po JSC::JSNonFinalObject oraz klasę Constructor dziedziczącą po JSC::InternalFunction. Jeśli klasa nie ma publicznego konstruktora, wystarczą tylko Prototype i klasa główna.
  2. Jeśli twoja klasa posiada pola C++, dodaj definicję subspaces w plikach DOMClientIsoSubspaces.h i DOMIsoSubspaces.h, używając szablonu subspaceFor z obsługą trybu Concurrently.
  3. Zdefiniuj właściwości i metody za pomocą makr JSC_DECLARE_HOST_FUNCTION dla metod oraz JSC_DECLARE_CUSTOM_GETTER dla getterów właściwości.
  4. Utwórz tablicę HashTableValue zawierającą definicje wszystkich właściwości i metod z odpowiednimi atrybutami (ReadOnly, CustomAccessor itp.) oraz wskaźnikami na funkcje implementujące te elementy.
  5. Zarejestruj tabelę właściwości w prototypie klasy, aby udostępnić je kodem JavaScript.

Podobne skille