|
19 | 19 |
|
20 | 20 | #define MODULE_NAME my_custom_module |
21 | 21 |
|
| 22 | +static void |
| 23 | +jobject_set_property_jval (jerry_value_t jobj, const char *name, jerry_value_t value) |
| 24 | +{ |
| 25 | + jerry_value_t prop_name = jerry_string_sz (name); |
| 26 | + jerry_value_t ret_val = jerry_object_set (jobj, prop_name, value); |
| 27 | + jerry_value_free (prop_name); |
| 28 | + jerry_value_free (ret_val); |
| 29 | +} /* jobject_set_property_jval */ |
| 30 | + |
| 31 | +static jerry_value_t |
| 32 | +call_function_with_callback (const jerry_call_info_t *call_info_p, |
| 33 | + const jerry_value_t jargv[], |
| 34 | + const jerry_length_t jargc) |
| 35 | +{ |
| 36 | + (void) jargc; |
| 37 | + jerry_value_t jval_func = jargv[0]; |
| 38 | + return jerry_call (jval_func, call_info_p->this_value, NULL, 0); |
| 39 | +} /* call_function_with_callback */ |
| 40 | + |
22 | 41 | static jerry_value_t |
23 | 42 | my_custom_module_on_resolve (void) |
24 | 43 | { |
25 | | - return jerry_number (42); |
| 44 | + jerry_value_t mymodule = jerry_object (); |
| 45 | + jerry_value_t val = jerry_number (42); |
| 46 | + jobject_set_property_jval (mymodule, "number_value", val); |
| 47 | + jerry_value_free (val); |
| 48 | + |
| 49 | + jerry_value_t jfunc = jerry_function_external (call_function_with_callback); |
| 50 | + jobject_set_property_jval (mymodule, "call_function_with_callback", jfunc); |
| 51 | + jerry_value_free (jfunc); |
| 52 | + |
| 53 | + return mymodule; |
26 | 54 | } /* my_custom_module_on_resolve */ |
27 | 55 |
|
28 | 56 | JERRYX_NATIVE_MODULE (MODULE_NAME, my_custom_module_on_resolve) |
0 commit comments