summaryrefslogtreecommitdiff
path: root/src/bindings/js
diff options
context:
space:
mode:
authorVitor Sousa <vitorsousasilva@gmail.com>2016-03-14 13:14:37 -0300
committerVitor Sousa <vitorsousasilva@gmail.com>2016-03-18 17:46:38 -0300
commita85348b70bdae9672ed2017d9a0c16fa315edcfa (patch)
tree75da634dbd86e26ed5133077239f7d76d9ff6eaa /src/bindings/js
parentbd200cefc44cb8b03ef465791b4dfc6b6cec85be (diff)
efl js: Update Javascript binding to compile with new Eolian API
Reword test method names to check naming convention.
Diffstat (limited to 'src/bindings/js')
-rw-r--r--src/bindings/js/efl_js/efl_js.cc21
-rw-r--r--src/bindings/js/eina_js/eina_js_compatibility.hh9
-rw-r--r--src/bindings/js/eina_js/eina_js_get_value_from_c.hh8
-rw-r--r--src/bindings/js/eo_js/eo_js_call_function.hh20
-rw-r--r--src/bindings/js/eo_js/eo_js_constructor.hh28
-rw-r--r--src/bindings/js/eo_js/eo_js_event.hh10
6 files changed, 53 insertions, 43 deletions
diff --git a/src/bindings/js/efl_js/efl_js.cc b/src/bindings/js/efl_js/efl_js.cc
index 2701a85bf7..227766dc2b 100644
--- a/src/bindings/js/efl_js/efl_js.cc
+++ b/src/bindings/js/efl_js/efl_js.cc
@@ -51,15 +51,13 @@ EAPI void register_job(v8::Handle<v8::Object> global, v8::Isolate* isolate);
51EAPI void register_parent(v8::Handle<v8::Object> global, v8::Isolate* isolate); 51EAPI void register_parent(v8::Handle<v8::Object> global, v8::Isolate* isolate);
52EAPI void register_poller(v8::Handle<v8::Object> global, v8::Isolate* isolate); 52EAPI void register_poller(v8::Handle<v8::Object> global, v8::Isolate* isolate);
53EAPI void register_timer(v8::Handle<v8::Object> global, v8::Isolate* isolate); 53EAPI void register_timer(v8::Handle<v8::Object> global, v8::Isolate* isolate);
54namespace con {
55EAPI void register_base(v8::Handle<v8::Object> global, v8::Isolate* isolate);
56EAPI void register_client(v8::Handle<v8::Object> global, v8::Isolate* isolate);
57EAPI void register_server(v8::Handle<v8::Object> global, v8::Isolate* isolate);
58}
59} 54}
60 55
61namespace efl { namespace network { 56namespace efl { namespace network {
57EAPI void register_base(v8::Handle<v8::Object> global, v8::Isolate* isolate);
58EAPI void register_server(v8::Handle<v8::Object> global, v8::Isolate* isolate);
62EAPI void register_connector(v8::Handle<v8::Object> global, v8::Isolate* isolate); 59EAPI void register_connector(v8::Handle<v8::Object> global, v8::Isolate* isolate);
60EAPI void register_client(v8::Handle<v8::Object> global, v8::Isolate* isolate);
63EAPI void register_url(v8::Handle<v8::Object> global, v8::Isolate* isolate); 61EAPI void register_url(v8::Handle<v8::Object> global, v8::Isolate* isolate);
64}} 62}}
65 63
@@ -97,7 +95,6 @@ EAPI void register_line(v8::Handle<v8::Object> global, v8::Isolate* isolate);
97EAPI void register_object(v8::Handle<v8::Object> global, v8::Isolate* isolate); 95EAPI void register_object(v8::Handle<v8::Object> global, v8::Isolate* isolate);
98EAPI void register_object_smart(v8::Handle<v8::Object> global, v8::Isolate* isolate); 96EAPI void register_object_smart(v8::Handle<v8::Object> global, v8::Isolate* isolate);
99EAPI void register_out(v8::Handle<v8::Object> global, v8::Isolate* isolate); 97EAPI void register_out(v8::Handle<v8::Object> global, v8::Isolate* isolate);
100EAPI void register_polygon(v8::Handle<v8::Object> global, v8::Isolate* isolate);
101EAPI void register_rectangle(v8::Handle<v8::Object> global, v8::Isolate* isolate); 98EAPI void register_rectangle(v8::Handle<v8::Object> global, v8::Isolate* isolate);
102EAPI void register_scrollable_interface(v8::Handle<v8::Object> global, v8::Isolate* isolate); 99EAPI void register_scrollable_interface(v8::Handle<v8::Object> global, v8::Isolate* isolate);
103EAPI void register_selectable_interface(v8::Handle<v8::Object> global, v8::Isolate* isolate); 100EAPI void register_selectable_interface(v8::Handle<v8::Object> global, v8::Isolate* isolate);
@@ -120,6 +117,10 @@ EAPI void register_scene(v8::Handle<v8::Object> global, v8::Isolate* isolate);
120EAPI void register_texture(v8::Handle<v8::Object> global, v8::Isolate* isolate); 117EAPI void register_texture(v8::Handle<v8::Object> global, v8::Isolate* isolate);
121} } 118} }
122 119
120namespace efl { namespace canvas {
121EAPI void register_polygon(v8::Handle<v8::Object> global, v8::Isolate* isolate);
122}}
123
123namespace edje { 124namespace edje {
124EAPI void register_edit(v8::Handle<v8::Object> global, v8::Isolate* isolate); 125EAPI void register_edit(v8::Handle<v8::Object> global, v8::Isolate* isolate);
125EAPI void register_object(v8::Handle<v8::Object> global, v8::Isolate* isolate); 126EAPI void register_object(v8::Handle<v8::Object> global, v8::Isolate* isolate);
@@ -165,10 +166,10 @@ EAPI void init(v8::Handle<v8::Object> exports)
165 ecore::register_parent(exports, v8::Isolate::GetCurrent()); 166 ecore::register_parent(exports, v8::Isolate::GetCurrent());
166 ecore::register_poller(exports, v8::Isolate::GetCurrent()); 167 ecore::register_poller(exports, v8::Isolate::GetCurrent());
167 ecore::register_timer(exports, v8::Isolate::GetCurrent()); 168 ecore::register_timer(exports, v8::Isolate::GetCurrent());
168 ecore::con::register_base(exports, v8::Isolate::GetCurrent()); 169 efl::network::register_base(exports, v8::Isolate::GetCurrent());
169 ecore::con::register_client(exports, v8::Isolate::GetCurrent()); 170 efl::network::register_client(exports, v8::Isolate::GetCurrent());
170 efl::network::register_connector(exports, v8::Isolate::GetCurrent()); 171 efl::network::register_connector(exports, v8::Isolate::GetCurrent());
171 ecore::con::register_server(exports, v8::Isolate::GetCurrent()); 172 efl::network::register_server(exports, v8::Isolate::GetCurrent());
172 efl::network::register_url(exports, v8::Isolate::GetCurrent()); 173 efl::network::register_url(exports, v8::Isolate::GetCurrent());
173#if 1 174#if 1
174 register_ecore_audio(exports, v8::Isolate::GetCurrent()); 175 register_ecore_audio(exports, v8::Isolate::GetCurrent());
@@ -199,7 +200,6 @@ EAPI void init(v8::Handle<v8::Object> exports)
199 evas::register_object(exports, v8::Isolate::GetCurrent()); 200 evas::register_object(exports, v8::Isolate::GetCurrent());
200 evas::register_object_smart(exports, v8::Isolate::GetCurrent()); 201 evas::register_object_smart(exports, v8::Isolate::GetCurrent());
201 evas::register_out(exports, v8::Isolate::GetCurrent()); 202 evas::register_out(exports, v8::Isolate::GetCurrent());
202 evas::register_polygon(exports, v8::Isolate::GetCurrent());
203 evas::register_rectangle(exports, v8::Isolate::GetCurrent()); 203 evas::register_rectangle(exports, v8::Isolate::GetCurrent());
204 evas::register_scrollable_interface(exports, v8::Isolate::GetCurrent()); 204 evas::register_scrollable_interface(exports, v8::Isolate::GetCurrent());
205 evas::register_selectable_interface(exports, v8::Isolate::GetCurrent()); 205 evas::register_selectable_interface(exports, v8::Isolate::GetCurrent());
@@ -218,6 +218,7 @@ EAPI void init(v8::Handle<v8::Object> exports)
218 evas::canvas3d::register_object(exports, v8::Isolate::GetCurrent()); 218 evas::canvas3d::register_object(exports, v8::Isolate::GetCurrent());
219 evas::canvas3d::register_scene(exports, v8::Isolate::GetCurrent()); 219 evas::canvas3d::register_scene(exports, v8::Isolate::GetCurrent());
220 evas::canvas3d::register_texture(exports, v8::Isolate::GetCurrent()); 220 evas::canvas3d::register_texture(exports, v8::Isolate::GetCurrent());
221 efl::canvas::register_polygon(exports, v8::Isolate::GetCurrent());
221#endif 222#endif
222#if 1 223#if 1
223 edje::register_edit(exports, v8::Isolate::GetCurrent()); 224 edje::register_edit(exports, v8::Isolate::GetCurrent());
diff --git a/src/bindings/js/eina_js/eina_js_compatibility.hh b/src/bindings/js/eina_js/eina_js_compatibility.hh
index 159c74a987..7cc16a3fe9 100644
--- a/src/bindings/js/eina_js/eina_js_compatibility.hh
+++ b/src/bindings/js/eina_js/eina_js_compatibility.hh
@@ -829,12 +829,11 @@ struct _v8_get_current_context<T, true> : T
829 } 829 }
830}; 830};
831 831
832template <typename T>
833inline v8::Local<v8::Value> 832inline v8::Local<v8::Value>
834new_v8_external_instance(v8::Handle<v8::Function>& ctor, T v, v8::Isolate* isolate) 833new_v8_external_instance(v8::Handle<v8::Function>& ctor, void const* v, v8::Isolate* isolate)
835{ 834{
836 // TODO: ensure v8::External ownership ??? (memory leak in case NewInstance throws) 835 // TODO: ensure v8::External ownership ??? (memory leak in case NewInstance throws)
837 v8::Handle<v8::Value> a[] = {efl::eina::js::compatibility_new<v8::External>(isolate, v)}; 836 v8::Handle<v8::Value> a[] = {efl::eina::js::compatibility_new<v8::External>(isolate, const_cast<void*>(v))};
838 return ctor->NewInstance(1, a); 837 return ctor->NewInstance(1, a);
839} 838}
840 839
@@ -842,10 +841,10 @@ inline
842compatibility_return_type cast_function(compatibility_callback_info_type args); 841compatibility_return_type cast_function(compatibility_callback_info_type args);
843 842
844inline v8::Local<v8::Value> 843inline v8::Local<v8::Value>
845new_v8_external_instance(v8::Handle<v8::Function>& ctor, Eo* v, v8::Isolate* isolate) 844new_v8_external_instance(v8::Handle<v8::Function>& ctor, Eo const* v, v8::Isolate* isolate)
846{ 845{
847 // TODO: ensure v8::External ownership ??? (memory leak in case NewInstance throws) 846 // TODO: ensure v8::External ownership ??? (memory leak in case NewInstance throws)
848 v8::Handle<v8::Value> a[] = {efl::eina::js::compatibility_new<v8::External>(isolate, v)}; 847 v8::Handle<v8::Value> a[] = {efl::eina::js::compatibility_new<v8::External>(isolate, const_cast<Eo*>(v))};
849 auto obj = ctor->NewInstance(1, a); 848 auto obj = ctor->NewInstance(1, a);
850 obj->Set(compatibility_new<v8::String>(isolate, "cast"), 849 obj->Set(compatibility_new<v8::String>(isolate, "cast"),
851 compatibility_new<v8::FunctionTemplate>(isolate, &cast_function)->GetFunction()); 850 compatibility_new<v8::FunctionTemplate>(isolate, &cast_function)->GetFunction());
diff --git a/src/bindings/js/eina_js/eina_js_get_value_from_c.hh b/src/bindings/js/eina_js/eina_js_get_value_from_c.hh
index 655b1b1974..9a0089e8b9 100644
--- a/src/bindings/js/eina_js/eina_js_get_value_from_c.hh
+++ b/src/bindings/js/eina_js/eina_js_get_value_from_c.hh
@@ -221,17 +221,17 @@ get_value_from_c(efl::eina::js::complex_tag<const Eina_Iterator *, T, K>, v8::Is
221 std::abort(); 221 std::abort();
222} 222}
223 223
224template <typename T, typename U, typename K> 224template <typename T, typename KT, typename U, typename KU>
225inline v8::Local<v8::Value> 225inline v8::Local<v8::Value>
226get_value_from_c(efl::eina::js::complex_tag<Eina_Hash *, T, U, K>, v8::Isolate*, const char*) 226get_value_from_c(efl::eina::js::complex_tag<Eina_Hash *, T, KT, U, KU>, v8::Isolate*, const char*)
227{ 227{
228 std::cerr << "get_value_from_c for Eina_Hash not implemented. Aborting..." << std::endl; 228 std::cerr << "get_value_from_c for Eina_Hash not implemented. Aborting..." << std::endl;
229 std::abort(); 229 std::abort();
230} 230}
231 231
232template <typename T, typename U, typename K> 232template <typename T, typename KT, typename U, typename KU>
233inline v8::Local<v8::Value> 233inline v8::Local<v8::Value>
234get_value_from_c(efl::eina::js::complex_tag<const Eina_Hash *, T, U, K>, v8::Isolate*, const char*) 234get_value_from_c(efl::eina::js::complex_tag<const Eina_Hash *, T, KT, U, KU>, v8::Isolate*, const char*)
235{ 235{
236 std::cerr << "get_value_from_c for Eina_Hash not implemented. Aborting..." << std::endl; 236 std::cerr << "get_value_from_c for Eina_Hash not implemented. Aborting..." << std::endl;
237 std::abort(); 237 std::abort();
diff --git a/src/bindings/js/eo_js/eo_js_call_function.hh b/src/bindings/js/eo_js/eo_js_call_function.hh
index 26bf03f862..cebe902018 100644
--- a/src/bindings/js/eo_js/eo_js_call_function.hh
+++ b/src/bindings/js/eo_js/eo_js_call_function.hh
@@ -38,7 +38,7 @@ struct arg_index<In, 0> : std::integral_constant<std::size_t, 0>
38template <typename In, typename Out, typename Ownership, typename F, typename Return, typename Parameters> 38template <typename In, typename Out, typename Ownership, typename F, typename Return, typename Parameters>
39struct method_caller 39struct method_caller
40{ 40{
41 typedef typename eina::_mpl::function_params<F>::type parameters_t; 41 typedef typename eo::js::eo_function_params<F>::type parameters_t;
42 42
43 template <std::size_t I> 43 template <std::size_t I>
44 struct is_out : eina::_mpl::tuple_contains<std::integral_constant<std::size_t, I>, Out> 44 struct is_out : eina::_mpl::tuple_contains<std::integral_constant<std::size_t, I>, Out>
@@ -190,7 +190,7 @@ struct method_caller
190 190
191 template <typename OutParameters, std::size_t... I> 191 template <typename OutParameters, std::size_t... I>
192 eina::js::compatibility_return_type 192 eina::js::compatibility_return_type
193 aux(eina::js::compatibility_callback_info_type args, eina::index_sequence<I...> 193 aux(Eo* eo, eina::js::compatibility_callback_info_type args, eina::index_sequence<I...>
194 , std::true_type) const 194 , std::true_type) const
195 { 195 {
196 typename eina::_mpl::tuple_transform<Out, out_transform<parameters_t> >::type outs {}; 196 typename eina::_mpl::tuple_transform<Out, out_transform<parameters_t> >::type outs {};
@@ -200,13 +200,13 @@ struct method_caller
200 {(init_inout<I>(args, outs, args.GetIsolate(), class_names[I], typename is_inout<I>::type()), 0)...}; 200 {(init_inout<I>(args, outs, args.GetIsolate(), class_names[I], typename is_inout<I>::type()), 0)...};
201 static_cast<void>(l); 201 static_cast<void>(l);
202 202
203 function(get_value<I>(args, outs, args.GetIsolate(), class_names[I], typename is_out<I>::type())...); 203 function(eo, get_value<I>(args, outs, args.GetIsolate(), class_names[I], typename is_out<I>::type())...);
204 return create_return_value<OutParameters>(args, outs); 204 return create_return_value<OutParameters>(args, outs);
205 } 205 }
206 206
207 template <typename OutParameters, std::size_t... I> 207 template <typename OutParameters, std::size_t... I>
208 eina::js::compatibility_return_type 208 eina::js::compatibility_return_type
209 aux(eina::js::compatibility_callback_info_type args, eina::index_sequence<I...> 209 aux(Eo* eo, eina::js::compatibility_callback_info_type args, eina::index_sequence<I...>
210 , std::false_type) const 210 , std::false_type) const
211 { 211 {
212 typename eina::_mpl::tuple_transform<Out, out_transform<parameters_t> >::type outs {}; 212 typename eina::_mpl::tuple_transform<Out, out_transform<parameters_t> >::type outs {};
@@ -217,7 +217,7 @@ struct method_caller
217 static_cast<void>(l); 217 static_cast<void>(l);
218 218
219 typename eina::_mpl::function_return<F>::type r = 219 typename eina::_mpl::function_return<F>::type r =
220 function(get_value<I>(args, outs, args.GetIsolate(), class_names[I], typename is_out<I>::type())...); 220 function(eo, get_value<I>(args, outs, args.GetIsolate(), class_names[I], typename is_out<I>::type())...);
221 return create_return_value<OutParameters>(args, r, outs); 221 return create_return_value<OutParameters>(args, r, outs);
222 } 222 }
223 223
@@ -243,13 +243,9 @@ struct method_caller
243 Eo* eo = static_cast<Eo*>(v8::External::Cast(*external)->Value()); 243 Eo* eo = static_cast<Eo*>(v8::External::Cast(*external)->Value());
244 try 244 try
245 { 245 {
246 eo_do 246 aux<OutParameters>(eo, args,
247 (eo, 247 eina::make_index_sequence<std::tuple_size<parameters_t>::value>(),
248 aux<OutParameters>( 248 std::is_same<void, Return>());
249 args,
250 eina::make_index_sequence<std::tuple_size<parameters_t>::value>(),
251 std::is_same<void, Return>())
252 );
253 } 249 }
254 catch(std::logic_error const&) 250 catch(std::logic_error const&)
255 { 251 {
diff --git a/src/bindings/js/eo_js/eo_js_constructor.hh b/src/bindings/js/eo_js/eo_js_constructor.hh
index 09cc9dce71..6ca02ce533 100644
--- a/src/bindings/js/eo_js/eo_js_constructor.hh
+++ b/src/bindings/js/eo_js/eo_js_constructor.hh
@@ -15,6 +15,21 @@
15 15
16namespace efl { namespace eo { namespace js { 16namespace efl { namespace eo { namespace js {
17 17
18template <typename T>
19struct eo_function_params;
20
21template <typename R, typename... P>
22struct eo_function_params<R(*)(Eo*, P...)>
23{
24 typedef std::tuple<P...> type;
25};
26
27template <typename R, typename... P>
28struct eo_function_params<R(*)(Eo const*, P...)>
29{
30 typedef std::tuple<P...> type;
31};
32
18inline eina::js::compatibility_return_type constructor(eina::js::compatibility_callback_info_type args) 33inline eina::js::compatibility_return_type constructor(eina::js::compatibility_callback_info_type args)
19{ 34{
20 if(args.IsConstructCall()) 35 if(args.IsConstructCall())
@@ -45,7 +60,7 @@ struct constructor_caller
45 void operator()(T function) const 60 void operator()(T function) const
46 { 61 {
47 int const parameters 62 int const parameters
48 = std::tuple_size<typename eina::_mpl::function_params<T>::type>::value; 63 = std::tuple_size<typename eo::js::eo_function_params<T>::type>::value;
49 if(*current + parameters <= args->Length()) 64 if(*current + parameters <= args->Length())
50 { 65 {
51 aux(function, eina::make_index_sequence<parameters>()); 66 aux(function, eina::make_index_sequence<parameters>());
@@ -62,24 +77,25 @@ struct constructor_caller
62 77
63 template <typename U, std::size_t I> 78 template <typename U, std::size_t I>
64 static 79 static
65 typename std::tuple_element<I, typename eina::_mpl::function_params<U>::type>::type 80 typename std::tuple_element<I, typename eo::js::eo_function_params<U>::type>::type
66 get_value(v8::Local<v8::Value> v, v8::Isolate* isolate) 81 get_value(v8::Local<v8::Value> v, v8::Isolate* isolate)
67 { 82 {
68 typename std::tuple_element<I, typename eina::_mpl::function_params<U>::type>::type 83 typename std::tuple_element<I, typename eo::js::eo_function_params<U>::type>::type
69 tmp = 84 tmp =
70 eina::js::get_value_from_javascript 85 eina::js::get_value_from_javascript
71 (v, isolate, "" 86 (v, isolate, ""
72 , eina::js::value_tag<typename std::tuple_element 87 , eina::js::value_tag<typename std::tuple_element
73 <I, typename eina::_mpl::function_params<U>::type>::type>()); 88 <I, typename eo::js::eo_function_params<U>::type>::type>());
74 return tmp; 89 return tmp;
75 } 90 }
76 91
77 template <typename T, std::size_t... I> 92 template <typename T, std::size_t... I>
78 void aux(T function, eina::index_sequence<I...>) const 93 void aux(T function, eina::index_sequence<I...>) const
79 { 94 {
80 function(get_value<T, I>((*args)[I + *current], args->GetIsolate())...); 95 function(obj_eo_self, get_value<T, I>((*args)[I + *current], args->GetIsolate())...);
81 } 96 }
82 97
98 Eo* obj_eo_self;
83 int* current; 99 int* current;
84 eina::js::compatibility_callback_info_pointer args; 100 eina::js::compatibility_callback_info_pointer args;
85 }; 101 };
@@ -96,7 +112,7 @@ struct constructor_caller
96 Eo* eo = eo_add 112 Eo* eo = eo_add
97 (klass 113 (klass
98 , parent 114 , parent
99 , eina::_mpl::for_each(constructors, call{&current_index, &args}) 115 , eina::_mpl::for_each(constructors, call{eo_self, &current_index, &args})
100 ); 116 );
101 assert(eo != 0); 117 assert(eo != 0);
102 v8::Local<v8::Object> self = args.This(); 118 v8::Local<v8::Object> self = args.This();
diff --git a/src/bindings/js/eo_js/eo_js_event.hh b/src/bindings/js/eo_js/eo_js_event.hh
index ab2dd34fee..280aeacae6 100644
--- a/src/bindings/js/eo_js/eo_js_event.hh
+++ b/src/bindings/js/eo_js/eo_js_event.hh
@@ -54,18 +54,17 @@ inline v8::Local<v8::Value> get_event_info<void>(void*, v8::Isolate* isolate, co
54} 54}
55 55
56template <typename T> 56template <typename T>
57inline Eina_Bool event_callback(void* data, Eo* obj, Eo_Event_Description const* 57inline Eina_Bool event_callback(void* data, Eo_Event const* eo_event)
58 , void* event_info)
59{ 58{
60 v8::Isolate* isolate = v8::Isolate::GetCurrent(); 59 v8::Isolate* isolate = v8::Isolate::GetCurrent();
61 v8::HandleScope handle_scope(isolate); 60 v8::HandleScope handle_scope(isolate);
62 event_callback_information* event = static_cast<event_callback_information*>(data); 61 event_callback_information* event = static_cast<event_callback_information*>(data);
63 v8::Handle<v8::Value> a[] = {eina::js::compatibility_new<v8::External>(isolate, obj)}; 62 v8::Handle<v8::Value> a[] = {eina::js::compatibility_new<v8::External>(isolate, eo_event->obj)};
64 v8::Local<v8::Object> self = (event->event_info->constructor->handle())->NewInstance(1, a); 63 v8::Local<v8::Object> self = (event->event_info->constructor->handle())->NewInstance(1, a);
65 64
66 v8::Local<v8::Value> call_args[] = { 65 v8::Local<v8::Value> call_args[] = {
67 self, 66 self,
68 get_event_info<T>(event_info, isolate, event->event_info->class_name) 67 get_event_info<T>(eo_event->event_info, isolate, event->event_info->class_name)
69 }; 68 };
70 event->function.handle()->Call(eina::js::compatibility_global(), 2, call_args); 69 event->function.handle()->Call(eina::js::compatibility_global(), 2, call_args);
71 70
@@ -100,8 +99,7 @@ inline eina::js::compatibility_return_type on_event(eina::js::compatibility_call
100 99
101 event_callback_information* i = new event_callback_information 100 event_callback_information* i = new event_callback_information
102 {event, {isolate, eina::js::compatibility_cast<v8::Function>(f)}}; 101 {event, {isolate, eina::js::compatibility_cast<v8::Function>(f)}};
103 eo_do(eo, eo_event_callback_priority_add 102 eo_event_callback_add(eo, event->event, event->event_callback, i);
104 (event->event, EO_CALLBACK_PRIORITY_DEFAULT, event->event_callback, i));
105 } 103 }
106 else 104 else
107 { 105 {