MIRROR: javascript for ๐Ÿœ's, a tiny runtime with big ambitions
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

add support for special objects in various modules

+17 -18
+2 -2
src/modules/buffer.c
··· 1432 1432 1433 1433 jsval_t arg = args[0]; 1434 1434 1435 - if (vtype(arg) == T_OBJ) { 1435 + if (is_special_object(arg)) { 1436 1436 jsval_t bytelen = js_get(js, arg, "byteLength"); 1437 1437 if (vtype(bytelen) == T_NUM) return bytelen; 1438 1438 ··· 1451 1451 1452 1452 // Buffer.concat(list, totalLength) 1453 1453 static jsval_t js_buffer_concat(struct js *js, jsval_t *args, int nargs) { 1454 - if (nargs < 1 || vtype(args[0]) != T_OBJ) { 1454 + if (nargs < 1 || !is_special_object(args[0])) { 1455 1455 return js_mkerr(js, "First argument must be an array"); 1456 1456 } 1457 1457
+9 -9
src/modules/child_process.c
··· 519 519 bool use_shell = false; 520 520 bool detached = false; 521 521 522 - if (nargs >= 2 && vtype(args[1]) == T_OBJ) { 522 + if (nargs >= 2 && is_special_object(args[1])) { 523 523 jsval_t len_val = js_get(js, args[1], "length"); 524 524 if (vtype(len_val) == T_NUM) { 525 525 spawn_args = parse_args_array(js, args[1], &spawn_argc); 526 526 } 527 527 } 528 528 529 - if (nargs >= 3 && vtype(args[2]) == T_OBJ) { 529 + if (nargs >= 3 && is_special_object(args[2])) { 530 530 jsval_t cwd_val = js_get(js, args[2], "cwd"); 531 531 if (vtype(cwd_val) == T_STR) { 532 532 size_t cwd_len; ··· 659 659 char *cmd_str = strndup(cmd, cmd_len); 660 660 661 661 char *cwd = NULL; 662 - if (nargs >= 2 && vtype(args[1]) == T_OBJ) { 662 + if (nargs >= 2 && is_special_object(args[1])) { 663 663 jsval_t cwd_val = js_get(js, args[1], "cwd"); 664 664 if (vtype(cwd_val) == T_STR) { 665 665 size_t cwd_len; ··· 808 808 char *input = NULL; 809 809 size_t input_len = 0; 810 810 811 - if (nargs >= 2 && vtype(args[1]) == T_OBJ) { 811 + if (nargs >= 2 && is_special_object(args[1])) { 812 812 jsval_t len_val = js_get(js, args[1], "length"); 813 813 if (vtype(len_val) == T_NUM) { 814 814 spawn_args = parse_args_array(js, args[1], &spawn_argc); 815 815 } 816 816 } 817 817 818 - if (nargs >= 3 && vtype(args[2]) == T_OBJ) { 818 + if (nargs >= 3 && is_special_object(args[2])) { 819 819 jsval_t input_val = js_get(js, args[2], "input"); 820 820 if (vtype(input_val) == T_STR) { 821 821 input = js_getstr(js, input_val, &input_len); ··· 953 953 char *input = NULL; 954 954 size_t input_len = 0; 955 955 956 - if (nargs >= 2 && vtype(args[1]) == T_OBJ) { 956 + if (nargs >= 2 && is_special_object(args[1])) { 957 957 jsval_t len_val = js_get(js, args[1], "length"); 958 958 if (vtype(len_val) == T_NUM) { 959 959 spawn_args = parse_args_array(js, args[1], &spawn_argc); 960 960 } 961 961 } 962 962 963 - if (nargs >= 3 && vtype(args[2]) == T_OBJ) { 963 + if (nargs >= 3 && is_special_object(args[2])) { 964 964 jsval_t input_val = js_get(js, args[2], "input"); 965 965 if (vtype(input_val) == T_STR) { 966 966 input = js_getstr(js, input_val, &input_len); ··· 1112 1112 jsval_t args_arr = js_mkarr(js); 1113 1113 js_arr_push(js, args_arr, js_mkstr(js, path_str, path_len)); 1114 1114 1115 - if (nargs >= 2 && vtype(args[1]) == T_OBJ) { 1115 + if (nargs >= 2 && is_special_object(args[1])) { 1116 1116 jsval_t exec_args = js_get(js, args[1], "execArgv"); 1117 - if (vtype(exec_args) == T_OBJ) { 1117 + if (is_special_object(exec_args)) { 1118 1118 jsval_t len_val = js_get(js, exec_args, "length"); 1119 1119 int arr_len = (int)js_getnum(len_val); 1120 1120 for (int i = 0; i < arr_len; i++) {
+1 -2
src/modules/reflect.c
··· 240 240 } 241 241 242 242 jsval_t target = args[0]; 243 - int t = vtype(target); 244 243 245 - if (t != T_OBJ && t != T_FUNC) { 244 + if (!is_object_type(target)) { 246 245 return js_mkerr(js, "Reflect.getPrototypeOf: argument must be an object"); 247 246 } 248 247
+1 -1
src/modules/shell.c
··· 112 112 static jsval_t builtin_shell_dollar(struct js *js, jsval_t *args, int nargs) { 113 113 if (nargs < 1) return js_mkerr(js, "$() requires at least one argument"); 114 114 115 - if (vtype(args[0]) != T_OBJ) { 115 + if (!is_special_object(args[0])) { 116 116 if (vtype(args[0]) == T_STR) { 117 117 size_t cmd_len; 118 118 char *cmd = js_getstr(js, args[0], &cmd_len);
+4 -4
src/modules/url.c
··· 354 354 if (!key) return js_mknull(); 355 355 356 356 jsval_t entries = js_get(js, this_val, "_entries"); 357 - if (vtype(entries) != T_OBJ) return js_mknull(); 357 + if (!is_special_object(entries)) return js_mknull(); 358 358 359 359 jsval_t len_val = js_get(js, entries, "length"); 360 360 int len = (vtype(len_val) == T_NUM) ? (int)js_getnum(len_val) : 0; ··· 380 380 381 381 jsval_t result = js_mkarr(js); 382 382 jsval_t entries = js_get(js, this_val, "_entries"); 383 - if (vtype(entries) != T_OBJ) return result; 383 + if (!is_special_object(entries)) return result; 384 384 385 385 jsval_t len_val = js_get(js, entries, "length"); 386 386 int len = (vtype(len_val) == T_NUM) ? (int)js_getnum(len_val) : 0; ··· 405 405 if (!key) return js_mkfalse(); 406 406 407 407 jsval_t entries = js_get(js, this_val, "_entries"); 408 - if (vtype(entries) != T_OBJ) return js_mkfalse(); 408 + if (!is_special_object(entries)) return js_mkfalse(); 409 409 410 410 jsval_t len_val = js_get(js, entries, "length"); 411 411 int len = (vtype(len_val) == T_NUM) ? (int)js_getnum(len_val) : 0; ··· 423 423 424 424 static void usp_sync_url(struct js *js, jsval_t this_val) { 425 425 jsval_t url_obj = js_get(js, this_val, "_url"); 426 - if (vtype(url_obj) != T_OBJ) return; 426 + if (!is_special_object(url_obj)) return; 427 427 428 428 jsval_t entries = js_get(js, this_val, "_entries"); 429 429 jsval_t len_val = js_get(js, entries, "length");