1616#include <stdlib.h>
1717#include <stdio.h>
1818
19- #include "jerry-core/jerry.h"
19+ #include "jerry-core/jerry-api .h"
2020#include "jerry_extapi.h"
2121
2222#include "native_esp8266.h"
3131#define __UNSED__ __attribute__((unused))
3232
3333#define DELCARE_HANDLER (NAME ) \
34- static bool \
35- NAME ## _handler (const jerry_api_object_t * function_obj_p __UNSED__, \
36- const jerry_api_value_t * this_p __UNSED__, \
37- jerry_api_value_t * ret_val_p __UNSED__, \
38- const jerry_api_value_t args_p[], \
39- const jerry_api_length_t args_cnt)
34+ static jerry_value_t \
35+ NAME ## _handler (const jerry_value_t function_obj_val __UNSED__, \
36+ const jerry_value_t this_val __UNSED__, \
37+ const jerry_value_t args_p[], \
38+ const jerry_length_t args_cnt)
4039
4140#define REGISTER_HANDLER (NAME ) \
4241 register_native_function ( # NAME, NAME ## _handler)
@@ -45,46 +44,46 @@ NAME ## _handler (const jerry_api_object_t * function_obj_p __UNSED__, \
4544
4645DELCARE_HANDLER (assert ) {
4746 if (args_cnt == 1
48- && args_p [0 ]. type == JERRY_API_DATA_TYPE_BOOLEAN
49- && args_p [0 ]. u . v_bool == true )
47+ && jerry_value_is_boolean ( args_p [0 ])
48+ && jerry_get_boolean_value ( args_p [0 ]) )
5049 {
5150 printf (">> Jerry assert true\r\n" );
52- return true;
51+ return jerry_create_boolean ( true) ;
5352 }
5453 printf ("Script assertion failed\n" );
5554 exit (JERRY_STANDALONE_EXIT_CODE_FAIL );
56- return false;
55+ return jerry_create_boolean ( false) ;
5756}
5857
5958
6059DELCARE_HANDLER (print ) {
61- jerry_api_length_t cc ;
60+ jerry_length_t cc ;
6261
6362 if (args_cnt )
6463 {
6564 printf (">> print(%d) :" , (int )args_cnt );
6665 for (cc = 0 ; cc < args_cnt ; cc ++ )
6766 {
68- if (args_p [ cc ]. type == JERRY_API_DATA_TYPE_STRING && args_p [cc ]. u . v_string )
67+ if (jerry_value_is_string ( args_p [cc ]) )
6968 {
7069 static char buffer [128 ];
71- jerry_api_size_t length , maxlength ;
72- length = - jerry_api_string_to_char_buffer (args_p [0 ]. u . v_string , NULL , 0 );
73- maxlength = MIN (length , 126 );
74- jerry_api_string_to_char_buffer (args_p [cc ]. u . v_string ,
75- ( jerry_api_char_t * ) buffer ,
76- maxlength );
77- * (buffer + length ) = 0 ;
70+ jerry_size_t size , maxsize ;
71+ size = jerry_get_string_size (args_p [0 ]);
72+ maxsize = MIN (size , 126 );
73+ jerry_string_to_char_buffer (args_p [cc ],
74+ ( jerry_char_t * ) buffer ,
75+ maxsize );
76+ * (buffer + size ) = 0 ;
7877 printf ("[%s] " , buffer );
7978 }
8079 else
8180 {
82- printf ("(%d) " , args_p [cc ]. type );
81+ printf ("(%d) " , args_p [cc ]);
8382 }
8483 }
8584 printf ("\r\n" );
8685 }
87- return true;
86+ return jerry_create_boolean ( true) ;
8887}
8988
9089
@@ -97,27 +96,27 @@ DELCARE_HANDLER(gpio_dir) {
9796 return false;
9897 }
9998
100- port = (int )JS_VALUE_TO_NUMBER ( & args_p [0 ]);
101- value = (int )JS_VALUE_TO_NUMBER ( & args_p [1 ]);
99+ port = (int ) jerry_get_number_value ( args_p [0 ]);
100+ value = (int ) jerry_get_number_value ( args_p [1 ]);
102101
103102 native_gpio_dir (port , value );
104103
105- return true;
104+ return jerry_create_boolean ( true) ;
106105} /* gpio_dir_handler */
107106
108107DELCARE_HANDLER (gpio_set ) {
109108 int port , value ;
110109 if (args_cnt < 2 )
111110 {
112- return false;
111+ return jerry_create_boolean ( false) ;
113112 }
114113
115- port = (int )JS_VALUE_TO_NUMBER ( & args_p [0 ]);
116- value = (int )JS_VALUE_TO_NUMBER ( & args_p [1 ]);
114+ port = (int )jerry_get_number_value ( args_p [0 ]);
115+ value = (int )jerry_get_number_value ( args_p [1 ]);
117116
118117 native_gpio_set (port , value );
119118
120- return true;
119+ return jerry_create_boolean ( true) ;
121120} /* gpio_dir_handler */
122121
123122
@@ -128,14 +127,11 @@ DELCARE_HANDLER(gpio_get) {
128127 return false;
129128 }
130129
131- port = (int )JS_VALUE_TO_NUMBER ( & args_p [0 ]);
130+ port = (int ) jerry_get_number_value ( args_p [0 ]);
132131
133132 value = native_gpio_get (port ) ? 1 : 0 ;
134133
135- ret_val_p -> type = JERRY_API_DATA_TYPE_FLOAT64 ;
136- ret_val_p -> u .v_float64 = (double )value ;
137-
138- return true;
134+ return jerry_create_number ((double ) value );
139135} /* gpio_dir_handler */
140136
141137
@@ -145,34 +141,35 @@ static bool
145141register_native_function (const char * name ,
146142 jerry_external_handler_t handler )
147143{
148- jerry_api_object_t * global_obj_p ;
149- jerry_api_object_t * reg_func_p ;
150- jerry_api_value_t reg_value ;
144+ jerry_value_t global_obj_val ;
145+ jerry_value_t reg_func_val ;
146+ jerry_value_t prop_name_val ;
147+ jerry_value_t res ;
151148 bool bok ;
152149
153- global_obj_p = jerry_api_get_global ();
154- reg_func_p = jerry_api_create_external_function (handler );
150+ global_obj_val = jerry_get_global_object ();
151+ reg_func_val = jerry_create_external_function (handler );
152+ bok = true;
155153
156- if (!(reg_func_p != NULL
157- && jerry_api_is_function (reg_func_p )
158- && jerry_api_is_constructor (reg_func_p )))
154+ if (!(jerry_value_is_function (reg_func_val )
155+ && jerry_value_is_constructor (reg_func_val )))
159156 {
160157 printf ("!!! create_external_function failed !!!\r\n" );
161- jerry_api_release_object (global_obj_p );
158+ jerry_release_value (reg_func_val );
159+ jerry_release_value (global_obj_val );
162160 return false;
163161 }
164162
165- jerry_api_acquire_object (reg_func_p );
166- reg_value .type = JERRY_API_DATA_TYPE_OBJECT ;
167- reg_value .u .v_object = reg_func_p ;
168-
169- bok = jerry_api_set_object_field_value (global_obj_p ,
170- (jerry_api_char_t * )name ,
171- & reg_value );
163+ prop_name_val = jerry_create_string ((const jerry_char_t * ) name );
164+ res = jerry_set_property (global_obj_val , prop_name_val , reg_func_val );
165+ if (jerry_value_has_error_flag (res )) {
166+ bok = false;
167+ }
172168
173- jerry_api_release_value (& reg_value );
174- jerry_api_release_object (reg_func_p );
175- jerry_api_release_object (global_obj_p );
169+ jerry_release_value (res );
170+ jerry_release_value (prop_name_val );
171+ jerry_release_value (reg_func_val );
172+ jerry_release_value (global_obj_val );
176173
177174 if (!bok )
178175 {
0 commit comments