Przeglądaj źródła

update jerry_util.c 增加 js_set_boolean_property 接口

Signed-off-by: yangfasheng <yangfasheng@rt-thread.com>
yangfasheng 6 lat temu
rodzic
commit
5365174694
2 zmienionych plików z 19 dodań i 7 usunięć
  1. 17 7
      rtthread-port/jerry_util.c
  2. 2 0
      rtthread-port/jerry_util.h

+ 17 - 7
rtthread-port/jerry_util.c

@@ -27,16 +27,16 @@ bool is_utf8_string(const void* str, int size)
 
 
     while (start < end)
     while (start < end)
     {
     {
-        if (*start < 0x80) 				// (10000000): 值小于0x80的为ASCII字符    
+        if (*start < 0x80) 				// (10000000): 值小于0x80的为ASCII字符
         {
         {
             start++;
             start++;
         }
         }
-        else if (*start < (0xC0)) 		// (11000000): 值介于0x80与0xC0之间的为无效UTF-8字符    
+        else if (*start < (0xC0)) 		// (11000000): 值介于0x80与0xC0之间的为无效UTF-8字符
         {
         {
             ret = false;
             ret = false;
             break;
             break;
         }
         }
-        else if (*start < (0xE0)) 		// (11100000): 此范围内为2字节UTF-8字符    
+        else if (*start < (0xE0)) 		// (11100000): 此范围内为2字节UTF-8字符
         {
         {
             if (start >= end - 1)
             if (start >= end - 1)
             {
             {
@@ -51,7 +51,7 @@ bool is_utf8_string(const void* str, int size)
 
 
             start += 2;
             start += 2;
         }
         }
-        else if (*start < (0xF0)) 		// (11110000): 此范围内为3字节UTF-8字符    
+        else if (*start < (0xF0)) 		// (11110000): 此范围内为3字节UTF-8字符
         {
         {
             if (start >= end - 2)
             if (start >= end - 2)
             {
             {
@@ -105,6 +105,16 @@ void js_set_string_property(const jerry_value_t obj, const char *name,
     jerry_release_value (value_str);
     jerry_release_value (value_str);
 }
 }
 
 
+void js_set_boolean_property(const jerry_value_t obj, const char *name,
+                             bool value)
+{
+    jerry_value_t str = jerry_create_string((const jerry_char_t *)name);
+    jerry_value_t value_bool = jerry_create_boolean(value);
+    jerry_set_property(obj, str, value_bool);
+    jerry_release_value(str);
+    jerry_release_value(value_bool);
+}
+
 void js_add_function(const jerry_value_t obj, const char *name,
 void js_add_function(const jerry_value_t obj, const char *name,
                      jerry_external_handler_t func)
                      jerry_external_handler_t func)
 {
 {
@@ -128,13 +138,13 @@ jerry_value_t js_string_to_value(const char *value)
     else
     else
     {
     {
         char *utf8 = NULL;
         char *utf8 = NULL;
-		
+
         Gb2312ToUtf8((char *)value, strlen(value), &utf8);
         Gb2312ToUtf8((char *)value, strlen(value), &utf8);
         str = jerry_create_string((const jerry_char_t *)utf8);
         str = jerry_create_string((const jerry_char_t *)utf8);
-		
+
         rt_free(utf8);
         rt_free(utf8);
     }
     }
-    
+
     return str;
     return str;
 }
 }
 
 

+ 2 - 0
rtthread-port/jerry_util.h

@@ -42,6 +42,8 @@ void js_set_property(const jerry_value_t obj, const char *name,
                      const jerry_value_t prop);
                      const jerry_value_t prop);
 void js_set_string_property(const jerry_value_t obj, const char *name,
 void js_set_string_property(const jerry_value_t obj, const char *name,
                             char* value);
                             char* value);
+void js_set_boolean_property(const jerry_value_t obj, const char *name,
+                             bool value);
 
 
 jerry_value_t js_get_property(const jerry_value_t obj, const char *name);
 jerry_value_t js_get_property(const jerry_value_t obj, const char *name);