Bind C++ functions and classes into V8 JavaScript engine
OTHER License
Bot releases are hidden (Show)
NewDefaultAllocator()
for v8::Isolate::CreateParams
field (#198)Published by pmed almost 2 years ago
var
, function
, const_
std::tuple
, std::variant
Published by pmed almost 3 years ago
Published by pmed over 4 years ago
Published by pmed almost 6 years ago
Updated minimum requirements to the project:
Fixed issues: #80, #84, #88, #91
Published by pmed almost 6 years ago
Before dropping support of old V8 versions with deprecated API
Published by pmed almost 7 years ago
std::shared_ptr
:class MyClass {};
v8pp::class_<MyClass, true> MyClass_binding(isolate);
v8::Handle<v8::Object> v8_obj = v8pp::class_<MyClass, true>::create_object(isolate);
std::shared_ptr<MyClass> obj = v8pp::class_<MyClass, true>::unwrap_object(isolate, v8_obj);
type_id()
function instead of RTTI usage.Published by pmed about 7 years ago
See #60: C++ objects referenced with reference_external are still deleted when class_::destroy() is called
Published by pmed almost 8 years ago
Custom type_info
and type_id<T>
are used in C++ class binder implementation. This allows to not force standard RTTI usage, which is turned off on many projects and in default Node.js addon configuration. Many thanks to @Manu343726 and @foonathan for their idea in https://github.com/Manu343726/ctti library.
A registery of bound classes is not stored in a V8 isolate by default from now. This is fine for typical use case, until we bind classes in multiple shared libraries (see #26). For the scenario with multiple shared libraries, define in all projects # V8PP_ISOLATE_DATA_SLOT
with V8 slot number to store the classes registry there.
Fixed an issue with destroy of weak references to v8::External
. They are used to store data with sizeof(data) > sizeof(void*)
, like lambda bindings (see #30).
Published by pmed about 8 years ago
Published by pmed about 8 years ago
Replaced static variables for class types identification by std::type_index
in order to resolve an issue with the classes identification across different shared libraries.
Removal of those static variables also leads up to better concurrency support with multiple V8
isolates (see #28)
Published by pmed about 8 years ago
According to nodejs/node#6216 only primitive values and V8 templates are allowed to set in a v8::ObjectTemplate.