jerry_util.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #ifndef JERRY_UTIL_H__
  2. #define JERRY_UTIL_H__
  3. #include <jerryscript-ext/handler.h>
  4. #define DECLARE_HANDLER(NAME) \
  5. static jerry_value_t \
  6. NAME ## _handler (const jerry_value_t func_value, \
  7. const jerry_value_t this_value, \
  8. const jerry_value_t args[], \
  9. const jerry_length_t args_cnt )
  10. #define REGISTER_HANDLER(NAME) \
  11. jerryx_handler_register_global ( (jerry_char_t *)# NAME, NAME ## _handler)
  12. #define REGISTER_HANDLER_ALIAS(NAME, HANDLER) \
  13. jerryx_handler_register_global ( (jerry_char_t *)# NAME, HANDLER)
  14. #define REGISTER_METHOD(OBJ, NAME) \
  15. js_add_function (OBJ, # NAME, NAME ## _handler)
  16. #define REGISTER_METHOD_ALIAS(OBJ, NAME, HANDLER) \
  17. js_add_function (OBJ, # NAME, HANDLER)
  18. #define REGISTER_METHOD_NAME(OBJ, NAME, HANDLER) \
  19. js_add_function (OBJ, NAME, HANDLER ## _handler)
  20. #ifdef RT_USING_FINSH
  21. #include <finsh.h>
  22. #define JS_MODULE(NAME, MODULE_INIT) \
  23. FINSH_FUNCTION_EXPORT_CMD(MODULE_INIT, __jsm_ ##NAME, RT_NULL)
  24. #else
  25. #define JS_MODULE(NAME, MODULE_INIT)
  26. #endif
  27. #ifdef __cplusplus
  28. extern "C"
  29. {
  30. #endif
  31. typedef void(*js_util_user)(void);
  32. void js_set_property(const jerry_value_t obj, const char *name,
  33. const jerry_value_t prop);
  34. void js_set_string_property(const jerry_value_t obj, const char *name,
  35. char* value);
  36. jerry_value_t js_get_property(const jerry_value_t obj, const char *name);
  37. void js_add_function(const jerry_value_t obj, const char *name,
  38. jerry_external_handler_t func);
  39. jerry_value_t js_call_func_obj(const jerry_value_t func_obj_val, const jerry_value_t this_val,
  40. const jerry_value_t args_p[], jerry_size_t args_count);
  41. jerry_value_t js_call_function(const jerry_value_t obj, const char *name,
  42. const jerry_value_t args[], jerry_size_t args_cnt);
  43. char *js_value_to_string(const jerry_value_t value);
  44. void js_value_dump(const jerry_value_t value);
  45. int js_read_file(const char* filename, char **script);
  46. int js_util_init(void);
  47. int js_util_cleanup(void);
  48. int js_util_lock(void);
  49. int js_util_unlock(void);
  50. void js_util_user_init(js_util_user func);
  51. void js_util_user_cleanup(js_util_user func);
  52. #ifdef __cplusplus
  53. }
  54. #endif
  55. #endif