-DTESTS_BUILD_DIR=\"$(top_builddir)/src/tests/eolian_js\" \
@CHECK_CFLAGS@ @EOLIAN_CXX_CFLAGS@ @EINA_JS_CFLAGS@ @EO_JS_CFLAGS@ \
@EOLIAN_CFLAGS@ @EINA_CFLAGS@ @EO_CFLAGS@ @ECORE_CFLAGS@ @EINA_CXX_CFLAGS@ \
-@EO_JS_CFLAGS@ @EO_CXX_CFLAGS@
+@EO_JS_CFLAGS@ @EO_CXX_CFLAGS@ @ECORE_CXX_CFLAGS@
tests_eolian_js_libeolian_js_suite_la_LIBADD = \
@CHECK_LIBS@ @USE_EO_LIBS@ @USE_EINA_LIBS@ @USE_EOLIAN_LIBS@ @USE_EFL_JS_LIBS@
tests_eolian_js_libeolian_js_suite_la_DEPENDENCIES = @USE_EINA_INTERNAL_LIBS@ @USE_EO_INTERNAL_LIBS@ @USE_EFL_JS_INTERNAL_LIBS@
-DTESTS_BUILD_DIR=\"$(top_builddir)/src/tests/eolian_js\" \
@CHECK_CFLAGS@ @EOLIAN_CXX_CFLAGS@ @EINA_JS_CFLAGS@ @EO_JS_CFLAGS@ @EFL_JS_CFLAGS@ \
@EOLIAN_CFLAGS@ @EINA_CFLAGS@ @EO_CFLAGS@ @ECORE_CFLAGS@ @EINA_CXX_CFLAGS@ \
-@EO_JS_CFLAGS@ @EO_CXX_CFLAGS@ @EFL_JS_CFLAGS@
+@EO_JS_CFLAGS@ @EO_CXX_CFLAGS@ @EFL_JS_CFLAGS@ @ECORE_CXX_CFLAGS@
tests_eolian_js_eolian_js_suite_LDADD = \
@CHECK_LIBS@ @USE_EO_LIBS@ @USE_EINA_LIBS@ @USE_EOLIAN_LIBS@ @USE_EFL_JS_LIBS@ @USE_EVAS_LIBS@ @USE_EFL_JS_LIBS@
{"promise", "Eina_Promise"},
{"string", "const char*"},
{"void_ptr", "void *"},
- {"stringshare", "Eina_Stringshare*"}
+ {"stringshare", "Eina_Stringshare*"},
+ {"future", "Efl_Future*"}
};
return R {v};
}
+template <typename R, typename T, typename... U>
+R wrap_value(T const& v, value_tag<eina::js::complex_tag<T*, U...>>)
+{
+ return R {const_cast<T*>(&v)};
+}
+
template <typename T = v8::External>
struct _libv8_isolate_test
{
return get_value_from_javascript(v, isolate, class_name, value_tag<Eo*>(), throw_js_exception);
}
+// Futures
+template <typename ClassGetter>
+Eo* get_value_from_javascript
+ (v8::Local<v8::Value>
+ , v8::Isolate*
+ , const char*
+ , value_tag<complex_tag<Eo**, void*, ClassGetter>>
+ , bool = true)
+{
+ throw std::logic_error("");
+ return nullptr;
+}
+
template <typename T>
inline T get_value_from_javascript
(v8::Local<v8::Value> v
template <typename T, typename K>
inline v8::Local<v8::Value>
+get_value_from_c(efl::eina::js::complex_tag<Eo**, T, K>, v8::Isolate*, const char*)
+{
+ throw std::logic_error("");
+}
+
+template <typename T, typename K>
+inline v8::Local<v8::Value>
get_value_from_c(efl::eina::js::complex_tag<const Eina_Accessor *, T, K> v, v8::Isolate* isolate, const char* class_name)
{
// TODO implement const accessor?
Eo* eo = efl_add
(klass
, parent
- , eina::_mpl::for_each(constructors, call{efl_self, ¤t_index, &args})
+ , eina::_mpl::for_each(constructors, call{efl_added, ¤t_index, &args})
);
if (!eo)
throw std::logic_error("Failed to create object.");