1 #ifdef HAVE_CONFIG_H 2 #include <config.h> 3 #endif 4 5 #include <Eina.hh> 6 7 #include <Eina_Js.hh> 8 9 #include <iostream> 10 11 namespace efl { namespace eina { namespace js { 12 register_destroy_accessor(v8::Isolate * isolate,v8::Handle<v8::Object> global,v8::Handle<v8::String> name)13EAPI void register_destroy_accessor(v8::Isolate *isolate, 14 v8::Handle<v8::Object> global, 15 v8::Handle<v8::String> name) 16 { 17 typedef void (*deleter_t)(void*); 18 19 auto f = [](compatibility_callback_info_type info) -> compatibility_return_type 20 { 21 if (info.Length() != 1 || !info[0]->IsObject()) 22 return compatibility_return(); 23 24 v8::Handle<v8::Object> o = info[0]->ToObject(); 25 26 deleter_t deleter = compatibility_get_pointer_internal_field<deleter_t>(o, 1); 27 deleter(compatibility_get_pointer_internal_field<>(o, 0)); 28 return compatibility_return(); 29 }; 30 31 global->Set(name, compatibility_new<v8::FunctionTemplate>(isolate, f)->GetFunction()); 32 } 33 34 } } } // namespace efl { namespace js { 35