diff options
Diffstat (limited to 'src/bindings/eina_js/eina_js_error.cc')
-rw-r--r-- | src/bindings/eina_js/eina_js_error.cc | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/bindings/eina_js/eina_js_error.cc b/src/bindings/eina_js/eina_js_error.cc new file mode 100644 index 0000000000..89d69a1895 --- /dev/null +++ b/src/bindings/eina_js/eina_js_error.cc @@ -0,0 +1,24 @@ +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <Eina_Js.hh> + +namespace efl { namespace eina {namespace js { + +EAPI +js::compatibility_return_type convert_error_to_javascript_exception(v8::Isolate *isolate) +{ + Eina_Error err = eina_error_get(); + if (!err) + return compatibility_return(); + + v8::Local<v8::Object> je = eina::js::compatibility_new<v8::Object>(isolate); + je->Set(compatibility_new<v8::String>(isolate, "code"), + compatibility_new<v8::String>(isolate, "Eina_Error")); + je->Set(compatibility_new<v8::String>(isolate, "value"), + compatibility_new<v8::String>(isolate, eina_error_msg_get(err))); + return compatibility_throw(isolate, je); +} + +} } } // namespace efl { namespace js { |