I
implementing-jsc-classes-cpp
Implements JavaScript classes in C++ using JavaScriptCore. Use when creating new JS classes with C++ bindings, prototypes, or constructors.
Installation
Pick a client and clone the repository into its skills directory.
Installation
About this skill
Implements JavaScript classes in C++ using JavaScriptCore. Use when creating new JS classes with C++ bindings, prototypes, or constructors.
How to use
- 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.
- 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.
- 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.
- 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.
- Zarejestruj tabelę właściwości w prototypie klasy, aby udostępnić je kodem JavaScript.