فهرست منبع

Merge pull request #50 from yangfasheng/master

增加事件调用异常打印log
yangfasheng 7 سال پیش
والد
کامیت
5cd9e72fd9
2فایلهای تغییر یافته به همراه13 افزوده شده و 4 حذف شده
  1. 2 1
      rtthread-port/jerry_event.c
  2. 11 3
      rtthread-port/jerry_util.c

+ 2 - 1
rtthread-port/jerry_event.c

@@ -266,7 +266,8 @@ rt_bool_t js_emit_event(jerry_value_t obj, const char *event_name, const jerry_v
                 jerry_value_t ret = jerry_call_function(listener->func, obj, argv, argc);
                 if (jerry_value_is_error(ret))
                 {
-                    rt_kprintf("error calling listener\n");
+                    js_value_dump(obj);
+                    rt_kprintf("event [%s] calling listener error!\n", event_name);
                 }
                 jerry_release_value(ret);
                 listener = listener->next;

+ 11 - 3
rtthread-port/jerry_util.c

@@ -13,6 +13,8 @@ extern int js_module_init(void);
 extern int js_buffer_init(void);
 extern int js_buffer_cleanup(void);
 
+static void _js_value_dump(jerry_value_t value);
+
 static rt_mutex_t _util_lock = NULL;
 static js_util_user _user_init = NULL, _user_cleanup = NULL;
 
@@ -133,12 +135,12 @@ bool object_dump_foreach(const jerry_value_t property_name,
         printf("%s : ", str);
         free(str);
     }
-    js_value_dump(property_value);
+    _js_value_dump(property_value);
 
     return true;
 }
 
-void js_value_dump(jerry_value_t value)
+static void _js_value_dump(jerry_value_t value)
 {
     if (jerry_value_is_undefined(value))
     {
@@ -189,7 +191,7 @@ void js_value_dump(jerry_value_t value)
         for (index = 0; index < jerry_get_array_length(value); index ++)
         {
             jerry_value_t item = jerry_get_property_by_index(value, index);
-            js_value_dump(item);
+            _js_value_dump(item);
             printf(", ");
             jerry_release_value(item);
         }
@@ -208,6 +210,12 @@ void js_value_dump(jerry_value_t value)
     }
 }
 
+void js_value_dump(jerry_value_t value)
+{
+    _js_value_dump(value);
+    printf("\n");
+}
+
 int js_read_file(const char* filename, char **script)
 {
     FILE *fp;