jerry_util.h 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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. MSH_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. bool is_utf8_string(const void* str, int size);
  33. void js_set_property(const jerry_value_t obj, const char *name,
  34. const jerry_value_t prop);
  35. void js_set_string_property(const jerry_value_t obj, const char *name,
  36. char* value);
  37. void js_set_boolean_property(const jerry_value_t obj, const char *name,
  38. bool value);
  39. jerry_value_t js_get_property(const jerry_value_t obj, const char *name);
  40. void js_add_function(const jerry_value_t obj, const char *name,
  41. jerry_external_handler_t func);
  42. jerry_value_t js_call_func_obj(const jerry_value_t func_obj_val, const jerry_value_t this_val,
  43. const jerry_value_t args_p[], jerry_size_t args_count);
  44. jerry_value_t js_call_function(const jerry_value_t obj, const char *name,
  45. const jerry_value_t args[], jerry_size_t args_cnt);
  46. jerry_value_t js_string_to_value(const char *value);
  47. char *js_value_to_string(const jerry_value_t value);
  48. void js_value_dump(const jerry_value_t value);
  49. int js_read_file(const char* filename, char **script);
  50. int js_util_init(void);
  51. int js_util_cleanup(void);
  52. int js_util_lock(void);
  53. int js_util_unlock(void);
  54. void js_util_user_init(js_util_user func);
  55. void js_util_user_cleanup(js_util_user func);
  56. #ifdef __cplusplus
  57. }
  58. #endif
  59. #endif