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.

improve process.env

+599 -557
+5 -1
include/internal.h
··· 113 113 double tod(jsval_t v); 114 114 115 115 jsval_t resolveprop(struct js *js, jsval_t v); 116 - jsval_t setprop(struct js *js, jsval_t obj, jsval_t k, jsval_t v); 116 + jsval_t setprop_cstr(struct js *js, jsval_t obj, const char *key, size_t len, jsval_t v); 117 + jsval_t setprop_interned(struct js *js, jsval_t obj, const char *key, size_t len, jsval_t v); 118 + 119 + jsval_t coerce_to_str(struct js *js, jsval_t v); 120 + jsval_t coerce_to_str_concat(struct js *js, jsval_t v); 117 121 118 122 jsoff_t lkp(struct js *js, jsval_t obj, const char *buf, size_t len); 119 123 jsoff_t lkp_proto(struct js *js, jsval_t obj, const char *buf, size_t len);
+494 -500
src/ant.c
··· 2853 2853 jsval_t prototype_key = js_mkstr(js, "prototype", 9); 2854 2854 if (is_err(prototype_key)) return prototype_key; 2855 2855 2856 - res = setprop(js, func, prototype_key, proto_obj); 2856 + res = js_setprop(js, func, prototype_key, proto_obj); 2857 2857 if (is_err(res)) return res; 2858 2858 js_set_descriptor(js, func, "prototype", 9, JS_DESC_W); 2859 2859 ··· 2865 2865 if (vtype(get_slot(js, func_obj, SLOT_NAME)) != T_UNDEF) return; 2866 2866 jsval_t name_val = js_mkstr(js, name, len); 2867 2867 set_slot(js, func_obj, SLOT_NAME, name_val); 2868 - setprop(js, func_obj, js_mkstr(js, "name", 4), name_val); 2868 + js_setprop(js, func_obj, js_mkstr(js, "name", 4), name_val); 2869 2869 } 2870 2870 2871 2871 static jsval_t validate_array_length(struct js *js, jsval_t v) { ··· 3023 3023 return result; 3024 3024 } 3025 3025 3026 - jsval_t setprop(struct js *js, jsval_t obj, jsval_t k, jsval_t v) { 3027 - return js_setprop(js, obj, k, v); 3028 - } 3029 - 3030 3026 static inline void esm_export_binding(struct js *js, const char *exported, size_t exported_len, jsval_t value) { 3031 3027 jsval_t export_key = js_mkstr(js, exported, exported_len); 3032 - setprop(js, js->module_ns, export_key, value); 3028 + js_setprop(js, js->module_ns, export_key, value); 3033 3029 if (exported_len == 7 && strncmp(exported, "default", 7) == 0) js_set_slot(js, js->module_ns, SLOT_DEFAULT, value); 3034 3030 } 3035 3031 3036 - static inline jsval_t setprop_cstr(struct js *js, jsval_t obj, const char *key, size_t len, jsval_t v) { 3032 + jsval_t setprop_cstr(struct js *js, jsval_t obj, const char *key, size_t len, jsval_t v) { 3037 3033 jsval_t k = js_mkstr(js, key, len); 3038 3034 if (is_err(k)) return k; 3039 3035 return mkprop(js, obj, k, v, 0); 3040 3036 } 3041 3037 3042 - static jsval_t setprop_interned(struct js *js, jsval_t obj, const char *key, size_t len, jsval_t v) { 3038 + jsval_t setprop_interned(struct js *js, jsval_t obj, const char *key, size_t len, jsval_t v) { 3043 3039 jsval_t k = js_mkstr(js, key, len); 3044 3040 if (is_err(k)) return k; 3045 3041 return js_setprop(js, obj, k, v); ··· 3048 3044 jsval_t js_setprop_nonconfigurable(struct js *js, jsval_t obj, const char *key, size_t keylen, jsval_t v) { 3049 3045 jsval_t k = js_mkstr(js, key, keylen); 3050 3046 if (is_err(k)) return k; 3051 - jsval_t result = setprop(js, obj, k, v); 3047 + jsval_t result = js_setprop(js, obj, k, v); 3052 3048 if (is_err(result)) return result; 3053 3049 3054 3050 js_set_descriptor(js, obj, key, keylen, JS_DESC_W); ··· 5018 5014 return setter_result; 5019 5015 } 5020 5016 5021 - return setprop(js, obj, key, val); 5017 + return js_setprop(js, obj, key, val); 5022 5018 } 5023 5019 5024 5020 if (vtype(lhs) != T_PROP) { ··· 5189 5185 } 5190 5186 jsval_t key = js_mkstr(js, "length", 6); 5191 5187 jsval_t len_val = tov(D(js_arr_len(js, obj))); 5192 - jsval_t prop = setprop(js, obj, key, len_val); 5188 + jsval_t prop = js_setprop(js, obj, key, len_val); 5193 5189 return prop; 5194 5190 } 5195 5191 } ··· 5238 5234 } 5239 5235 if (streq(keystr, keylen, "name", 4)) return js_mkstr(js, "", 0); 5240 5236 jsval_t key = js_mkstr(js, keystr, keylen); 5241 - jsval_t prop = setprop(js, func_obj, key, js_mkundef()); 5237 + jsval_t prop = js_setprop(js, func_obj, key, js_mkundef()); 5242 5238 return prop; 5243 5239 } 5244 5240 if (vtype(obj) == T_CFUNC) { ··· 5360 5356 } 5361 5357 if (streq(ptr, plen, "name", 4)) return js_mkstr(js, "", 0); 5362 5358 jsval_t key = js_mkstr(js, ptr, plen); 5363 - jsval_t prop = setprop(js, func_obj, key, js_mkundef()); 5359 + jsval_t prop = js_setprop(js, func_obj, key, js_mkundef()); 5364 5360 return prop; 5365 5361 } 5366 5362 ··· 5662 5658 bind:; 5663 5659 jsval_t vname = js_mkstr(js, &p[var_pos], var_len); 5664 5660 if (is_err(vname)) return vname; 5665 - jsval_t r = setprop(js, scope, vname, prop_val); 5661 + jsval_t r = js_setprop(js, scope, vname, prop_val); 5666 5662 if (is_err(r)) return r; 5667 5663 5668 5664 idx++; ··· 5808 5804 5809 5805 jsval_t arguments_obj = mkobj(js, 0); 5810 5806 for (int i = 0; i < nargs; i++) { 5811 - if (i < 10) { 5812 - setprop(js, arguments_obj, js_mkstr(js, INTERN_IDX[i], 1), args[i]); 5813 - } else { 5807 + if (i < 10) js_setprop(js, arguments_obj, js_mkstr(js, INTERN_IDX[i], 1), args[i]); else { 5814 5808 char idxstr[16]; 5815 5809 size_t idxlen = uint_to_str(idxstr, sizeof(idxstr), (unsigned)i); 5816 - setprop(js, arguments_obj, js_mkstr(js, idxstr, idxlen), args[i]); 5810 + js_setprop(js, arguments_obj, js_mkstr(js, idxstr, idxlen), args[i]); 5817 5811 } 5818 5812 } 5819 5813 setprop_interned(js, arguments_obj, INTERN_LENGTH, 6, tov((double) nargs)); ··· 5825 5819 5826 5820 const char *toStringTag_key = get_toStringTag_sym_key(); 5827 5821 if (toStringTag_key && toStringTag_key[0] != '\0') { 5828 - setprop(js, arguments_obj, js_mkstr(js, toStringTag_key, strlen(toStringTag_key)), js_mkstr(js, "Arguments", 9)); 5822 + js_setprop(js, arguments_obj, js_mkstr(js, toStringTag_key, strlen(toStringTag_key)), js_mkstr(js, "Arguments", 9)); 5829 5823 } 5830 5824 5831 5825 arguments_obj = mkval(T_ARR, vdata(arguments_obj)); ··· 5961 5955 size_t idxlen = uint_to_str(idxstr, sizeof(idxstr), (unsigned)idx); 5962 5956 key = js_mkstr(js, idxstr, idxlen); 5963 5957 } 5964 - setprop(js, rest_array, key, args[argi++]); 5958 + js_setprop(js, rest_array, key, args[argi++]); 5965 5959 idx++; 5966 5960 } 5967 5961 jsval_t len_key = js_mkstr(js, "length", 6); 5968 - setprop(js, rest_array, len_key, tov((double) idx)); 5962 + js_setprop(js, rest_array, len_key, tov((double) idx)); 5969 5963 rest_array = mkval(T_ARR, vdata(rest_array)); 5970 - setprop(js, function_scope, js_mkstr(js, &fn[pf->rest_param_start], pf->rest_param_len), rest_array); 5964 + js_setprop(js, function_scope, js_mkstr(js, &fn[pf->rest_param_start], pf->rest_param_len), rest_array); 5971 5965 } 5972 5966 } 5973 5967 ··· 6212 6206 } else { 6213 6207 v = js_mkundef(); 6214 6208 } 6215 - setprop(js, function_scope, js_mkstr(js, &fn[param_name_pos], identlen), v); 6209 + js_setprop(js, function_scope, js_mkstr(js, &fn[param_name_pos], identlen), v); 6216 6210 arg_idx++; 6217 6211 if (fnpos < fnlen && fn[fnpos] == ',') fnpos++; 6218 6212 } ··· 6225 6219 char idxstr[16]; 6226 6220 size_t idxlen = uint_to_str(idxstr, sizeof(idxstr), (unsigned)idx); 6227 6221 jsval_t key = js_mkstr(js, idxstr, idxlen); 6228 - setprop(js, rest_array, key, args[arg_idx]); 6222 + js_setprop(js, rest_array, key, args[arg_idx]); 6229 6223 idx++; 6230 6224 arg_idx++; 6231 6225 } 6232 6226 jsval_t len_key = js_mkstr(js, "length", 6); 6233 - setprop(js, rest_array, len_key, tov((double) idx)); 6227 + js_setprop(js, rest_array, len_key, tov((double) idx)); 6234 6228 rest_array = mkval(T_ARR, vdata(rest_array)); 6235 - setprop(js, function_scope, js_mkstr(js, &fn[rest_param_start], rest_param_len), rest_array); 6229 + js_setprop(js, function_scope, js_mkstr(js, &fn[rest_param_start], rest_param_len), rest_array); 6236 6230 } 6237 6231 } 6238 6232 ··· 6503 6497 field_val = resolveprop(js, field_val); 6504 6498 } 6505 6499 6506 - jsval_t set_res = setprop(js, target_this, fname, field_val); 6500 + jsval_t set_res = js_setprop(js, target_this, fname, field_val); 6507 6501 if (is_err(set_res)) { 6508 6502 js->current_func = saved_func; 6509 6503 pop_call_frame(); ··· 6697 6691 return vdata(l) == vdata(r); 6698 6692 } 6699 6693 6700 - static inline jsval_t coerce_to_str(struct js *js, jsval_t v) { 6694 + jsval_t coerce_to_str(struct js *js, jsval_t v) { 6701 6695 if (vtype(v) == T_STR) return v; 6702 6696 6703 6697 if (is_object_type(v)) { ··· 6710 6704 return js_tostring_val(js, v); 6711 6705 } 6712 6706 6713 - static inline jsval_t coerce_to_str_concat(struct js *js, jsval_t v) { 6707 + jsval_t coerce_to_str_concat(struct js *js, jsval_t v) { 6714 6708 if (vtype(v) == T_STR) return v; 6715 6709 6716 6710 if (is_object_type(v)) { ··· 6740 6734 while (vdata(upper(js, global_scope)) != 0) global_scope = upper(js, global_scope); 6741 6735 jsval_t key = js_mkstr(js, &js->code[id_off], id_len); 6742 6736 if (is_err(key)) return key; 6743 - jsval_t prop = setprop(js, global_scope, key, r); 6737 + jsval_t prop = js_setprop(js, global_scope, key, r); 6744 6738 return is_err(prop) ? prop : r; 6745 6739 } 6746 6740 return js_mkerr_typed(js, (js->flags & F_STRICT) && vtype(lhs) == T_UNDEF ? JS_ERR_TYPE : JS_ERR_SYNTAX, ··· 7139 7133 for (int i = 0; i < string_count; i++) { 7140 7134 char idx[16]; 7141 7135 snprintf(idx, sizeof(idx), "%d", i); 7142 - setprop(js, strings_arr, js_mkstr(js, idx, strlen(idx)), strings[i]); 7136 + js_setprop(js, strings_arr, js_mkstr(js, idx, strlen(idx)), strings[i]); 7143 7137 } 7144 - setprop(js, strings_arr, js_mkstr(js, "length", 6), tov((double)string_count)); 7138 + js_setprop(js, strings_arr, js_mkstr(js, "length", 6), tov((double)string_count)); 7145 7139 strings_arr = mkval(T_ARR, vdata(strings_arr)); 7146 7140 7147 7141 jsval_t args[65]; ··· 7383 7377 7384 7378 jsoff_t existing = lkp_scope(js, js->scope, var_name, var_len); 7385 7379 if (existing != 0) { 7386 - jsval_t res = setprop(js, js->scope, js_mkstr(js, var_name, var_len), prop_val); 7380 + jsval_t res = js_setprop(js, js->scope, js_mkstr(js, var_name, var_len), prop_val); 7387 7381 if (is_err(res)) return res; 7388 7382 } else { 7389 7383 jsval_t global_scope = js->scope; 7390 7384 while (vdata(upper(js, global_scope)) != 0) { 7391 7385 global_scope = upper(js, global_scope); 7392 7386 } 7393 - jsval_t res = setprop(js, global_scope, js_mkstr(js, var_name, var_len), prop_val); 7387 + jsval_t res = js_setprop(js, global_scope, js_mkstr(js, var_name, var_len), prop_val); 7394 7388 if (is_err(res)) return res; 7395 7389 } 7396 7390 } ··· 7548 7542 jsval_t regexp_proto = get_ctor_proto(js, "RegExp", 6); 7549 7543 if (vtype(regexp_proto) == T_OBJ) set_proto(js, regexp_obj, regexp_proto); 7550 7544 7551 - setprop(js, regexp_obj, js_mkstr(js, "source", 6), pattern); 7552 - setprop(js, regexp_obj, js_mkstr(js, "flags", 5), flags); 7545 + js_setprop(js, regexp_obj, js_mkstr(js, "source", 6), pattern); 7546 + js_setprop(js, regexp_obj, js_mkstr(js, "flags", 5), flags); 7553 7547 7554 7548 jsoff_t flen = flags_end - flags_start; 7555 7549 const char *fstr = &js->code[flags_start]; ··· 7562 7556 if (fstr[i] == 'y') sticky = true; 7563 7557 } 7564 7558 7565 - setprop(js, regexp_obj, js_mkstr(js, "global", 6), mkval(T_BOOL, global ? 1 : 0)); 7566 - setprop(js, regexp_obj, js_mkstr(js, "ignoreCase", 10), mkval(T_BOOL, ignoreCase ? 1 : 0)); 7567 - setprop(js, regexp_obj, js_mkstr(js, "multiline", 9), mkval(T_BOOL, multiline ? 1 : 0)); 7568 - setprop(js, regexp_obj, js_mkstr(js, "dotAll", 6), mkval(T_BOOL, dotAll ? 1 : 0)); 7569 - setprop(js, regexp_obj, js_mkstr(js, "sticky", 6), mkval(T_BOOL, sticky ? 1 : 0)); 7570 - setprop(js, regexp_obj, js_mkstr(js, "lastIndex", 9), tov(0)); 7559 + js_setprop(js, regexp_obj, js_mkstr(js, "global", 6), mkval(T_BOOL, global ? 1 : 0)); 7560 + js_setprop(js, regexp_obj, js_mkstr(js, "ignoreCase", 10), mkval(T_BOOL, ignoreCase ? 1 : 0)); 7561 + js_setprop(js, regexp_obj, js_mkstr(js, "multiline", 9), mkval(T_BOOL, multiline ? 1 : 0)); 7562 + js_setprop(js, regexp_obj, js_mkstr(js, "dotAll", 6), mkval(T_BOOL, dotAll ? 1 : 0)); 7563 + js_setprop(js, regexp_obj, js_mkstr(js, "sticky", 6), mkval(T_BOOL, sticky ? 1 : 0)); 7564 + js_setprop(js, regexp_obj, js_mkstr(js, "lastIndex", 9), tov(0)); 7571 7565 7572 7566 return regexp_obj; 7573 7567 } ··· 7594 7588 jsval_t func_obj = mkval(T_OBJ, vdata(val)); 7595 7589 if (lkp(js, func_obj, "name", 4) == 0) { 7596 7590 jsval_t name_key = js_mkstr(js, "name", 4); 7597 - if (!is_err(name_key)) setprop(js, func_obj, name_key, key); 7591 + if (!is_err(name_key)) js_setprop(js, func_obj, name_key, key); 7598 7592 } 7599 7593 } 7600 7594 7601 - return setprop(js, obj, key, val); 7595 + return js_setprop(js, obj, key, val); 7602 7596 } 7603 7597 7604 7598 static jsval_t js_obj_literal(struct js *js) { ··· 7643 7637 if (is_internal_prop(prop_key, klen)) continue; 7644 7638 7645 7639 jsval_t key_str = js_mkstr(js, prop_key, klen); 7646 - setprop(js, obj, key_str, prop_val); 7640 + js_setprop(js, obj, key_str, prop_val); 7647 7641 } 7648 7642 7649 7643 spread_next: ··· 7774 7768 if (exe) { 7775 7769 if (is_err(val)) return val; 7776 7770 if (is_err(key)) return key; 7777 - jsval_t res = setprop(js, obj, key, resolveprop(js, val)); 7771 + jsval_t res = js_setprop(js, obj, key, resolveprop(js, val)); 7778 7772 if (is_err(res)) return res; 7779 7773 } 7780 7774 } else if ( ··· 7806 7800 if (is_err(func_obj)) return func_obj; 7807 7801 set_func_code(js, func_obj, &js->code[pos], js->pos - pos); 7808 7802 jsval_t name_key = js_mkstr(js, "name", 4); 7809 - setprop(js, func_obj, name_key, key); 7803 + js_setprop(js, func_obj, name_key, key); 7810 7804 7811 7805 jsval_t closure_scope = for_let_capture_scope(js); 7812 7806 if (is_err(closure_scope)) return closure_scope; ··· 7830 7824 } else js_set_setter_desc(js, obj, key_str, key_len, val, JS_DESC_E | JS_DESC_C); 7831 7825 } 7832 7826 } else { 7833 - jsval_t res = setprop(js, obj, key, val); 7827 + jsval_t res = js_setprop(js, obj, key, val); 7834 7828 if (is_err(res)) return res; 7835 7829 } 7836 7830 } ··· 7975 7969 7976 7970 jsval_t len_key = js_mkstr(js, "length", 6); 7977 7971 if (is_err(len_key)) return len_key; 7978 - jsval_t res_len = setprop(js, func_obj, len_key, tov(param_count)); 7972 + jsval_t res_len = js_setprop(js, func_obj, len_key, tov(param_count)); 7979 7973 if (is_err(res_len)) return res_len; 7980 7974 js_set_descriptor(js, func_obj, "length", 6, JS_DESC_C); 7981 7975 ··· 7994 7988 set_slot(js, func_obj, SLOT_NAME, name_val); 7995 7989 jsval_t name_key = js_mkstr(js, "name", 4); 7996 7990 if (is_err(name_key)) return name_key; 7997 - jsval_t res3 = setprop(js, func_obj, name_key, name_val); 7991 + jsval_t res3 = js_setprop(js, func_obj, name_key, name_val); 7998 7992 if (is_err(res3)) return res3; 7999 7993 } 8000 7994 ··· 9341 9335 jsval_t val = get_prop_val(js, scan); 9342 9336 jsval_t key_str = js_mkstr(js, key, klen); 9343 9337 if (is_err(key_str)) return key_str; 9344 - jsval_t res = setprop(js, rest_obj, key_str, val); 9338 + jsval_t res = js_setprop(js, rest_obj, key_str, val); 9345 9339 if (is_err(res)) return res; 9346 9340 } 9347 9341 scan = next_prop(header); ··· 9687 9681 9688 9682 jsval_t len_key = js_mkstr(js, "length", 6); 9689 9683 if (is_err(len_key)) return len_key; 9690 - jsval_t res_len = setprop(js, func_obj, len_key, tov(param_count)); 9684 + jsval_t res_len = js_setprop(js, func_obj, len_key, tov(param_count)); 9691 9685 if (is_err(res_len)) return res_len; 9692 9686 js_set_descriptor(js, func_obj, "length", 6, JS_DESC_C); 9693 9687 jsval_t name_key = js_mkstr(js, "name", 4); ··· 9695 9689 jsval_t name_val = js_mkstr(js, name, nlen); 9696 9690 if (is_err(name_val)) return name_val; 9697 9691 set_slot(js, func_obj, SLOT_NAME, name_val); 9698 - jsval_t res3 = setprop(js, func_obj, name_key, name_val); 9692 + jsval_t res3 = js_setprop(js, func_obj, name_key, name_val); 9699 9693 if (is_err(res3)) return res3; 9700 9694 if (exe) { 9701 9695 jsval_t closure_scope = for_let_capture_scope(js); ··· 9755 9749 if (vtype(async_proto) == T_FUNC) set_proto(js, func_obj, async_proto); 9756 9750 jsval_t len_key = js_mkstr(js, "length", 6); 9757 9751 if (is_err(len_key)) return len_key; 9758 - jsval_t res_len = setprop(js, func_obj, len_key, tov(0)); 9752 + jsval_t res_len = js_setprop(js, func_obj, len_key, tov(0)); 9759 9753 if (is_err(res_len)) return res_len; 9760 9754 js_set_descriptor(js, func_obj, "length", 6, JS_DESC_C); 9761 9755 jsval_t name_key = js_mkstr(js, "name", 4); ··· 9763 9757 jsval_t name_val = js_mkstr(js, name, nlen); 9764 9758 if (is_err(name_val)) return name_val; 9765 9759 set_slot(js, func_obj, SLOT_NAME, name_val); 9766 - jsval_t res3 = setprop(js, func_obj, name_key, name_val); 9760 + jsval_t res3 = js_setprop(js, func_obj, name_key, name_val); 9767 9761 if (is_err(res3)) return res3; 9768 9762 if (exe) { 9769 9763 jsval_t closure_scope = for_let_capture_scope(js); ··· 11614 11608 js_set_setter_desc(js, proto, name_str, name_len, method_func, JS_DESC_C); 11615 11609 } 11616 11610 } else { 11617 - jsval_t set_res = setprop(js, proto, method_name, method_func); 11611 + jsval_t set_res = js_setprop(js, proto, method_name, method_func); 11618 11612 if (is_err(set_res)) return set_res; 11619 11613 } 11620 11614 } ··· 11681 11675 if (is_err(name_key)) return name_key; 11682 11676 jsval_t name_val = class_name_len > 0 ? js_mkstr(js, class_name, class_name_len) : js_mkstr(js, "", 0); 11683 11677 if (is_err(name_val)) return name_val; 11684 - jsval_t res_name = setprop(js, func_obj, name_key, name_val); 11678 + jsval_t res_name = js_setprop(js, func_obj, name_key, name_val); 11685 11679 if (is_err(res_name)) return res_name; 11686 11680 11687 11681 jsval_t proto_key = js_mkstr(js, "prototype", 9); 11688 11682 if (is_err(proto_key)) return proto_key; 11689 - jsval_t proto_res = setprop(js, func_obj, proto_key, proto); 11683 + jsval_t proto_res = js_setprop(js, func_obj, proto_key, proto); 11690 11684 if (is_err(proto_res)) return proto_res; 11691 11685 11692 11686 jsval_t constructor = mkval(T_FUNC, (unsigned long) vdata(func_obj)); 11693 11687 11694 11688 jsval_t ctor_key = js_mkstr(js, "constructor", 11); 11695 11689 if (is_err(ctor_key)) return ctor_key; 11696 - jsval_t ctor_res = setprop(js, proto, ctor_key, constructor); 11690 + jsval_t ctor_res = js_setprop(js, proto, ctor_key, constructor); 11697 11691 if (is_err(ctor_res)) return ctor_res; 11698 11692 js_set_descriptor(js, proto, "constructor", 11, JS_DESC_W | JS_DESC_C); 11699 11693 ··· 11718 11712 field_val = js_eval_slice(js, m->field_start, m->field_end - m->field_start); 11719 11713 field_val = resolveprop(js, field_val); 11720 11714 } 11721 - jsval_t set_res = setprop(js, func_obj, member_name, field_val); 11715 + jsval_t set_res = js_setprop(js, func_obj, member_name, field_val); 11722 11716 if (is_err(set_res)) return set_res; 11723 11717 } else { 11724 11718 jsoff_t mlen = m->fn_end - m->fn_start; ··· 11734 11728 if (vtype(method_func_proto) == T_FUNC) set_proto(js, method_obj, method_func_proto); 11735 11729 11736 11730 jsval_t method_func = mkval(T_FUNC, (unsigned long) vdata(method_obj)); 11737 - jsval_t set_res = setprop(js, func_obj, member_name, method_func); 11731 + jsval_t set_res = js_setprop(js, func_obj, member_name, method_func); 11738 11732 if (is_err(set_res)) return set_res; 11739 11733 } 11740 11734 } ··· 11853 11847 if (existing_off > 0) { 11854 11848 if (has_initializer && !is_err(v)) { 11855 11849 jsval_t key_val = js_mkstr(js, decoded_name, decoded_len); 11856 - setprop(js, var_scope, key_val, resolveprop(js, v)); 11850 + js_setprop(js, var_scope, key_val, resolveprop(js, v)); 11857 11851 } 11858 11852 } else { 11859 11853 jsval_t x = mkprop(js, var_scope, js_mkstr(js, decoded_name, decoded_len), resolveprop(js, v), 0); ··· 12093 12087 set_slot(js, js->this_val, SLOT_PRIMITIVE, sval); 12094 12088 jsoff_t slen; 12095 12089 vstr(js, sval, &slen); 12096 - setprop(js, js->this_val, js_mkstr(js, "length", 6), tov((double)slen)); 12090 + js_setprop(js, js->this_val, js_mkstr(js, "length", 6), tov((double)slen)); 12097 12091 js_set_descriptor(js, js->this_val, "length", 6, 0); 12098 12092 } 12099 12093 return sval; ··· 12622 12616 for (int i = 0; i < bound_argc; i++) { 12623 12617 char idx[16]; 12624 12618 snprintf(idx, sizeof(idx), "%d", i); 12625 - setprop(js, bound_arr, js_mkstr(js, idx, strlen(idx)), bound_args[i]); 12619 + js_setprop(js, bound_arr, js_mkstr(js, idx, strlen(idx)), bound_args[i]); 12626 12620 } 12627 - setprop(js, bound_arr, js_mkstr(js, "length", 6), tov((double) bound_argc)); 12621 + js_setprop(js, bound_arr, js_mkstr(js, "length", 6), tov((double) bound_argc)); 12628 12622 set_slot(js, bound_func, SLOT_BOUND_ARGS, bound_arr); 12629 12623 } 12630 12624 ··· 12632 12626 if (vtype(func_proto) == T_FUNC) set_proto(js, bound_func, func_proto); 12633 12627 12634 12628 jsval_t bound = mkval(T_FUNC, (unsigned long) vdata(bound_func)); 12635 - setprop(js, bound_func, js_mkstr(js, "length", 6), tov((double) bound_length)); 12629 + js_setprop(js, bound_func, js_mkstr(js, "length", 6), tov((double) bound_length)); 12636 12630 12637 12631 jsval_t proto_setup = setup_func_prototype(js, bound); 12638 12632 if (is_err(proto_setup)) return proto_setup; ··· 12683 12677 for (int i = 0; i < bound_argc; i++) { 12684 12678 char idx[16]; 12685 12679 snprintf(idx, sizeof(idx), "%d", i); 12686 - setprop(js, bound_arr, js_mkstr(js, idx, strlen(idx)), bound_args[i]); 12680 + js_setprop(js, bound_arr, js_mkstr(js, idx, strlen(idx)), bound_args[i]); 12687 12681 } 12688 - setprop(js, bound_arr, js_mkstr(js, "length", 6), tov((double) bound_argc)); 12682 + js_setprop(js, bound_arr, js_mkstr(js, "length", 6), tov((double) bound_argc)); 12689 12683 set_slot(js, bound_func, SLOT_BOUND_ARGS, bound_arr); 12690 12684 } 12691 12685 12692 - setprop(js, bound_func, js_mkstr(js, "length", 6), tov((double) bound_length)); 12686 + js_setprop(js, bound_func, js_mkstr(js, "length", 6), tov((double) bound_length)); 12693 12687 12694 12688 jsval_t bound = mkval(T_FUNC, (unsigned long) vdata(bound_func)); 12695 12689 jsval_t proto_setup = setup_func_prototype(js, bound); ··· 12704 12698 if (nargs == 1 && vtype(args[0]) == T_NUM) { 12705 12699 jsval_t err = validate_array_length(js, args[0]); 12706 12700 if (is_err(err)) return err; 12707 - setprop(js, arr, ANT_STRING("length"), tov(tod(args[0]))); 12701 + js_setprop(js, arr, ANT_STRING("length"), tov(tod(args[0]))); 12708 12702 } else if (nargs > 0) { 12709 12703 for (int i = 0; i < nargs; i++) { 12710 12704 char idxstr[16]; 12711 12705 size_t idxlen = uint_to_str(idxstr, sizeof(idxstr), (unsigned)i); 12712 - setprop(js, arr, js_mkstr(js, idxstr, idxlen), args[i]); 12706 + js_setprop(js, arr, js_mkstr(js, idxstr, idxlen), args[i]); 12713 12707 } 12714 - setprop(js, arr, ANT_STRING("length"), tov((double)nargs)); 12708 + js_setprop(js, arr, ANT_STRING("length"), tov((double)nargs)); 12715 12709 } 12716 12710 12717 12711 return arr; ··· 12843 12837 } 12844 12838 12845 12839 jsval_t source_key = js_mkstr(js, "source", 6); 12846 - setprop(js, regexp_obj, source_key, pattern); 12840 + js_setprop(js, regexp_obj, source_key, pattern); 12847 12841 12848 12842 jsval_t flags_key = js_mkstr(js, "flags", 5); 12849 - setprop(js, regexp_obj, flags_key, flags); 12843 + js_setprop(js, regexp_obj, flags_key, flags); 12850 12844 12851 12845 jsoff_t flags_len, flags_off = vstr(js, flags, &flags_len); 12852 12846 const char *flags_str = (char *) &js->mem[flags_off]; ··· 12860 12854 if (flags_str[i] == 'y') sticky = true; 12861 12855 } 12862 12856 12863 - setprop(js, regexp_obj, js_mkstr(js, "global", 6), mkval(T_BOOL, global ? 1 : 0)); 12864 - setprop(js, regexp_obj, js_mkstr(js, "ignoreCase", 10), mkval(T_BOOL, ignoreCase ? 1 : 0)); 12865 - setprop(js, regexp_obj, js_mkstr(js, "multiline", 9), mkval(T_BOOL, multiline ? 1 : 0)); 12866 - setprop(js, regexp_obj, js_mkstr(js, "dotAll", 6), mkval(T_BOOL, dotAll ? 1 : 0)); 12867 - setprop(js, regexp_obj, js_mkstr(js, "sticky", 6), mkval(T_BOOL, sticky ? 1 : 0)); 12868 - setprop(js, regexp_obj, js_mkstr(js, "lastIndex", 9), tov(0)); 12857 + js_setprop(js, regexp_obj, js_mkstr(js, "global", 6), mkval(T_BOOL, global ? 1 : 0)); 12858 + js_setprop(js, regexp_obj, js_mkstr(js, "ignoreCase", 10), mkval(T_BOOL, ignoreCase ? 1 : 0)); 12859 + js_setprop(js, regexp_obj, js_mkstr(js, "multiline", 9), mkval(T_BOOL, multiline ? 1 : 0)); 12860 + js_setprop(js, regexp_obj, js_mkstr(js, "dotAll", 6), mkval(T_BOOL, dotAll ? 1 : 0)); 12861 + js_setprop(js, regexp_obj, js_mkstr(js, "sticky", 6), mkval(T_BOOL, sticky ? 1 : 0)); 12862 + js_setprop(js, regexp_obj, js_mkstr(js, "lastIndex", 9), tov(0)); 12869 12863 12870 12864 return regexp_obj; 12871 12865 } ··· 12989 12983 pcre2_match_data_free(match_data); 12990 12984 pcre2_code_free(re); 12991 12985 if (global_flag) { 12992 - setprop(js, regexp, js_mkstr(js, "lastIndex", 9), tov(0)); 12986 + js_setprop(js, regexp, js_mkstr(js, "lastIndex", 9), tov(0)); 12993 12987 } 12994 12988 return js_mknull(); 12995 12989 } ··· 13009 13003 } 13010 13004 } 13011 13005 13012 - setprop(js, result_arr, js_mkstr(js, "index", 5), tov((double)ovector[0])); 13013 - setprop(js, result_arr, js_mkstr(js, "input", 5), str_arg); 13006 + js_setprop(js, result_arr, js_mkstr(js, "index", 5), tov((double)ovector[0])); 13007 + js_setprop(js, result_arr, js_mkstr(js, "input", 5), str_arg); 13014 13008 13015 13009 if (global_flag) { 13016 13010 PCRE2_SIZE new_lastindex = ovector[1]; 13017 13011 if (ovector[0] == ovector[1]) new_lastindex++; 13018 - setprop(js, regexp, js_mkstr(js, "lastIndex", 9), tov((double)new_lastindex)); 13012 + js_setprop(js, regexp, js_mkstr(js, "lastIndex", 9), tov((double)new_lastindex)); 13019 13013 } 13020 13014 13021 13015 pcre2_match_data_free(match_data); ··· 14351 14345 if (val_off != 0) { 14352 14346 jsval_t val = resolveprop(js, mkval(T_PROP, val_off)); 14353 14347 jsval_t key_str = js_mkstr(js, key, klen); 14354 - setprop(js, obj, key_str, val); 14348 + js_setprop(js, obj, key_str, val); 14355 14349 } 14356 14350 } 14357 14351 ··· 14635 14629 14636 14630 if (should_copy) { 14637 14631 jsval_t key_str = js_mkstr(js, key, klen); 14638 - setprop(js, as_obj, key_str, val); 14632 + js_setprop(js, as_obj, key_str, val); 14639 14633 } 14640 14634 } 14641 14635 } ··· 14792 14786 key = js_mkstr(js, buf, n); 14793 14787 } 14794 14788 14795 - setprop(js, result, key, val); 14789 + js_setprop(js, result, key, val); 14796 14790 } 14797 14791 14798 14792 return result; ··· 14828 14822 14829 14823 if (desc && (desc->has_getter || desc->has_setter)) { 14830 14824 if (desc->has_getter) { 14831 - setprop(js, result, js_mkstr(js, "get", 3), desc->getter); 14825 + js_setprop(js, result, js_mkstr(js, "get", 3), desc->getter); 14832 14826 } 14833 14827 if (desc->has_setter) { 14834 - setprop(js, result, js_mkstr(js, "set", 3), desc->setter); 14828 + js_setprop(js, result, js_mkstr(js, "set", 3), desc->setter); 14835 14829 } 14836 - setprop(js, result, js_mkstr(js, "enumerable", 10), js_bool(desc->enumerable)); 14837 - setprop(js, result, js_mkstr(js, "configurable", 12), js_bool(desc->configurable)); 14830 + js_setprop(js, result, js_mkstr(js, "enumerable", 10), js_bool(desc->enumerable)); 14831 + js_setprop(js, result, js_mkstr(js, "configurable", 12), js_bool(desc->configurable)); 14838 14832 } else { 14839 14833 if (prop_off != 0) { 14840 14834 jsval_t prop_val = resolveprop(js, mkval(T_PROP, prop_off)); 14841 - setprop(js, result, js_mkstr(js, "value", 5), prop_val); 14835 + js_setprop(js, result, js_mkstr(js, "value", 5), prop_val); 14842 14836 } 14843 - setprop(js, result, js_mkstr(js, "writable", 8), desc ? (js_bool(desc->writable)) : js_true); 14844 - setprop(js, result, js_mkstr(js, "enumerable", 10), desc ? (js_bool(desc->enumerable)) : js_true); 14845 - setprop(js, result, js_mkstr(js, "configurable", 12), desc ? (js_bool(desc->configurable)) : js_true); 14837 + js_setprop(js, result, js_mkstr(js, "writable", 8), desc ? (js_bool(desc->writable)) : js_true); 14838 + js_setprop(js, result, js_mkstr(js, "enumerable", 10), desc ? (js_bool(desc->enumerable)) : js_true); 14839 + js_setprop(js, result, js_mkstr(js, "configurable", 12), desc ? (js_bool(desc->configurable)) : js_true); 14846 14840 } 14847 14841 14848 14842 return result; ··· 15174 15168 char idxstr[16]; 15175 15169 size_t idxlen = uint_to_str(idxstr, sizeof(idxstr), (unsigned)len); 15176 15170 jsval_t key = js_mkstr(js, idxstr, idxlen); 15177 - setprop(js, arr, key, args[i]); 15171 + js_setprop(js, arr, key, args[i]); 15178 15172 len++; 15179 15173 } 15180 15174 15181 15175 jsval_t len_key = js_mkstr(js, "length", 6); 15182 15176 jsval_t len_val = tov((double) len); 15183 15177 15184 - setprop(js, arr, len_key, len_val); 15178 + js_setprop(js, arr, len_key, len_val); 15185 15179 return len_val; 15186 15180 } 15187 15181 ··· 15234 15228 15235 15229 jsval_t len_key = js_mkstr(js, "length", 6); 15236 15230 jsval_t len_val = tov((double) len); 15237 - setprop(js, arr, len_key, len_val); 15231 + js_setprop(js, arr, len_key, len_val); 15238 15232 js->needs_gc = true; 15239 15233 15240 15234 return result; ··· 15287 15281 jsval_t elem = resolveprop(js, mkval(T_PROP, elem_off)); 15288 15282 size_t result_idxlen = uint_to_str(idxstr, sizeof(idxstr), (unsigned)result_idx); 15289 15283 jsval_t key = js_mkstr(js, idxstr, result_idxlen); 15290 - setprop(js, result, key, elem); 15284 + js_setprop(js, result, key, elem); 15291 15285 } 15292 15286 result_idx++; 15293 15287 } 15294 15288 15295 15289 jsval_t len_key = js_mkstr(js, "length", 6); 15296 - setprop(js, result, len_key, tov((double) result_idx)); 15290 + js_setprop(js, result, len_key, tov((double) result_idx)); 15297 15291 return mkval(T_ARR, vdata(result)); 15298 15292 } 15299 15293 ··· 15794 15788 flat_helper(js, arr, result, &result_idx, depth); 15795 15789 15796 15790 jsval_t len_key = js_mkstr(js, "length", 6); 15797 - setprop(js, result, len_key, tov((double) result_idx)); 15791 + js_setprop(js, result, len_key, tov((double) result_idx)); 15798 15792 return mkval(T_ARR, vdata(result)); 15799 15793 } 15800 15794 ··· 15922 15916 char idxstr[16]; 15923 15917 size_t idxlen = uint_to_str(idxstr, sizeof(idxstr), (unsigned)i); 15924 15918 jsval_t key = js_mkstr(js, idxstr, idxlen); 15925 - setprop(js, arr, key, value); 15919 + js_setprop(js, arr, key, value); 15926 15920 } 15927 15921 15928 15922 return arr; ··· 16088 16082 char res_idx[16]; 16089 16083 snprintf(res_idx, sizeof(res_idx), "%u", (unsigned) result_idx); 16090 16084 jsval_t key = js_mkstr(js, res_idx, strlen(res_idx)); 16091 - setprop(js, result, key, m_elem); 16085 + js_setprop(js, result, key, m_elem); 16092 16086 } 16093 16087 result_idx++; 16094 16088 } ··· 16096 16090 char res_idx[16]; 16097 16091 snprintf(res_idx, sizeof(res_idx), "%u", (unsigned) result_idx); 16098 16092 jsval_t key = js_mkstr(js, res_idx, strlen(res_idx)); 16099 - setprop(js, result, key, mapped); 16093 + js_setprop(js, result, key, mapped); 16100 16094 result_idx++; 16101 16095 } 16102 16096 } 16103 16097 16104 16098 jsval_t len_key = js_mkstr(js, "length", 6); 16105 - setprop(js, result, len_key, tov((double) result_idx)); 16099 + js_setprop(js, result, len_key, tov((double) result_idx)); 16106 16100 return mkval(T_ARR, vdata(result)); 16107 16101 } 16108 16102 ··· 16297 16291 jsoff_t elem_off = lkp(js, arr, src, strlen(src)); 16298 16292 jsval_t elem = elem_off ? resolveprop(js, mkval(T_PROP, elem_off)) : js_mkundef(); 16299 16293 jsval_t key = js_mkstr(js, dst, strlen(dst)); 16300 - setprop(js, arr, key, elem); 16294 + js_setprop(js, arr, key, elem); 16301 16295 } 16302 16296 16303 16297 jsval_t len_key = js_mkstr(js, "length", 6); 16304 - setprop(js, arr, len_key, tov((double)(len - 1))); 16298 + js_setprop(js, arr, len_key, tov((double)(len - 1))); 16305 16299 js->needs_gc = true; 16306 16300 return first; 16307 16301 } ··· 16326 16320 jsoff_t elem_off = lkp(js, arr, src, strlen(src)); 16327 16321 jsval_t elem = elem_off ? resolveprop(js, mkval(T_PROP, elem_off)) : js_mkundef(); 16328 16322 jsval_t key = js_mkstr(js, dst, strlen(dst)); 16329 - setprop(js, arr, key, elem); 16323 + js_setprop(js, arr, key, elem); 16330 16324 } 16331 16325 16332 16326 for (int i = 0; i < nargs; i++) { 16333 16327 char idxstr[16]; 16334 16328 size_t idxlen = uint_to_str(idxstr, sizeof(idxstr), (unsigned)i); 16335 16329 jsval_t key = js_mkstr(js, idxstr, idxlen); 16336 - setprop(js, arr, key, args[i]); 16330 + js_setprop(js, arr, key, args[i]); 16337 16331 } 16338 16332 16339 16333 jsval_t len_key = js_mkstr(js, "length", 6); 16340 16334 jsoff_t new_len = len + nargs; 16341 - setprop(js, arr, len_key, tov((double) new_len)); 16335 + js_setprop(js, arr, len_key, tov((double) new_len)); 16342 16336 return tov((double) new_len); 16343 16337 } 16344 16338 ··· 16556 16550 if (elem_off != 0) { 16557 16551 jsval_t elem = resolveprop(js, mkval(T_PROP, elem_off)); 16558 16552 jsval_t key = js_mkstr(js, dst, strlen(dst)); 16559 - setprop(js, removed, key, elem); 16553 + js_setprop(js, removed, key, elem); 16560 16554 } 16561 16555 } 16562 16556 jsval_t rem_len_key = js_mkstr(js, "length", 6); 16563 - setprop(js, removed, rem_len_key, tov((double) deleteCount)); 16557 + js_setprop(js, removed, rem_len_key, tov((double) deleteCount)); 16564 16558 16565 16559 int shift = insertCount - deleteCount; 16566 16560 if (shift > 0) { ··· 16571 16565 jsoff_t elem_off = lkp(js, arr, src, strlen(src)); 16572 16566 jsval_t elem = elem_off ? resolveprop(js, mkval(T_PROP, elem_off)) : js_mkundef(); 16573 16567 jsval_t key = js_mkstr(js, dst, strlen(dst)); 16574 - setprop(js, arr, key, elem); 16568 + js_setprop(js, arr, key, elem); 16575 16569 } 16576 16570 } else if (shift < 0) { 16577 16571 for (int i = start + deleteCount; i < (int)len; i++) { ··· 16581 16575 jsoff_t elem_off = lkp(js, arr, src, strlen(src)); 16582 16576 jsval_t elem = elem_off ? resolveprop(js, mkval(T_PROP, elem_off)) : js_mkundef(); 16583 16577 jsval_t key = js_mkstr(js, dst, strlen(dst)); 16584 - setprop(js, arr, key, elem); 16578 + js_setprop(js, arr, key, elem); 16585 16579 } 16586 16580 } 16587 16581 ··· 16589 16583 char idxstr[16]; 16590 16584 size_t idxlen = uint_to_str(idxstr, sizeof(idxstr), (unsigned)(start + i)); 16591 16585 jsval_t key = js_mkstr(js, idxstr, idxlen); 16592 - setprop(js, arr, key, args[2 + i]); 16586 + js_setprop(js, arr, key, args[2 + i]); 16593 16587 } 16594 16588 16595 16589 jsval_t len_key = js_mkstr(js, "length", 6); 16596 - setprop(js, arr, len_key, tov((double)((int)len + shift))); 16590 + js_setprop(js, arr, len_key, tov((double)((int)len + shift))); 16597 16591 if (deleteCount > 0) js->needs_gc = true; 16598 16592 return mkval(T_ARR, vdata(removed)); 16599 16593 } ··· 16644 16638 char idxstr[16]; 16645 16639 size_t idxlen = uint_to_str(idxstr, sizeof(idxstr), (unsigned)(target + i)); 16646 16640 jsval_t key = js_mkstr(js, idxstr, idxlen); 16647 - setprop(js, arr, key, temp[i]); 16641 + js_setprop(js, arr, key, temp[i]); 16648 16642 } 16649 16643 16650 16644 free(temp); ··· 16735 16729 elem = elem_off ? resolveprop(js, mkval(T_PROP, elem_off)) : js_mkundef(); 16736 16730 } 16737 16731 jsval_t key = js_mkstr(js, idxstr, idxlen); 16738 - setprop(js, result, key, elem); 16732 + js_setprop(js, result, key, elem); 16739 16733 } 16740 16734 16741 16735 jsval_t len_key = js_mkstr(js, "length", 6); 16742 - setprop(js, result, len_key, tov((double) len)); 16736 + js_setprop(js, result, len_key, tov((double) len)); 16743 16737 return mkval(T_ARR, vdata(result)); 16744 16738 } 16745 16739 ··· 16765 16759 char idxstr[16]; 16766 16760 size_t idxlen = uint_to_str(idxstr, sizeof(idxstr), (unsigned)i); 16767 16761 jsval_t key = js_mkstr(js, idxstr, idxlen); 16768 - setprop(js, result, key, tov((double) i)); 16762 + js_setprop(js, result, key, tov((double) i)); 16769 16763 } 16770 16764 16771 16765 jsval_t len_key = js_mkstr(js, "length", 6); 16772 - setprop(js, result, len_key, tov((double) len)); 16766 + js_setprop(js, result, len_key, tov((double) len)); 16773 16767 return mkval(T_ARR, vdata(result)); 16774 16768 } 16775 16769 ··· 16797 16791 jsoff_t elem_off = lkp(js, arr, idxstr, idxlen); 16798 16792 jsval_t elem = elem_off ? resolveprop(js, mkval(T_PROP, elem_off)) : js_mkundef(); 16799 16793 jsval_t key = js_mkstr(js, idxstr, idxlen); 16800 - setprop(js, result, key, elem); 16794 + js_setprop(js, result, key, elem); 16801 16795 } 16802 16796 16803 16797 jsval_t len_key = js_mkstr(js, "length", 6); 16804 - setprop(js, result, len_key, tov((double) len)); 16798 + js_setprop(js, result, len_key, tov((double) len)); 16805 16799 return mkval(T_ARR, vdata(result)); 16806 16800 } 16807 16801 ··· 16832 16826 jsoff_t elem_off = lkp(js, arr, idxstr, idxlen); 16833 16827 jsval_t elem = elem_off ? resolveprop(js, mkval(T_PROP, elem_off)) : js_mkundef(); 16834 16828 16835 - setprop(js, entry, js_mkstr(js, "0", 1), tov((double) i)); 16836 - setprop(js, entry, js_mkstr(js, "1", 1), elem); 16837 - setprop(js, entry, js_mkstr(js, "length", 6), tov(2)); 16829 + js_setprop(js, entry, js_mkstr(js, "0", 1), tov((double) i)); 16830 + js_setprop(js, entry, js_mkstr(js, "1", 1), elem); 16831 + js_setprop(js, entry, js_mkstr(js, "length", 6), tov(2)); 16838 16832 16839 16833 jsval_t key = js_mkstr(js, idxstr, idxlen); 16840 - setprop(js, result, key, mkval(T_ARR, vdata(entry))); 16834 + js_setprop(js, result, key, mkval(T_ARR, vdata(entry))); 16841 16835 } 16842 16836 16843 16837 jsval_t len_key = js_mkstr(js, "length", 6); 16844 - setprop(js, result, len_key, tov((double) len)); 16838 + js_setprop(js, result, len_key, tov((double) len)); 16845 16839 return mkval(T_ARR, vdata(result)); 16846 16840 } 16847 16841 ··· 16945 16939 if (is_err(elem)) return elem; 16946 16940 } 16947 16941 jsval_t key = js_mkstr(js, idxstr, idxlen); 16948 - setprop(js, result, key, elem); 16942 + js_setprop(js, result, key, elem); 16949 16943 } 16950 16944 jsval_t len_key = js_mkstr(js, "length", 6); 16951 - setprop(js, result, len_key, tov((double) str_len)); 16945 + js_setprop(js, result, len_key, tov((double) str_len)); 16952 16946 } else if (vtype(src) == T_ARR || vtype(src) == T_OBJ) { 16953 16947 jsoff_t off = lkp_interned(js, src, INTERN_LENGTH, 6); 16954 16948 jsoff_t len = 0; ··· 16967 16961 if (is_err(elem)) return elem; 16968 16962 } 16969 16963 jsval_t key = js_mkstr(js, idxstr, idxlen); 16970 - setprop(js, result, key, elem); 16964 + js_setprop(js, result, key, elem); 16971 16965 } 16972 16966 jsval_t len_key = js_mkstr(js, "length", 6); 16973 - setprop(js, result, len_key, tov((double) len)); 16967 + js_setprop(js, result, len_key, tov((double) len)); 16974 16968 } 16975 16969 16976 16970 return mkval(T_ARR, vdata(result)); ··· 16984 16978 char idxstr[16]; 16985 16979 size_t idxlen = uint_to_str(idxstr, sizeof(idxstr), (unsigned)i); 16986 16980 jsval_t key = js_mkstr(js, idxstr, idxlen); 16987 - setprop(js, arr, key, args[i]); 16981 + js_setprop(js, arr, key, args[i]); 16988 16982 } 16989 16983 jsval_t len_key = js_mkstr(js, "length", 6); 16990 - setprop(js, arr, len_key, tov((double) nargs)); 16984 + js_setprop(js, arr, len_key, tov((double) nargs)); 16991 16985 return mkval(T_ARR, vdata(arr)); 16992 16986 } 16993 16987 ··· 17102 17096 } 17103 17097 } 17104 17098 if (limit == 0) { 17105 - setprop(js, arr, js_mkstr(js, "length", 6), tov(0)); 17099 + js_setprop(js, arr, js_mkstr(js, "length", 6), tov(0)); 17106 17100 return mkval(T_ARR, vdata(arr)); 17107 17101 } 17108 17102 if (nargs == 0) goto return_whole; ··· 17124 17118 size_t idxlen = uint_to_str(idxstr, sizeof(idxstr), (unsigned)idx); 17125 17119 jsval_t key = js_mkstr(js, idxstr, idxlen); 17126 17120 jsval_t part = js_mkstr(js, str_ptr + i, 1); 17127 - setprop(js, arr, key, part); 17121 + js_setprop(js, arr, key, part); 17128 17122 idx++; 17129 17123 } 17130 17124 jsval_t len_key = js_mkstr(js, "length", 6); 17131 - setprop(js, arr, len_key, tov((double)idx)); 17125 + js_setprop(js, arr, len_key, tov((double)idx)); 17132 17126 return mkval(T_ARR, vdata(arr)); 17133 17127 } 17134 17128 ··· 17150 17144 if (rc >= 0) { 17151 17145 pcre2_match_data_free(match_data); 17152 17146 pcre2_code_free(re); 17153 - setprop(js, arr, js_mkstr(js, "length", 6), tov(0)); 17147 + js_setprop(js, arr, js_mkstr(js, "length", 6), tov(0)); 17154 17148 return mkval(T_ARR, vdata(arr)); 17155 17149 } 17156 17150 } ··· 17196 17190 size_t idxlen = uint_to_str(idxstr, sizeof(idxstr), (unsigned)idx); 17197 17191 jsval_t key = js_mkstr(js, idxstr, idxlen); 17198 17192 jsval_t part = js_mkstr(js, str_ptr + segment_start, match_start - segment_start); 17199 - setprop(js, arr, key, part); 17193 + js_setprop(js, arr, key, part); 17200 17194 idx++; 17201 17195 17202 17196 for (uint32_t i = 1; i <= capture_count && idx < limit; i++) { ··· 17205 17199 size_t cap_idxlen = uint_to_str(idxstr, sizeof(idxstr), (unsigned)idx); 17206 17200 key = js_mkstr(js, idxstr, cap_idxlen); 17207 17201 if (cap_start == PCRE2_UNSET) { 17208 - setprop(js, arr, key, js_mkundef()); 17202 + js_setprop(js, arr, key, js_mkundef()); 17209 17203 } else { 17210 17204 part = js_mkstr(js, str_ptr + cap_start, cap_end - cap_start); 17211 - setprop(js, arr, key, part); 17205 + js_setprop(js, arr, key, part); 17212 17206 } 17213 17207 idx++; 17214 17208 } ··· 17225 17219 if (!had_any_split) { 17226 17220 pcre2_match_data_free(match_data); 17227 17221 pcre2_code_free(re); 17228 - setprop(js, arr, js_mkstr(js, "0", 1), js_mkstr(js, str_ptr, str_len)); 17229 - setprop(js, arr, js_mkstr(js, "length", 6), tov(1)); 17222 + js_setprop(js, arr, js_mkstr(js, "0", 1), js_mkstr(js, str_ptr, str_len)); 17223 + js_setprop(js, arr, js_mkstr(js, "length", 6), tov(1)); 17230 17224 return mkval(T_ARR, vdata(arr)); 17231 17225 } 17232 17226 ··· 17235 17229 size_t idxlen = uint_to_str(idxstr, sizeof(idxstr), (unsigned)idx); 17236 17230 jsval_t key = js_mkstr(js, idxstr, idxlen); 17237 17231 jsval_t part = js_mkstr(js, str_ptr + segment_start, str_len - segment_start); 17238 - setprop(js, arr, key, part); 17232 + js_setprop(js, arr, key, part); 17239 17233 idx++; 17240 17234 } 17241 17235 17242 17236 pcre2_match_data_free(match_data); 17243 17237 pcre2_code_free(re); 17244 17238 jsval_t len_key = js_mkstr(js, "length", 6); 17245 - setprop(js, arr, len_key, tov((double)idx)); 17239 + js_setprop(js, arr, len_key, tov((double)idx)); 17246 17240 return mkval(T_ARR, vdata(arr)); 17247 17241 } 17248 17242 ··· 17258 17252 size_t idxlen = uint_to_str(idxstr, sizeof(idxstr), (unsigned)idx); 17259 17253 jsval_t key = js_mkstr(js, idxstr, idxlen); 17260 17254 jsval_t part = js_mkstr(js, str_ptr + i, 1); 17261 - setprop(js, arr, key, part); 17255 + js_setprop(js, arr, key, part); 17262 17256 idx++; 17263 17257 } 17264 17258 goto set_length; ··· 17270 17264 size_t idxlen = uint_to_str(idxstr, sizeof(idxstr), (unsigned)idx); 17271 17265 jsval_t key = js_mkstr(js, idxstr, idxlen); 17272 17266 jsval_t part = js_mkstr(js, str_ptr + start, i - start); 17273 - setprop(js, arr, key, part); 17267 + js_setprop(js, arr, key, part); 17274 17268 idx++; 17275 17269 start = i + sep_len; 17276 17270 i += sep_len - 1; ··· 17280 17274 size_t idxlen = uint_to_str(idxstr, sizeof(idxstr), (unsigned)idx); 17281 17275 jsval_t key = js_mkstr(js, idxstr, idxlen); 17282 17276 jsval_t part = js_mkstr(js, str_ptr + start, str_len - start); 17283 - setprop(js, arr, key, part); 17277 + js_setprop(js, arr, key, part); 17284 17278 idx++; 17285 17279 } 17286 17280 17287 17281 set_length:; 17288 17282 jsval_t len_key = js_mkstr(js, "length", 6); 17289 - setprop(js, arr, len_key, tov((double) idx)); 17283 + js_setprop(js, arr, len_key, tov((double) idx)); 17290 17284 return mkval(T_ARR, vdata(arr)); 17291 17285 17292 17286 return_whole: 17293 17287 if (limit > 0) { 17294 - setprop(js, arr, js_mkstr(js, "0", 1), str); 17295 - setprop(js, arr, js_mkstr(js, "length", 6), tov(1)); 17288 + js_setprop(js, arr, js_mkstr(js, "0", 1), str); 17289 + js_setprop(js, arr, js_mkstr(js, "length", 6), tov(1)); 17296 17290 } else { 17297 - setprop(js, arr, js_mkstr(js, "length", 6), tov(0)); 17291 + js_setprop(js, arr, js_mkstr(js, "length", 6), tov(0)); 17298 17292 } 17299 17293 return mkval(T_ARR, vdata(arr)); 17300 17294 } ··· 17870 17864 js_arr_push(js, result_arr, match_str); 17871 17865 } 17872 17866 } 17873 - setprop(js, result_arr, js_mkstr(js, "index", 5), tov((double)match_start)); 17867 + js_setprop(js, result_arr, js_mkstr(js, "index", 5), tov((double)match_start)); 17874 17868 } 17875 17869 match_count++; 17876 17870 ··· 17939 17933 jsval_t result = do_regex_match_pcre2(js, pattern_ptr, pattern_len, str_ptr, str_len, global_flag, ignore_case, multiline); 17940 17934 17941 17935 if (!global_flag && vtype(result) == T_ARR) { 17942 - setprop(js, result, js_mkstr(js, "input", 5), str); 17936 + js_setprop(js, result, js_mkstr(js, "input", 5), str); 17943 17937 } 17944 17938 17945 17939 return result; ··· 19415 19409 jsval_t results = js_get(js, tracker, "results"); 19416 19410 char idx[16]; 19417 19411 snprintf(idx, sizeof(idx), "%d", index); 19418 - setprop(js, results, js_mkstr(js, idx, strlen(idx)), value); 19412 + js_setprop(js, results, js_mkstr(js, idx, strlen(idx)), value); 19419 19413 19420 19414 jsval_t remaining_val = js_get(js, tracker, "remaining"); 19421 19415 int remaining = (int)tod(remaining_val) - 1; 19422 - setprop(js, tracker, js_mkstr(js, "remaining", 9), tov((double)remaining)); 19416 + js_setprop(js, tracker, js_mkstr(js, "remaining", 9), tov((double)remaining)); 19423 19417 19424 19418 if (remaining == 0) { 19425 19419 jsval_t result_promise = get_slot(js, tracker, SLOT_DATA); ··· 19453 19447 19454 19448 if (len == 0) { 19455 19449 jsval_t empty_arr = mkarr(js); 19456 - setprop(js, empty_arr, js_mkstr(js, "length", 6), tov(0.0)); 19450 + js_setprop(js, empty_arr, js_mkstr(js, "length", 6), tov(0.0)); 19457 19451 jsval_t resolve_args[] = { mkval(T_ARR, vdata(empty_arr)) }; 19458 19452 return builtin_Promise_resolve(js, resolve_args, 1); 19459 19453 } ··· 19461 19455 jsval_t result_promise = mkpromise(js); 19462 19456 jsval_t tracker = mkobj(js, 0); 19463 19457 19464 - setprop(js, tracker, js_mkstr(js, "remaining", 9), tov((double)len)); 19465 - setprop(js, tracker, js_mkstr(js, "results", 7), mkarr(js)); 19458 + js_setprop(js, tracker, js_mkstr(js, "remaining", 9), tov((double)len)); 19459 + js_setprop(js, tracker, js_mkstr(js, "results", 7), mkarr(js)); 19466 19460 set_slot(js, tracker, SLOT_DATA, result_promise); 19467 19461 19468 19462 jsval_t results = resolveprop(js, js_get(js, tracker, "results")); 19469 - setprop(js, results, js_mkstr(js, "length", 6), tov((double)len)); 19463 + js_setprop(js, results, js_mkstr(js, "length", 6), tov((double)len)); 19470 19464 19471 19465 for (int i = 0; i < len; i++) { 19472 19466 char idx[16]; ··· 19480 19474 19481 19475 jsval_t resolve_obj = mkobj(js, 0); 19482 19476 set_slot(js, resolve_obj, SLOT_CFUNC, js_mkfun(builtin_Promise_all_resolve_handler)); 19483 - setprop(js, resolve_obj, js_mkstr(js, "index", 5), tov((double)i)); 19484 - setprop(js, resolve_obj, js_mkstr(js, "tracker", 7), tracker); 19477 + js_setprop(js, resolve_obj, js_mkstr(js, "index", 5), tov((double)i)); 19478 + js_setprop(js, resolve_obj, js_mkstr(js, "tracker", 7), tracker); 19485 19479 jsval_t resolve_fn = mkval(T_FUNC, vdata(resolve_obj)); 19486 19480 19487 19481 jsval_t reject_obj = mkobj(js, 0); 19488 19482 set_slot(js, reject_obj, SLOT_CFUNC, js_mkfun(builtin_Promise_all_reject_handler)); 19489 - setprop(js, reject_obj, js_mkstr(js, "tracker", 7), tracker); 19483 + js_setprop(js, reject_obj, js_mkstr(js, "tracker", 7), tracker); 19490 19484 jsval_t reject_fn = mkval(T_FUNC, vdata(reject_obj)); 19491 19485 19492 19486 jsval_t then_args[] = { resolve_fn, reject_fn }; ··· 19573 19567 jsval_t errors = resolveprop(js, js_get(js, tracker, "errors")); 19574 19568 char idx[16]; 19575 19569 snprintf(idx, sizeof(idx), "%d", index); 19576 - setprop(js, errors, js_mkstr(js, idx, strlen(idx)), reason); 19570 + js_setprop(js, errors, js_mkstr(js, idx, strlen(idx)), reason); 19577 19571 19578 19572 int remaining = (int)tod(js_get(js, tracker, "remaining")) - 1; 19579 19573 js_set(js, tracker, "remaining", tov((double)remaining)); ··· 19616 19610 19617 19611 set_slot(js, tracker, SLOT_DATA, result_promise); 19618 19612 19619 - setprop(js, tracker, js_mkstr(js, "remaining", 9), tov((double)len)); 19620 - setprop(js, tracker, js_mkstr(js, "errors", 6), errors); 19621 - setprop(js, tracker, js_mkstr(js, "resolved", 8), js_false); 19622 - setprop(js, errors, js_mkstr(js, "length", 6), tov((double)len)); 19613 + js_setprop(js, tracker, js_mkstr(js, "remaining", 9), tov((double)len)); 19614 + js_setprop(js, tracker, js_mkstr(js, "errors", 6), errors); 19615 + js_setprop(js, tracker, js_mkstr(js, "resolved", 8), js_false); 19616 + js_setprop(js, errors, js_mkstr(js, "length", 6), tov((double)len)); 19623 19617 19624 19618 for (int i = 0; i < len; i++) { 19625 19619 char idx[16]; ··· 19650 19644 19651 19645 jsval_t resolve_obj = mkobj(js, 0); 19652 19646 set_slot(js, resolve_obj, SLOT_CFUNC, js_mkfun(builtin_Promise_any_resolve_handler)); 19653 - setprop(js, resolve_obj, js_mkstr(js, "tracker", 7), tracker); 19647 + js_setprop(js, resolve_obj, js_mkstr(js, "tracker", 7), tracker); 19654 19648 19655 19649 jsval_t reject_obj = mkobj(js, 0); 19656 19650 set_slot(js, reject_obj, SLOT_CFUNC, js_mkfun(builtin_Promise_any_reject_handler)); 19657 - setprop(js, reject_obj, js_mkstr(js, "index", 5), tov((double)i)); 19658 - setprop(js, reject_obj, js_mkstr(js, "tracker", 7), tracker); 19651 + js_setprop(js, reject_obj, js_mkstr(js, "index", 5), tov((double)i)); 19652 + js_setprop(js, reject_obj, js_mkstr(js, "tracker", 7), tracker); 19659 19653 19660 19654 jsval_t then_args[] = { mkval(T_FUNC, vdata(resolve_obj)), mkval(T_FUNC, vdata(reject_obj)) }; 19661 19655 jsval_t saved_this = js->this_val; ··· 20014 20008 for (size_t i = 0; i < size; i++) { 20015 20009 char idx[16]; 20016 20010 snprintf(idx, sizeof(idx), "%zu", i); 20017 - setprop(js, data_arr, js_mkstr(js, idx, strlen(idx)), tov((double)content[i])); 20011 + js_setprop(js, data_arr, js_mkstr(js, idx, strlen(idx)), tov((double)content[i])); 20018 20012 } 20019 - setprop(js, data_arr, js_mkstr(js, "length", 6), tov((double)size)); 20013 + js_setprop(js, data_arr, js_mkstr(js, "length", 6), tov((double)size)); 20020 20014 20021 - setprop(js, obj, js_mkstr(js, "data", 4), mkval(T_ARR, vdata(data_arr))); 20022 - setprop(js, obj, js_mkstr(js, "path", 4), js_mkstr(js, path, strlen(path))); 20023 - setprop(js, obj, js_mkstr(js, "size", 4), tov((double)size)); 20015 + js_setprop(js, obj, js_mkstr(js, "data", 4), mkval(T_ARR, vdata(data_arr))); 20016 + js_setprop(js, obj, js_mkstr(js, "path", 4), js_mkstr(js, path, strlen(path))); 20017 + js_setprop(js, obj, js_mkstr(js, "size", 4), tov((double)size)); 20024 20018 20025 20019 free(file.data); 20026 20020 return obj; ··· 20285 20279 bool is_url = esm_is_url(filename); 20286 20280 20287 20281 jsval_t url_val = is_url ? js_mkstr(js, filename, strlen(filename)) : esm_make_file_url(js, filename); 20288 - if (!is_err(url_val)) setprop(js, import_meta, js_mkstr(js, "url", 3), url_val); 20282 + if (!is_err(url_val)) js_setprop(js, import_meta, js_mkstr(js, "url", 3), url_val); 20289 20283 20290 20284 jsval_t filename_val = js_mkstr(js, filename, strlen(filename)); 20291 - if (!is_err(filename_val)) setprop(js, import_meta, js_mkstr(js, "filename", 8), filename_val); 20285 + if (!is_err(filename_val)) js_setprop(js, import_meta, js_mkstr(js, "filename", 8), filename_val); 20292 20286 20293 20287 if (is_url) { 20294 20288 char *filename_copy = strdup(filename); ··· 20298 20292 if (last_slash && scheme_end && last_slash > scheme_end + 2) { 20299 20293 *last_slash = '\0'; 20300 20294 jsval_t dirname_val = js_mkstr(js, filename_copy, strlen(filename_copy)); 20301 - if (!is_err(dirname_val)) setprop(js, import_meta, js_mkstr(js, "dirname", 7), dirname_val); 20295 + if (!is_err(dirname_val)) js_setprop(js, import_meta, js_mkstr(js, "dirname", 7), dirname_val); 20302 20296 } 20303 20297 free(filename_copy); 20304 20298 } ··· 20308 20302 char *dir = dirname(filename_copy); 20309 20303 if (dir) { 20310 20304 jsval_t dirname_val = js_mkstr(js, dir, strlen(dir)); 20311 - if (!is_err(dirname_val)) setprop(js, import_meta, js_mkstr(js, "dirname", 7), dirname_val); 20305 + if (!is_err(dirname_val)) js_setprop(js, import_meta, js_mkstr(js, "dirname", 7), dirname_val); 20312 20306 } 20313 20307 free(filename_copy); 20314 20308 } 20315 20309 } 20316 20310 20317 - setprop(js, import_meta, js_mkstr(js, "main", 4), js_true); 20311 + js_setprop(js, import_meta, js_mkstr(js, "main", 4), js_true); 20318 20312 jsval_t resolve_fn = js_mkfun(builtin_import_meta_resolve); 20319 - setprop(js, import_meta, js_mkstr(js, "resolve", 7), resolve_fn); 20313 + js_setprop(js, import_meta, js_mkstr(js, "resolve", 7), resolve_fn); 20320 20314 20321 20315 jsval_t glob = js_glob(js); 20322 20316 jsoff_t import_off = lkp(js, glob, "import", 6); ··· 20325 20319 jsval_t import_fn = resolveprop(js, mkval(T_PROP, import_off)); 20326 20320 if (vtype(import_fn) == T_FUNC) { 20327 20321 jsval_t import_obj = mkval(T_OBJ, vdata(import_fn)); 20328 - setprop(js, import_obj, js_mkstr(js, "meta", 4), import_meta); 20322 + js_setprop(js, import_obj, js_mkstr(js, "meta", 4), import_meta); 20329 20323 } 20330 20324 } 20331 20325 } ··· 20375 20369 return js_mkerr_typed(js, JS_ERR_SYNTAX, "Cannot re-export from non-object module"); 20376 20370 } 20377 20371 20378 - setprop(js, js->scope, js_mkstr(js, namespace_name, namespace_len), ns); 20372 + js_setprop(js, js->scope, js_mkstr(js, namespace_name, namespace_len), ns); 20379 20373 return js_mkundef(); 20380 20374 } 20381 20375 ··· 20430 20424 jsval_t slot_val = js_get_slot(js, ns, SLOT_DEFAULT); 20431 20425 default_val = vtype(slot_val) != T_UNDEF ? slot_val : ns; 20432 20426 } else default_val = ns; 20433 - setprop(js, js->scope, js_mkstr(js, default_name, default_len), default_val); 20427 + js_setprop(js, js->scope, js_mkstr(js, default_name, default_len), default_val); 20434 20428 20435 20429 for (int i = 0; i < binding_count; i++) { 20436 20430 if (bindings[i].import_name == NULL) { 20437 - setprop(js, js->scope, js_mkstr(js, bindings[i].local_name, bindings[i].local_len), ns); 20431 + js_setprop(js, js->scope, js_mkstr(js, bindings[i].local_name, bindings[i].local_len), ns); 20438 20432 } else if (vtype(ns) == T_OBJ) { 20439 20433 jsoff_t prop_off = lkp(js, ns, bindings[i].import_name, bindings[i].import_len); 20440 20434 if (prop_off == 0) return js_mkerr_typed( ··· 20442 20436 (int)bindings[i].import_len, bindings[i].import_name 20443 20437 ); 20444 20438 jsval_t imported_val = resolveprop(js, mkval(T_PROP, prop_off)); 20445 - setprop(js, js->scope, js_mkstr(js, bindings[i].local_name, bindings[i].local_len), imported_val); 20439 + js_setprop(js, js->scope, js_mkstr(js, bindings[i].local_name, bindings[i].local_len), imported_val); 20446 20440 } else return js_mkerr_typed(js, JS_ERR_SYNTAX, "Cannot use named imports from non-object module"); 20447 20441 } 20448 20442 ··· 20490 20484 (int)bindings[i].import_len, bindings[i].import_name 20491 20485 ); 20492 20486 jsval_t imported_val = resolveprop(js, mkval(T_PROP, prop_off)); 20493 - setprop(js, js->scope, js_mkstr(js, bindings[i].local_name, bindings[i].local_len), imported_val); 20487 + js_setprop(js, js->scope, js_mkstr(js, bindings[i].local_name, bindings[i].local_len), imported_val); 20494 20488 } 20495 20489 20496 20490 return js_mkundef(); ··· 20555 20549 20556 20550 jsval_t key = js_mkstr(js, name, name_len); 20557 20551 mkprop(js, js->scope, key, resolveprop(js, value), is_const ? CONSTMASK : 0); 20558 - setprop(js, js->module_ns, key, resolveprop(js, value)); 20552 + js_setprop(js, js->module_ns, key, resolveprop(js, value)); 20559 20553 20560 20554 return value; 20561 20555 } ··· 20569 20563 if (name_off != 0) { 20570 20564 jsval_t name_val = resolveprop(js, mkval(T_PROP, name_off)); 20571 20565 if (vtype(name_val) == T_STR) { 20572 - setprop(js, js->scope, name_val, func); 20573 - setprop(js, js->module_ns, name_val, func); 20566 + js_setprop(js, js->scope, name_val, func); 20567 + js_setprop(js, js->module_ns, name_val, func); 20574 20568 } 20575 20569 } 20576 20570 ··· 20586 20580 if (name_off != 0) { 20587 20581 jsval_t name_val = resolveprop(js, mkval(T_PROP, name_off)); 20588 20582 if (vtype(name_val) == T_STR) { 20589 - setprop(js, js->scope, name_val, cls); 20590 - setprop(js, js->module_ns, name_val, cls); 20583 + js_setprop(js, js->scope, name_val, cls); 20584 + js_setprop(js, js->module_ns, name_val, cls); 20591 20585 } 20592 20586 } 20593 20587 ··· 20625 20619 if (is_err(ns)) return ns; 20626 20620 20627 20621 if (alias_name) { 20628 - setprop(js, js->module_ns, js_mkstr(js, alias_name, alias_len), ns); 20622 + js_setprop(js, js->module_ns, js_mkstr(js, alias_name, alias_len), ns); 20629 20623 } else if (vtype(ns) == T_OBJ) { 20630 20624 ant_iter_t iter = js_prop_iter_begin(js, ns); 20631 20625 const char *key; size_t key_len; jsval_t value; 20632 20626 20633 20627 while (js_prop_iter_next(&iter, &key, &key_len, &value)) { 20634 - setprop(js, js->module_ns, js_mkstr(js, key, key_len), resolveprop(js, value)); 20628 + js_setprop(js, js->module_ns, js_mkstr(js, key, key_len), resolveprop(js, value)); 20635 20629 } 20636 20630 js_prop_iter_end(&iter); 20637 20631 } ··· 20726 20720 20727 20721 static jsval_t throw_proxy_error(struct js *js, const char *message) { 20728 20722 jsval_t err_obj = mkobj(js, 0); 20729 - setprop(js, err_obj, js_mkstr(js, "message", 7), js_mkstr(js, message, strlen(message))); 20730 - setprop(js, err_obj, js_mkstr(js, "name", 4), js_mkstr(js, "TypeError", 9)); 20723 + js_setprop(js, err_obj, js_mkstr(js, "message", 7), js_mkstr(js, message, strlen(message))); 20724 + js_setprop(js, err_obj, js_mkstr(js, "name", 4), js_mkstr(js, "TypeError", 9)); 20731 20725 return js_throw(js, err_obj); 20732 20726 } 20733 20727 ··· 20784 20778 } 20785 20779 20786 20780 jsval_t key_str = js_mkstr(js, key, key_len); 20787 - setprop(js, target, key_str, value); 20781 + js_setprop(js, target, key_str, value); 20788 20782 return js_true; 20789 20783 } 20790 20784 ··· 20834 20828 } 20835 20829 20836 20830 jsval_t key_str = js_mkstr(js, key, key_len); 20837 - setprop(js, target, key_str, js_mkundef()); 20831 + js_setprop(js, target, key_str, js_mkundef()); 20838 20832 return js_true; 20839 20833 } 20840 20834 ··· 20898 20892 jsval_t revoke_func = mkval(T_FUNC, vdata(revoke_obj)); 20899 20893 20900 20894 jsval_t result = mkobj(js, 0); 20901 - setprop(js, result, js_mkstr(js, "proxy", 5), proxy); 20902 - setprop(js, result, js_mkstr(js, "revoke", 6), revoke_func); 20895 + js_setprop(js, result, js_mkstr(js, "proxy", 5), proxy); 20896 + js_setprop(js, result, js_mkstr(js, "revoke", 6), revoke_func); 20903 20897 20904 20898 return result; 20905 20899 } ··· 20945 20939 jsval_t object_proto = js_mkobj(js); 20946 20940 set_proto(js, object_proto, js_mknull()); 20947 20941 20948 - setprop(js, object_proto, js_mkstr(js, "toString", 8), js_mkfun(builtin_object_toString)); 20942 + js_setprop(js, object_proto, js_mkstr(js, "toString", 8), js_mkfun(builtin_object_toString)); 20949 20943 js_set_descriptor(js, object_proto, "toString", 8, JS_DESC_W | JS_DESC_C); 20950 20944 20951 - setprop(js, object_proto, js_mkstr(js, "valueOf", 7), js_mkfun(builtin_object_valueOf)); 20945 + js_setprop(js, object_proto, js_mkstr(js, "valueOf", 7), js_mkfun(builtin_object_valueOf)); 20952 20946 js_set_descriptor(js, object_proto, "valueOf", 7, JS_DESC_W | JS_DESC_C); 20953 20947 20954 - setprop(js, object_proto, js_mkstr(js, "toLocaleString", 14), js_mkfun(builtin_object_toLocaleString)); 20948 + js_setprop(js, object_proto, js_mkstr(js, "toLocaleString", 14), js_mkfun(builtin_object_toLocaleString)); 20955 20949 js_set_descriptor(js, object_proto, "toLocaleString", 14, JS_DESC_W | JS_DESC_C); 20956 20950 20957 - setprop(js, object_proto, js_mkstr(js, "hasOwnProperty", 14), js_mkfun(builtin_object_hasOwnProperty)); 20951 + js_setprop(js, object_proto, js_mkstr(js, "hasOwnProperty", 14), js_mkfun(builtin_object_hasOwnProperty)); 20958 20952 js_set_descriptor(js, object_proto, "hasOwnProperty", 14, JS_DESC_W | JS_DESC_C); 20959 20953 20960 - setprop(js, object_proto, js_mkstr(js, "isPrototypeOf", 13), js_mkfun(builtin_object_isPrototypeOf)); 20954 + js_setprop(js, object_proto, js_mkstr(js, "isPrototypeOf", 13), js_mkfun(builtin_object_isPrototypeOf)); 20961 20955 js_set_descriptor(js, object_proto, "isPrototypeOf", 13, JS_DESC_W | JS_DESC_C); 20962 20956 20963 - setprop(js, object_proto, js_mkstr(js, "propertyIsEnumerable", 20), js_mkfun(builtin_object_propertyIsEnumerable)); 20957 + js_setprop(js, object_proto, js_mkstr(js, "propertyIsEnumerable", 20), js_mkfun(builtin_object_propertyIsEnumerable)); 20964 20958 js_set_descriptor(js, object_proto, "propertyIsEnumerable", 20, JS_DESC_W | JS_DESC_C); 20965 20959 20966 20960 jsval_t proto_getter = js_mkfun(builtin_proto_getter); 20967 20961 jsval_t proto_setter = js_mkfun(builtin_proto_setter); 20968 - setprop(js, object_proto, js_mkstr(js, STR_PROTO, STR_PROTO_LEN), js_mkundef()); 20962 + js_setprop(js, object_proto, js_mkstr(js, STR_PROTO, STR_PROTO_LEN), js_mkundef()); 20969 20963 js_set_accessor_desc(js, object_proto, STR_PROTO, STR_PROTO_LEN, proto_getter, proto_setter, JS_DESC_C); 20970 20964 20971 20965 jsval_t function_proto_obj = js_mkobj(js); 20972 20966 set_proto(js, function_proto_obj, object_proto); 20973 20967 set_slot(js, function_proto_obj, SLOT_CFUNC, js_mkfun(builtin_function_empty)); 20974 - setprop(js, function_proto_obj, ANT_STRING("call"), js_mkfun(builtin_function_call)); 20975 - setprop(js, function_proto_obj, ANT_STRING("apply"), js_mkfun(builtin_function_apply)); 20976 - setprop(js, function_proto_obj, ANT_STRING("bind"), js_mkfun(builtin_function_bind)); 20977 - setprop(js, function_proto_obj, ANT_STRING("toString"), js_mkfun(builtin_function_toString)); 20968 + js_setprop(js, function_proto_obj, ANT_STRING("call"), js_mkfun(builtin_function_call)); 20969 + js_setprop(js, function_proto_obj, ANT_STRING("apply"), js_mkfun(builtin_function_apply)); 20970 + js_setprop(js, function_proto_obj, ANT_STRING("bind"), js_mkfun(builtin_function_bind)); 20971 + js_setprop(js, function_proto_obj, ANT_STRING("toString"), js_mkfun(builtin_function_toString)); 20978 20972 jsval_t function_proto = mkval(T_FUNC, vdata(function_proto_obj)); 20979 20973 set_slot(js, glob, SLOT_FUNC_PROTO, function_proto); 20980 20974 20981 20975 jsval_t array_proto = js_mkobj(js); 20982 20976 set_proto(js, array_proto, object_proto); 20983 - setprop(js, array_proto, js_mkstr(js, "push", 4), js_mkfun(builtin_array_push)); 20984 - setprop(js, array_proto, js_mkstr(js, "pop", 3), js_mkfun(builtin_array_pop)); 20985 - setprop(js, array_proto, js_mkstr(js, "slice", 5), js_mkfun(builtin_array_slice)); 20986 - setprop(js, array_proto, js_mkstr(js, "join", 4), js_mkfun(builtin_array_join)); 20987 - setprop(js, array_proto, js_mkstr(js, "includes", 8), js_mkfun(builtin_array_includes)); 20988 - setprop(js, array_proto, js_mkstr(js, "every", 5), js_mkfun(builtin_array_every)); 20989 - setprop(js, array_proto, js_mkstr(js, "reverse", 7), js_mkfun(builtin_array_reverse)); 20990 - setprop(js, array_proto, js_mkstr(js, "map", 3), js_mkfun(builtin_array_map)); 20991 - setprop(js, array_proto, js_mkstr(js, "filter", 6), js_mkfun(builtin_array_filter)); 20992 - setprop(js, array_proto, js_mkstr(js, "reduce", 6), js_mkfun(builtin_array_reduce)); 20993 - setprop(js, array_proto, js_mkstr(js, "flat", 4), js_mkfun(builtin_array_flat)); 20994 - setprop(js, array_proto, js_mkstr(js, "concat", 6), js_mkfun(builtin_array_concat)); 20995 - setprop(js, array_proto, js_mkstr(js, "at", 2), js_mkfun(builtin_array_at)); 20996 - setprop(js, array_proto, js_mkstr(js, "fill", 4), js_mkfun(builtin_array_fill)); 20997 - setprop(js, array_proto, js_mkstr(js, "find", 4), js_mkfun(builtin_array_find)); 20998 - setprop(js, array_proto, js_mkstr(js, "findIndex", 9), js_mkfun(builtin_array_findIndex)); 20999 - setprop(js, array_proto, js_mkstr(js, "findLast", 8), js_mkfun(builtin_array_findLast)); 21000 - setprop(js, array_proto, js_mkstr(js, "findLastIndex", 13), js_mkfun(builtin_array_findLastIndex)); 21001 - setprop(js, array_proto, js_mkstr(js, "flatMap", 7), js_mkfun(builtin_array_flatMap)); 21002 - setprop(js, array_proto, js_mkstr(js, "forEach", 7), js_mkfun(builtin_array_forEach)); 21003 - setprop(js, array_proto, js_mkstr(js, "indexOf", 7), js_mkfun(builtin_array_indexOf)); 21004 - setprop(js, array_proto, js_mkstr(js, "lastIndexOf", 11), js_mkfun(builtin_array_lastIndexOf)); 21005 - setprop(js, array_proto, js_mkstr(js, "reduceRight", 11), js_mkfun(builtin_array_reduceRight)); 21006 - setprop(js, array_proto, js_mkstr(js, "shift", 5), js_mkfun(builtin_array_shift)); 21007 - setprop(js, array_proto, js_mkstr(js, "unshift", 7), js_mkfun(builtin_array_unshift)); 21008 - setprop(js, array_proto, js_mkstr(js, "some", 4), js_mkfun(builtin_array_some)); 21009 - setprop(js, array_proto, js_mkstr(js, "sort", 4), js_mkfun(builtin_array_sort)); 21010 - setprop(js, array_proto, js_mkstr(js, "splice", 6), js_mkfun(builtin_array_splice)); 21011 - setprop(js, array_proto, js_mkstr(js, "copyWithin", 10), js_mkfun(builtin_array_copyWithin)); 21012 - setprop(js, array_proto, js_mkstr(js, "toReversed", 10), js_mkfun(builtin_array_toReversed)); 21013 - setprop(js, array_proto, js_mkstr(js, "toSorted", 8), js_mkfun(builtin_array_toSorted)); 21014 - setprop(js, array_proto, js_mkstr(js, "toSpliced", 9), js_mkfun(builtin_array_toSpliced)); 21015 - setprop(js, array_proto, js_mkstr(js, "with", 4), js_mkfun(builtin_array_with)); 21016 - setprop(js, array_proto, js_mkstr(js, "keys", 4), js_mkfun(builtin_array_keys)); 21017 - setprop(js, array_proto, js_mkstr(js, "values", 6), js_mkfun(builtin_array_values)); 21018 - setprop(js, array_proto, js_mkstr(js, "entries", 7), js_mkfun(builtin_array_entries)); 21019 - setprop(js, array_proto, js_mkstr(js, "toString", 8), js_mkfun(builtin_array_toString)); 21020 - setprop(js, array_proto, js_mkstr(js, "toLocaleString", 14), js_mkfun(builtin_array_toLocaleString)); 20977 + js_setprop(js, array_proto, js_mkstr(js, "push", 4), js_mkfun(builtin_array_push)); 20978 + js_setprop(js, array_proto, js_mkstr(js, "pop", 3), js_mkfun(builtin_array_pop)); 20979 + js_setprop(js, array_proto, js_mkstr(js, "slice", 5), js_mkfun(builtin_array_slice)); 20980 + js_setprop(js, array_proto, js_mkstr(js, "join", 4), js_mkfun(builtin_array_join)); 20981 + js_setprop(js, array_proto, js_mkstr(js, "includes", 8), js_mkfun(builtin_array_includes)); 20982 + js_setprop(js, array_proto, js_mkstr(js, "every", 5), js_mkfun(builtin_array_every)); 20983 + js_setprop(js, array_proto, js_mkstr(js, "reverse", 7), js_mkfun(builtin_array_reverse)); 20984 + js_setprop(js, array_proto, js_mkstr(js, "map", 3), js_mkfun(builtin_array_map)); 20985 + js_setprop(js, array_proto, js_mkstr(js, "filter", 6), js_mkfun(builtin_array_filter)); 20986 + js_setprop(js, array_proto, js_mkstr(js, "reduce", 6), js_mkfun(builtin_array_reduce)); 20987 + js_setprop(js, array_proto, js_mkstr(js, "flat", 4), js_mkfun(builtin_array_flat)); 20988 + js_setprop(js, array_proto, js_mkstr(js, "concat", 6), js_mkfun(builtin_array_concat)); 20989 + js_setprop(js, array_proto, js_mkstr(js, "at", 2), js_mkfun(builtin_array_at)); 20990 + js_setprop(js, array_proto, js_mkstr(js, "fill", 4), js_mkfun(builtin_array_fill)); 20991 + js_setprop(js, array_proto, js_mkstr(js, "find", 4), js_mkfun(builtin_array_find)); 20992 + js_setprop(js, array_proto, js_mkstr(js, "findIndex", 9), js_mkfun(builtin_array_findIndex)); 20993 + js_setprop(js, array_proto, js_mkstr(js, "findLast", 8), js_mkfun(builtin_array_findLast)); 20994 + js_setprop(js, array_proto, js_mkstr(js, "findLastIndex", 13), js_mkfun(builtin_array_findLastIndex)); 20995 + js_setprop(js, array_proto, js_mkstr(js, "flatMap", 7), js_mkfun(builtin_array_flatMap)); 20996 + js_setprop(js, array_proto, js_mkstr(js, "forEach", 7), js_mkfun(builtin_array_forEach)); 20997 + js_setprop(js, array_proto, js_mkstr(js, "indexOf", 7), js_mkfun(builtin_array_indexOf)); 20998 + js_setprop(js, array_proto, js_mkstr(js, "lastIndexOf", 11), js_mkfun(builtin_array_lastIndexOf)); 20999 + js_setprop(js, array_proto, js_mkstr(js, "reduceRight", 11), js_mkfun(builtin_array_reduceRight)); 21000 + js_setprop(js, array_proto, js_mkstr(js, "shift", 5), js_mkfun(builtin_array_shift)); 21001 + js_setprop(js, array_proto, js_mkstr(js, "unshift", 7), js_mkfun(builtin_array_unshift)); 21002 + js_setprop(js, array_proto, js_mkstr(js, "some", 4), js_mkfun(builtin_array_some)); 21003 + js_setprop(js, array_proto, js_mkstr(js, "sort", 4), js_mkfun(builtin_array_sort)); 21004 + js_setprop(js, array_proto, js_mkstr(js, "splice", 6), js_mkfun(builtin_array_splice)); 21005 + js_setprop(js, array_proto, js_mkstr(js, "copyWithin", 10), js_mkfun(builtin_array_copyWithin)); 21006 + js_setprop(js, array_proto, js_mkstr(js, "toReversed", 10), js_mkfun(builtin_array_toReversed)); 21007 + js_setprop(js, array_proto, js_mkstr(js, "toSorted", 8), js_mkfun(builtin_array_toSorted)); 21008 + js_setprop(js, array_proto, js_mkstr(js, "toSpliced", 9), js_mkfun(builtin_array_toSpliced)); 21009 + js_setprop(js, array_proto, js_mkstr(js, "with", 4), js_mkfun(builtin_array_with)); 21010 + js_setprop(js, array_proto, js_mkstr(js, "keys", 4), js_mkfun(builtin_array_keys)); 21011 + js_setprop(js, array_proto, js_mkstr(js, "values", 6), js_mkfun(builtin_array_values)); 21012 + js_setprop(js, array_proto, js_mkstr(js, "entries", 7), js_mkfun(builtin_array_entries)); 21013 + js_setprop(js, array_proto, js_mkstr(js, "toString", 8), js_mkfun(builtin_array_toString)); 21014 + js_setprop(js, array_proto, js_mkstr(js, "toLocaleString", 14), js_mkfun(builtin_array_toLocaleString)); 21021 21015 21022 21016 jsval_t string_proto = js_mkobj(js); 21023 21017 set_proto(js, string_proto, object_proto); 21024 - setprop(js, string_proto, js_mkstr(js, "indexOf", 7), js_mkfun(builtin_string_indexOf)); 21025 - setprop(js, string_proto, js_mkstr(js, "substring", 9), js_mkfun(builtin_string_substring)); 21026 - setprop(js, string_proto, js_mkstr(js, "substr", 6), js_mkfun(builtin_string_substr)); 21027 - setprop(js, string_proto, js_mkstr(js, "split", 5), js_mkfun(builtin_string_split)); 21028 - setprop(js, string_proto, js_mkstr(js, "slice", 5), js_mkfun(builtin_string_slice)); 21029 - setprop(js, string_proto, js_mkstr(js, "includes", 8), js_mkfun(builtin_string_includes)); 21030 - setprop(js, string_proto, js_mkstr(js, "startsWith", 10), js_mkfun(builtin_string_startsWith)); 21031 - setprop(js, string_proto, js_mkstr(js, "endsWith", 8), js_mkfun(builtin_string_endsWith)); 21032 - setprop(js, string_proto, js_mkstr(js, "replace", 7), js_mkfun(builtin_string_replace)); 21033 - setprop(js, string_proto, js_mkstr(js, "replaceAll", 10), js_mkfun(builtin_string_replaceAll)); 21034 - setprop(js, string_proto, js_mkstr(js, "match", 5), js_mkfun(builtin_string_match)); 21035 - setprop(js, string_proto, js_mkstr(js, "template", 8), js_mkfun(builtin_string_template)); 21036 - setprop(js, string_proto, js_mkstr(js, "charCodeAt", 10), js_mkfun(builtin_string_charCodeAt)); 21037 - setprop(js, string_proto, js_mkstr(js, "codePointAt", 11), js_mkfun(builtin_string_codePointAt)); 21038 - setprop(js, string_proto, js_mkstr(js, "toLowerCase", 11), js_mkfun(builtin_string_toLowerCase)); 21039 - setprop(js, string_proto, js_mkstr(js, "toUpperCase", 11), js_mkfun(builtin_string_toUpperCase)); 21040 - setprop(js, string_proto, js_mkstr(js, "toLocaleLowerCase", 17), js_mkfun(builtin_string_toLowerCase)); 21041 - setprop(js, string_proto, js_mkstr(js, "toLocaleUpperCase", 17), js_mkfun(builtin_string_toUpperCase)); 21042 - setprop(js, string_proto, js_mkstr(js, "trim", 4), js_mkfun(builtin_string_trim)); 21043 - setprop(js, string_proto, js_mkstr(js, "trimStart", 9), js_mkfun(builtin_string_trimStart)); 21044 - setprop(js, string_proto, js_mkstr(js, "trimEnd", 7), js_mkfun(builtin_string_trimEnd)); 21045 - setprop(js, string_proto, js_mkstr(js, "repeat", 6), js_mkfun(builtin_string_repeat)); 21046 - setprop(js, string_proto, js_mkstr(js, "padStart", 8), js_mkfun(builtin_string_padStart)); 21047 - setprop(js, string_proto, js_mkstr(js, "padEnd", 6), js_mkfun(builtin_string_padEnd)); 21048 - setprop(js, string_proto, js_mkstr(js, "charAt", 6), js_mkfun(builtin_string_charAt)); 21049 - setprop(js, string_proto, js_mkstr(js, "at", 2), js_mkfun(builtin_string_at)); 21050 - setprop(js, string_proto, js_mkstr(js, "lastIndexOf", 11), js_mkfun(builtin_string_lastIndexOf)); 21051 - setprop(js, string_proto, js_mkstr(js, "concat", 6), js_mkfun(builtin_string_concat)); 21052 - setprop(js, string_proto, js_mkstr(js, "search", 6), js_mkfun(builtin_string_search)); 21053 - setprop(js, string_proto, js_mkstr(js, "localeCompare", 13), js_mkfun(builtin_string_localeCompare)); 21054 - setprop(js, string_proto, js_mkstr(js, "valueOf", 7), js_mkfun(builtin_string_valueOf)); 21055 - setprop(js, string_proto, js_mkstr(js, "toString", 8), js_mkfun(builtin_string_toString)); 21018 + js_setprop(js, string_proto, js_mkstr(js, "indexOf", 7), js_mkfun(builtin_string_indexOf)); 21019 + js_setprop(js, string_proto, js_mkstr(js, "substring", 9), js_mkfun(builtin_string_substring)); 21020 + js_setprop(js, string_proto, js_mkstr(js, "substr", 6), js_mkfun(builtin_string_substr)); 21021 + js_setprop(js, string_proto, js_mkstr(js, "split", 5), js_mkfun(builtin_string_split)); 21022 + js_setprop(js, string_proto, js_mkstr(js, "slice", 5), js_mkfun(builtin_string_slice)); 21023 + js_setprop(js, string_proto, js_mkstr(js, "includes", 8), js_mkfun(builtin_string_includes)); 21024 + js_setprop(js, string_proto, js_mkstr(js, "startsWith", 10), js_mkfun(builtin_string_startsWith)); 21025 + js_setprop(js, string_proto, js_mkstr(js, "endsWith", 8), js_mkfun(builtin_string_endsWith)); 21026 + js_setprop(js, string_proto, js_mkstr(js, "replace", 7), js_mkfun(builtin_string_replace)); 21027 + js_setprop(js, string_proto, js_mkstr(js, "replaceAll", 10), js_mkfun(builtin_string_replaceAll)); 21028 + js_setprop(js, string_proto, js_mkstr(js, "match", 5), js_mkfun(builtin_string_match)); 21029 + js_setprop(js, string_proto, js_mkstr(js, "template", 8), js_mkfun(builtin_string_template)); 21030 + js_setprop(js, string_proto, js_mkstr(js, "charCodeAt", 10), js_mkfun(builtin_string_charCodeAt)); 21031 + js_setprop(js, string_proto, js_mkstr(js, "codePointAt", 11), js_mkfun(builtin_string_codePointAt)); 21032 + js_setprop(js, string_proto, js_mkstr(js, "toLowerCase", 11), js_mkfun(builtin_string_toLowerCase)); 21033 + js_setprop(js, string_proto, js_mkstr(js, "toUpperCase", 11), js_mkfun(builtin_string_toUpperCase)); 21034 + js_setprop(js, string_proto, js_mkstr(js, "toLocaleLowerCase", 17), js_mkfun(builtin_string_toLowerCase)); 21035 + js_setprop(js, string_proto, js_mkstr(js, "toLocaleUpperCase", 17), js_mkfun(builtin_string_toUpperCase)); 21036 + js_setprop(js, string_proto, js_mkstr(js, "trim", 4), js_mkfun(builtin_string_trim)); 21037 + js_setprop(js, string_proto, js_mkstr(js, "trimStart", 9), js_mkfun(builtin_string_trimStart)); 21038 + js_setprop(js, string_proto, js_mkstr(js, "trimEnd", 7), js_mkfun(builtin_string_trimEnd)); 21039 + js_setprop(js, string_proto, js_mkstr(js, "repeat", 6), js_mkfun(builtin_string_repeat)); 21040 + js_setprop(js, string_proto, js_mkstr(js, "padStart", 8), js_mkfun(builtin_string_padStart)); 21041 + js_setprop(js, string_proto, js_mkstr(js, "padEnd", 6), js_mkfun(builtin_string_padEnd)); 21042 + js_setprop(js, string_proto, js_mkstr(js, "charAt", 6), js_mkfun(builtin_string_charAt)); 21043 + js_setprop(js, string_proto, js_mkstr(js, "at", 2), js_mkfun(builtin_string_at)); 21044 + js_setprop(js, string_proto, js_mkstr(js, "lastIndexOf", 11), js_mkfun(builtin_string_lastIndexOf)); 21045 + js_setprop(js, string_proto, js_mkstr(js, "concat", 6), js_mkfun(builtin_string_concat)); 21046 + js_setprop(js, string_proto, js_mkstr(js, "search", 6), js_mkfun(builtin_string_search)); 21047 + js_setprop(js, string_proto, js_mkstr(js, "localeCompare", 13), js_mkfun(builtin_string_localeCompare)); 21048 + js_setprop(js, string_proto, js_mkstr(js, "valueOf", 7), js_mkfun(builtin_string_valueOf)); 21049 + js_setprop(js, string_proto, js_mkstr(js, "toString", 8), js_mkfun(builtin_string_toString)); 21056 21050 21057 21051 jsval_t number_proto = js_mkobj(js); 21058 21052 set_proto(js, number_proto, object_proto); 21059 - setprop(js, number_proto, js_mkstr(js, "toString", 8), js_mkfun(builtin_number_toString)); 21060 - setprop(js, number_proto, js_mkstr(js, "toFixed", 7), js_mkfun(builtin_number_toFixed)); 21061 - setprop(js, number_proto, js_mkstr(js, "toPrecision", 11), js_mkfun(builtin_number_toPrecision)); 21062 - setprop(js, number_proto, js_mkstr(js, "toExponential", 13), js_mkfun(builtin_number_toExponential)); 21063 - setprop(js, number_proto, js_mkstr(js, "valueOf", 7), js_mkfun(builtin_number_valueOf)); 21064 - setprop(js, number_proto, js_mkstr(js, "toLocaleString", 14), js_mkfun(builtin_number_toLocaleString)); 21053 + js_setprop(js, number_proto, js_mkstr(js, "toString", 8), js_mkfun(builtin_number_toString)); 21054 + js_setprop(js, number_proto, js_mkstr(js, "toFixed", 7), js_mkfun(builtin_number_toFixed)); 21055 + js_setprop(js, number_proto, js_mkstr(js, "toPrecision", 11), js_mkfun(builtin_number_toPrecision)); 21056 + js_setprop(js, number_proto, js_mkstr(js, "toExponential", 13), js_mkfun(builtin_number_toExponential)); 21057 + js_setprop(js, number_proto, js_mkstr(js, "valueOf", 7), js_mkfun(builtin_number_valueOf)); 21058 + js_setprop(js, number_proto, js_mkstr(js, "toLocaleString", 14), js_mkfun(builtin_number_toLocaleString)); 21065 21059 21066 21060 jsval_t boolean_proto = js_mkobj(js); 21067 21061 set_proto(js, boolean_proto, object_proto); 21068 - setprop(js, boolean_proto, js_mkstr(js, "valueOf", 7), js_mkfun(builtin_boolean_valueOf)); 21069 - setprop(js, boolean_proto, js_mkstr(js, "toString", 8), js_mkfun(builtin_boolean_toString)); 21062 + js_setprop(js, boolean_proto, js_mkstr(js, "valueOf", 7), js_mkfun(builtin_boolean_valueOf)); 21063 + js_setprop(js, boolean_proto, js_mkstr(js, "toString", 8), js_mkfun(builtin_boolean_toString)); 21070 21064 21071 21065 jsval_t bigint_proto = js_mkobj(js); 21072 21066 set_proto(js, bigint_proto, object_proto); 21073 - setprop(js, bigint_proto, js_mkstr(js, "toString", 8), js_mkfun(builtin_bigint_toString)); 21067 + js_setprop(js, bigint_proto, js_mkstr(js, "toString", 8), js_mkfun(builtin_bigint_toString)); 21074 21068 21075 21069 jsval_t error_proto = js_mkobj(js); 21076 21070 set_proto(js, error_proto, object_proto); 21077 - setprop(js, error_proto, ANT_STRING("name"), ANT_STRING("Error")); 21078 - setprop(js, error_proto, ANT_STRING("message"), js_mkstr(js, "", 0)); 21079 - setprop(js, error_proto, js_mkstr(js, "toString", 8), js_mkfun(builtin_Error_toString)); 21071 + js_setprop(js, error_proto, ANT_STRING("name"), ANT_STRING("Error")); 21072 + js_setprop(js, error_proto, ANT_STRING("message"), js_mkstr(js, "", 0)); 21073 + js_setprop(js, error_proto, js_mkstr(js, "toString", 8), js_mkfun(builtin_Error_toString)); 21080 21074 21081 21075 jsval_t err_ctor_obj = mkobj(js, 0); 21082 21076 set_proto(js, err_ctor_obj, function_proto); 21083 21077 set_slot(js, err_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_Error)); 21084 21078 js_setprop_nonconfigurable(js, err_ctor_obj, "prototype", 9, error_proto); 21085 - setprop(js, err_ctor_obj, ANT_STRING("name"), ANT_STRING("Error")); 21086 - setprop(js, glob, ANT_STRING("Error"), mkval(T_FUNC, vdata(err_ctor_obj))); 21087 - setprop(js, error_proto, js_mkstr(js, "constructor", 11), mkval(T_FUNC, vdata(err_ctor_obj))); 21079 + js_setprop(js, err_ctor_obj, ANT_STRING("name"), ANT_STRING("Error")); 21080 + js_setprop(js, glob, ANT_STRING("Error"), mkval(T_FUNC, vdata(err_ctor_obj))); 21081 + js_setprop(js, error_proto, js_mkstr(js, "constructor", 11), mkval(T_FUNC, vdata(err_ctor_obj))); 21088 21082 js_set_descriptor(js, error_proto, "constructor", 11, JS_DESC_W | JS_DESC_C); 21089 21083 21090 21084 #define REGISTER_ERROR_SUBTYPE(name_str) do { \ 21091 21085 jsval_t proto = js_mkobj(js); \ 21092 21086 set_proto(js, proto, error_proto); \ 21093 - setprop(js, proto, ANT_STRING("name"), ANT_STRING(name_str)); \ 21087 + js_setprop(js, proto, ANT_STRING("name"), ANT_STRING(name_str)); \ 21094 21088 jsval_t ctor = mkobj(js, 0); \ 21095 21089 set_proto(js, ctor, function_proto); \ 21096 21090 set_slot(js, ctor, SLOT_CFUNC, js_mkfun(builtin_Error)); \ 21097 21091 js_setprop_nonconfigurable(js, ctor, "prototype", 9, proto); \ 21098 - setprop(js, ctor, ANT_STRING("name"), ANT_STRING(name_str)); \ 21099 - setprop(js, proto, ANT_STRING("constructor"), mkval(T_FUNC, vdata(ctor))); \ 21092 + js_setprop(js, ctor, ANT_STRING("name"), ANT_STRING(name_str)); \ 21093 + js_setprop(js, proto, ANT_STRING("constructor"), mkval(T_FUNC, vdata(ctor))); \ 21100 21094 js_set_descriptor(js, proto, "constructor", 11, JS_DESC_W | JS_DESC_C); \ 21101 - setprop(js, glob, ANT_STRING(name_str), mkval(T_FUNC, vdata(ctor))); \ 21095 + js_setprop(js, glob, ANT_STRING(name_str), mkval(T_FUNC, vdata(ctor))); \ 21102 21096 } while(0) 21103 21097 21104 21098 REGISTER_ERROR_SUBTYPE("EvalError"); ··· 21113 21107 21114 21108 jsval_t proto = js_mkobj(js); 21115 21109 set_proto(js, proto, error_proto); 21116 - setprop(js, proto, ANT_STRING("name"), ANT_STRING("AggregateError")); 21110 + js_setprop(js, proto, ANT_STRING("name"), ANT_STRING("AggregateError")); 21117 21111 jsval_t ctor = mkobj(js, 0); 21118 21112 set_proto(js, ctor, function_proto); 21119 21113 set_slot(js, ctor, SLOT_CFUNC, js_mkfun(builtin_AggregateError)); 21120 21114 js_setprop_nonconfigurable(js, ctor, "prototype", 9, proto); 21121 - setprop(js, ctor, ANT_STRING("name"), ANT_STRING("AggregateError")); 21122 - setprop(js, proto, ANT_STRING("constructor"), mkval(T_FUNC, vdata(ctor))); 21115 + js_setprop(js, ctor, ANT_STRING("name"), ANT_STRING("AggregateError")); 21116 + js_setprop(js, proto, ANT_STRING("constructor"), mkval(T_FUNC, vdata(ctor))); 21123 21117 js_set_descriptor(js, proto, "constructor", 11, JS_DESC_W | JS_DESC_C); 21124 - setprop(js, glob, ANT_STRING("AggregateError"), mkval(T_FUNC, vdata(ctor))); 21118 + js_setprop(js, glob, ANT_STRING("AggregateError"), mkval(T_FUNC, vdata(ctor))); 21125 21119 21126 21120 jsval_t date_proto = js_mkobj(js); 21127 21121 set_proto(js, date_proto, object_proto); 21128 - setprop(js, date_proto, js_mkstr(js, "getTime", 7), js_mkfun(builtin_Date_getTime)); 21129 - setprop(js, date_proto, js_mkstr(js, "getFullYear", 11), js_mkfun(builtin_Date_getFullYear)); 21130 - setprop(js, date_proto, js_mkstr(js, "getMonth", 8), js_mkfun(builtin_Date_getMonth)); 21131 - setprop(js, date_proto, js_mkstr(js, "getDate", 7), js_mkfun(builtin_Date_getDate)); 21132 - setprop(js, date_proto, js_mkstr(js, "getHours", 8), js_mkfun(builtin_Date_getHours)); 21133 - setprop(js, date_proto, js_mkstr(js, "getMinutes", 10), js_mkfun(builtin_Date_getMinutes)); 21134 - setprop(js, date_proto, js_mkstr(js, "getSeconds", 10), js_mkfun(builtin_Date_getSeconds)); 21135 - setprop(js, date_proto, js_mkstr(js, "getMilliseconds", 15), js_mkfun(builtin_Date_getMilliseconds)); 21136 - setprop(js, date_proto, js_mkstr(js, "getDay", 6), js_mkfun(builtin_Date_getDay)); 21137 - setprop(js, date_proto, js_mkstr(js, "getTimezoneOffset", 17), js_mkfun(builtin_Date_getTimezoneOffset)); 21138 - setprop(js, date_proto, js_mkstr(js, "getUTCFullYear", 14), js_mkfun(builtin_Date_getUTCFullYear)); 21139 - setprop(js, date_proto, js_mkstr(js, "getUTCMonth", 11), js_mkfun(builtin_Date_getUTCMonth)); 21140 - setprop(js, date_proto, js_mkstr(js, "getUTCDate", 10), js_mkfun(builtin_Date_getUTCDate)); 21141 - setprop(js, date_proto, js_mkstr(js, "getUTCHours", 11), js_mkfun(builtin_Date_getUTCHours)); 21142 - setprop(js, date_proto, js_mkstr(js, "getUTCMinutes", 13), js_mkfun(builtin_Date_getUTCMinutes)); 21143 - setprop(js, date_proto, js_mkstr(js, "getUTCSeconds", 13), js_mkfun(builtin_Date_getUTCSeconds)); 21144 - setprop(js, date_proto, js_mkstr(js, "getUTCMilliseconds", 18), js_mkfun(builtin_Date_getUTCMilliseconds)); 21145 - setprop(js, date_proto, js_mkstr(js, "getUTCDay", 9), js_mkfun(builtin_Date_getUTCDay)); 21146 - setprop(js, date_proto, js_mkstr(js, "setTime", 7), js_mkfun(builtin_Date_setTime)); 21147 - setprop(js, date_proto, js_mkstr(js, "setMilliseconds", 15), js_mkfun(builtin_Date_setMilliseconds)); 21148 - setprop(js, date_proto, js_mkstr(js, "setSeconds", 10), js_mkfun(builtin_Date_setSeconds)); 21149 - setprop(js, date_proto, js_mkstr(js, "setMinutes", 10), js_mkfun(builtin_Date_setMinutes)); 21150 - setprop(js, date_proto, js_mkstr(js, "setHours", 8), js_mkfun(builtin_Date_setHours)); 21151 - setprop(js, date_proto, js_mkstr(js, "setDate", 7), js_mkfun(builtin_Date_setDate)); 21152 - setprop(js, date_proto, js_mkstr(js, "setMonth", 8), js_mkfun(builtin_Date_setMonth)); 21153 - setprop(js, date_proto, js_mkstr(js, "setFullYear", 11), js_mkfun(builtin_Date_setFullYear)); 21154 - setprop(js, date_proto, js_mkstr(js, "setUTCMilliseconds", 18), js_mkfun(builtin_Date_setUTCMilliseconds)); 21155 - setprop(js, date_proto, js_mkstr(js, "setUTCSeconds", 13), js_mkfun(builtin_Date_setUTCSeconds)); 21156 - setprop(js, date_proto, js_mkstr(js, "setUTCMinutes", 13), js_mkfun(builtin_Date_setUTCMinutes)); 21157 - setprop(js, date_proto, js_mkstr(js, "setUTCHours", 11), js_mkfun(builtin_Date_setUTCHours)); 21158 - setprop(js, date_proto, js_mkstr(js, "setUTCDate", 10), js_mkfun(builtin_Date_setUTCDate)); 21159 - setprop(js, date_proto, js_mkstr(js, "setUTCMonth", 11), js_mkfun(builtin_Date_setUTCMonth)); 21160 - setprop(js, date_proto, js_mkstr(js, "setUTCFullYear", 14), js_mkfun(builtin_Date_setUTCFullYear)); 21161 - setprop(js, date_proto, js_mkstr(js, "valueOf", 7), js_mkfun(builtin_Date_valueOf)); 21162 - setprop(js, date_proto, js_mkstr(js, "toISOString", 11), js_mkfun(builtin_Date_toISOString)); 21163 - setprop(js, date_proto, js_mkstr(js, "toUTCString", 11), js_mkfun(builtin_Date_toUTCString)); 21164 - setprop(js, date_proto, js_mkstr(js, "toGMTString", 11), js_mkfun(builtin_Date_toUTCString)); 21165 - setprop(js, date_proto, js_mkstr(js, "toString", 8), js_mkfun(builtin_Date_toString)); 21166 - setprop(js, date_proto, js_mkstr(js, "toDateString", 12), js_mkfun(builtin_Date_toDateString)); 21167 - setprop(js, date_proto, js_mkstr(js, "toTimeString", 12), js_mkfun(builtin_Date_toTimeString)); 21168 - setprop(js, date_proto, js_mkstr(js, "toLocaleDateString", 18), js_mkfun(builtin_Date_toLocaleDateString)); 21169 - setprop(js, date_proto, js_mkstr(js, "toLocaleTimeString", 18), js_mkfun(builtin_Date_toLocaleTimeString)); 21170 - setprop(js, date_proto, js_mkstr(js, "getYear", 7), js_mkfun(builtin_Date_getYear)); 21171 - setprop(js, date_proto, js_mkstr(js, "setYear", 7), js_mkfun(builtin_Date_setYear)); 21172 - setprop(js, date_proto, js_mkstr(js, "toJSON", 6), js_mkfun(builtin_Date_toJSON)); 21122 + js_setprop(js, date_proto, js_mkstr(js, "getTime", 7), js_mkfun(builtin_Date_getTime)); 21123 + js_setprop(js, date_proto, js_mkstr(js, "getFullYear", 11), js_mkfun(builtin_Date_getFullYear)); 21124 + js_setprop(js, date_proto, js_mkstr(js, "getMonth", 8), js_mkfun(builtin_Date_getMonth)); 21125 + js_setprop(js, date_proto, js_mkstr(js, "getDate", 7), js_mkfun(builtin_Date_getDate)); 21126 + js_setprop(js, date_proto, js_mkstr(js, "getHours", 8), js_mkfun(builtin_Date_getHours)); 21127 + js_setprop(js, date_proto, js_mkstr(js, "getMinutes", 10), js_mkfun(builtin_Date_getMinutes)); 21128 + js_setprop(js, date_proto, js_mkstr(js, "getSeconds", 10), js_mkfun(builtin_Date_getSeconds)); 21129 + js_setprop(js, date_proto, js_mkstr(js, "getMilliseconds", 15), js_mkfun(builtin_Date_getMilliseconds)); 21130 + js_setprop(js, date_proto, js_mkstr(js, "getDay", 6), js_mkfun(builtin_Date_getDay)); 21131 + js_setprop(js, date_proto, js_mkstr(js, "getTimezoneOffset", 17), js_mkfun(builtin_Date_getTimezoneOffset)); 21132 + js_setprop(js, date_proto, js_mkstr(js, "getUTCFullYear", 14), js_mkfun(builtin_Date_getUTCFullYear)); 21133 + js_setprop(js, date_proto, js_mkstr(js, "getUTCMonth", 11), js_mkfun(builtin_Date_getUTCMonth)); 21134 + js_setprop(js, date_proto, js_mkstr(js, "getUTCDate", 10), js_mkfun(builtin_Date_getUTCDate)); 21135 + js_setprop(js, date_proto, js_mkstr(js, "getUTCHours", 11), js_mkfun(builtin_Date_getUTCHours)); 21136 + js_setprop(js, date_proto, js_mkstr(js, "getUTCMinutes", 13), js_mkfun(builtin_Date_getUTCMinutes)); 21137 + js_setprop(js, date_proto, js_mkstr(js, "getUTCSeconds", 13), js_mkfun(builtin_Date_getUTCSeconds)); 21138 + js_setprop(js, date_proto, js_mkstr(js, "getUTCMilliseconds", 18), js_mkfun(builtin_Date_getUTCMilliseconds)); 21139 + js_setprop(js, date_proto, js_mkstr(js, "getUTCDay", 9), js_mkfun(builtin_Date_getUTCDay)); 21140 + js_setprop(js, date_proto, js_mkstr(js, "setTime", 7), js_mkfun(builtin_Date_setTime)); 21141 + js_setprop(js, date_proto, js_mkstr(js, "setMilliseconds", 15), js_mkfun(builtin_Date_setMilliseconds)); 21142 + js_setprop(js, date_proto, js_mkstr(js, "setSeconds", 10), js_mkfun(builtin_Date_setSeconds)); 21143 + js_setprop(js, date_proto, js_mkstr(js, "setMinutes", 10), js_mkfun(builtin_Date_setMinutes)); 21144 + js_setprop(js, date_proto, js_mkstr(js, "setHours", 8), js_mkfun(builtin_Date_setHours)); 21145 + js_setprop(js, date_proto, js_mkstr(js, "setDate", 7), js_mkfun(builtin_Date_setDate)); 21146 + js_setprop(js, date_proto, js_mkstr(js, "setMonth", 8), js_mkfun(builtin_Date_setMonth)); 21147 + js_setprop(js, date_proto, js_mkstr(js, "setFullYear", 11), js_mkfun(builtin_Date_setFullYear)); 21148 + js_setprop(js, date_proto, js_mkstr(js, "setUTCMilliseconds", 18), js_mkfun(builtin_Date_setUTCMilliseconds)); 21149 + js_setprop(js, date_proto, js_mkstr(js, "setUTCSeconds", 13), js_mkfun(builtin_Date_setUTCSeconds)); 21150 + js_setprop(js, date_proto, js_mkstr(js, "setUTCMinutes", 13), js_mkfun(builtin_Date_setUTCMinutes)); 21151 + js_setprop(js, date_proto, js_mkstr(js, "setUTCHours", 11), js_mkfun(builtin_Date_setUTCHours)); 21152 + js_setprop(js, date_proto, js_mkstr(js, "setUTCDate", 10), js_mkfun(builtin_Date_setUTCDate)); 21153 + js_setprop(js, date_proto, js_mkstr(js, "setUTCMonth", 11), js_mkfun(builtin_Date_setUTCMonth)); 21154 + js_setprop(js, date_proto, js_mkstr(js, "setUTCFullYear", 14), js_mkfun(builtin_Date_setUTCFullYear)); 21155 + js_setprop(js, date_proto, js_mkstr(js, "valueOf", 7), js_mkfun(builtin_Date_valueOf)); 21156 + js_setprop(js, date_proto, js_mkstr(js, "toISOString", 11), js_mkfun(builtin_Date_toISOString)); 21157 + js_setprop(js, date_proto, js_mkstr(js, "toUTCString", 11), js_mkfun(builtin_Date_toUTCString)); 21158 + js_setprop(js, date_proto, js_mkstr(js, "toGMTString", 11), js_mkfun(builtin_Date_toUTCString)); 21159 + js_setprop(js, date_proto, js_mkstr(js, "toString", 8), js_mkfun(builtin_Date_toString)); 21160 + js_setprop(js, date_proto, js_mkstr(js, "toDateString", 12), js_mkfun(builtin_Date_toDateString)); 21161 + js_setprop(js, date_proto, js_mkstr(js, "toTimeString", 12), js_mkfun(builtin_Date_toTimeString)); 21162 + js_setprop(js, date_proto, js_mkstr(js, "toLocaleDateString", 18), js_mkfun(builtin_Date_toLocaleDateString)); 21163 + js_setprop(js, date_proto, js_mkstr(js, "toLocaleTimeString", 18), js_mkfun(builtin_Date_toLocaleTimeString)); 21164 + js_setprop(js, date_proto, js_mkstr(js, "getYear", 7), js_mkfun(builtin_Date_getYear)); 21165 + js_setprop(js, date_proto, js_mkstr(js, "setYear", 7), js_mkfun(builtin_Date_setYear)); 21166 + js_setprop(js, date_proto, js_mkstr(js, "toJSON", 6), js_mkfun(builtin_Date_toJSON)); 21173 21167 21174 21168 jsval_t regexp_proto = js_mkobj(js); 21175 21169 set_proto(js, regexp_proto, object_proto); 21176 - setprop(js, regexp_proto, js_mkstr(js, "test", 4), js_mkfun(builtin_regexp_test)); 21177 - setprop(js, regexp_proto, js_mkstr(js, "exec", 4), js_mkfun(builtin_regexp_exec)); 21178 - setprop(js, regexp_proto, js_mkstr(js, "toString", 8), js_mkfun(builtin_regexp_toString)); 21170 + js_setprop(js, regexp_proto, js_mkstr(js, "test", 4), js_mkfun(builtin_regexp_test)); 21171 + js_setprop(js, regexp_proto, js_mkstr(js, "exec", 4), js_mkfun(builtin_regexp_exec)); 21172 + js_setprop(js, regexp_proto, js_mkstr(js, "toString", 8), js_mkfun(builtin_regexp_toString)); 21179 21173 21180 21174 jsval_t promise_proto = js_mkobj(js); 21181 21175 set_proto(js, promise_proto, object_proto); 21182 - setprop(js, promise_proto, js_mkstr(js, "then", 4), js_mkfun(builtin_promise_then)); 21183 - setprop(js, promise_proto, js_mkstr(js, "catch", 5), js_mkfun(builtin_promise_catch)); 21184 - setprop(js, promise_proto, js_mkstr(js, "finally", 7), js_mkfun(builtin_promise_finally)); 21176 + js_setprop(js, promise_proto, js_mkstr(js, "then", 4), js_mkfun(builtin_promise_then)); 21177 + js_setprop(js, promise_proto, js_mkstr(js, "catch", 5), js_mkfun(builtin_promise_catch)); 21178 + js_setprop(js, promise_proto, js_mkstr(js, "finally", 7), js_mkfun(builtin_promise_finally)); 21185 21179 // Symbol.toStringTag is set in init_symbol_module after symbols are initialized 21186 21180 21187 21181 jsval_t obj_func_obj = mkobj(js, 0); 21188 21182 set_proto(js, obj_func_obj, function_proto); 21189 21183 set_slot(js, obj_func_obj, SLOT_BUILTIN, tov(BUILTIN_OBJECT)); 21190 - setprop(js, obj_func_obj, js_mkstr(js, "keys", 4), js_mkfun(builtin_object_keys)); 21191 - setprop(js, obj_func_obj, js_mkstr(js, "values", 6), js_mkfun(builtin_object_values)); 21192 - setprop(js, obj_func_obj, js_mkstr(js, "entries", 7), js_mkfun(builtin_object_entries)); 21193 - setprop(js, obj_func_obj, js_mkstr(js, "getPrototypeOf", 14), js_mkfun(builtin_object_getPrototypeOf)); 21194 - setprop(js, obj_func_obj, js_mkstr(js, "setPrototypeOf", 14), js_mkfun(builtin_object_setPrototypeOf)); 21195 - setprop(js, obj_func_obj, js_mkstr(js, "create", 6), js_mkfun(builtin_object_create)); 21196 - setprop(js, obj_func_obj, js_mkstr(js, "hasOwn", 6), js_mkfun(builtin_object_hasOwn)); 21197 - setprop(js, obj_func_obj, js_mkstr(js, "defineProperty", 14), js_mkfun(builtin_object_defineProperty)); 21198 - setprop(js, obj_func_obj, js_mkstr(js, "defineProperties", 16), js_mkfun(builtin_object_defineProperties)); 21199 - setprop(js, obj_func_obj, js_mkstr(js, "assign", 6), js_mkfun(builtin_object_assign)); 21200 - setprop(js, obj_func_obj, js_mkstr(js, "freeze", 6), js_mkfun(builtin_object_freeze)); 21201 - setprop(js, obj_func_obj, js_mkstr(js, "isFrozen", 8), js_mkfun(builtin_object_isFrozen)); 21202 - setprop(js, obj_func_obj, js_mkstr(js, "seal", 4), js_mkfun(builtin_object_seal)); 21203 - setprop(js, obj_func_obj, js_mkstr(js, "isSealed", 8), js_mkfun(builtin_object_isSealed)); 21204 - setprop(js, obj_func_obj, js_mkstr(js, "fromEntries", 11), js_mkfun(builtin_object_fromEntries)); 21205 - setprop(js, obj_func_obj, js_mkstr(js, "getOwnPropertyDescriptor", 24), js_mkfun(builtin_object_getOwnPropertyDescriptor)); 21206 - setprop(js, obj_func_obj, js_mkstr(js, "getOwnPropertyNames", 19), js_mkfun(builtin_object_getOwnPropertyNames)); 21207 - setprop(js, obj_func_obj, js_mkstr(js, "getOwnPropertySymbols", 21), js_mkfun(builtin_object_getOwnPropertySymbols)); 21208 - setprop(js, obj_func_obj, js_mkstr(js, "isExtensible", 12), js_mkfun(builtin_object_isExtensible)); 21209 - setprop(js, obj_func_obj, js_mkstr(js, "preventExtensions", 17), js_mkfun(builtin_object_preventExtensions)); 21210 - setprop(js, obj_func_obj, ANT_STRING("name"), ANT_STRING("Object")); 21184 + js_setprop(js, obj_func_obj, js_mkstr(js, "keys", 4), js_mkfun(builtin_object_keys)); 21185 + js_setprop(js, obj_func_obj, js_mkstr(js, "values", 6), js_mkfun(builtin_object_values)); 21186 + js_setprop(js, obj_func_obj, js_mkstr(js, "entries", 7), js_mkfun(builtin_object_entries)); 21187 + js_setprop(js, obj_func_obj, js_mkstr(js, "getPrototypeOf", 14), js_mkfun(builtin_object_getPrototypeOf)); 21188 + js_setprop(js, obj_func_obj, js_mkstr(js, "setPrototypeOf", 14), js_mkfun(builtin_object_setPrototypeOf)); 21189 + js_setprop(js, obj_func_obj, js_mkstr(js, "create", 6), js_mkfun(builtin_object_create)); 21190 + js_setprop(js, obj_func_obj, js_mkstr(js, "hasOwn", 6), js_mkfun(builtin_object_hasOwn)); 21191 + js_setprop(js, obj_func_obj, js_mkstr(js, "defineProperty", 14), js_mkfun(builtin_object_defineProperty)); 21192 + js_setprop(js, obj_func_obj, js_mkstr(js, "defineProperties", 16), js_mkfun(builtin_object_defineProperties)); 21193 + js_setprop(js, obj_func_obj, js_mkstr(js, "assign", 6), js_mkfun(builtin_object_assign)); 21194 + js_setprop(js, obj_func_obj, js_mkstr(js, "freeze", 6), js_mkfun(builtin_object_freeze)); 21195 + js_setprop(js, obj_func_obj, js_mkstr(js, "isFrozen", 8), js_mkfun(builtin_object_isFrozen)); 21196 + js_setprop(js, obj_func_obj, js_mkstr(js, "seal", 4), js_mkfun(builtin_object_seal)); 21197 + js_setprop(js, obj_func_obj, js_mkstr(js, "isSealed", 8), js_mkfun(builtin_object_isSealed)); 21198 + js_setprop(js, obj_func_obj, js_mkstr(js, "fromEntries", 11), js_mkfun(builtin_object_fromEntries)); 21199 + js_setprop(js, obj_func_obj, js_mkstr(js, "getOwnPropertyDescriptor", 24), js_mkfun(builtin_object_getOwnPropertyDescriptor)); 21200 + js_setprop(js, obj_func_obj, js_mkstr(js, "getOwnPropertyNames", 19), js_mkfun(builtin_object_getOwnPropertyNames)); 21201 + js_setprop(js, obj_func_obj, js_mkstr(js, "getOwnPropertySymbols", 21), js_mkfun(builtin_object_getOwnPropertySymbols)); 21202 + js_setprop(js, obj_func_obj, js_mkstr(js, "isExtensible", 12), js_mkfun(builtin_object_isExtensible)); 21203 + js_setprop(js, obj_func_obj, js_mkstr(js, "preventExtensions", 17), js_mkfun(builtin_object_preventExtensions)); 21204 + js_setprop(js, obj_func_obj, ANT_STRING("name"), ANT_STRING("Object")); 21211 21205 js_setprop_nonconfigurable(js, obj_func_obj, "prototype", 9, object_proto); 21212 - setprop(js, glob, js_mkstr(js, "Object", 6), mkval(T_FUNC, vdata(obj_func_obj))); 21206 + js_setprop(js, glob, js_mkstr(js, "Object", 6), mkval(T_FUNC, vdata(obj_func_obj))); 21213 21207 21214 21208 jsval_t func_ctor_obj = mkobj(js, 0); 21215 21209 set_proto(js, func_ctor_obj, function_proto); 21216 21210 set_slot(js, func_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_Function)); 21217 21211 js_setprop_nonconfigurable(js, func_ctor_obj, "prototype", 9, function_proto); 21218 - setprop(js, func_ctor_obj, js_mkstr(js, "length", 6), tov(1.0)); 21212 + js_setprop(js, func_ctor_obj, js_mkstr(js, "length", 6), tov(1.0)); 21219 21213 js_set_descriptor(js, func_ctor_obj, "length", 6, JS_DESC_C); 21220 - setprop(js, func_ctor_obj, ANT_STRING("name"), ANT_STRING("Function")); 21221 - setprop(js, glob, js_mkstr(js, "Function", 8), mkval(T_FUNC, vdata(func_ctor_obj))); 21214 + js_setprop(js, func_ctor_obj, ANT_STRING("name"), ANT_STRING("Function")); 21215 + js_setprop(js, glob, js_mkstr(js, "Function", 8), mkval(T_FUNC, vdata(func_ctor_obj))); 21222 21216 21223 21217 jsval_t async_func_proto_obj = js_mkobj(js); 21224 21218 set_proto(js, async_func_proto_obj, function_proto); ··· 21230 21224 set_proto(js, async_func_ctor_obj, function_proto); 21231 21225 set_slot(js, async_func_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_AsyncFunction)); 21232 21226 js_setprop_nonconfigurable(js, async_func_ctor_obj, "prototype", 9, async_func_proto); 21233 - setprop(js, async_func_ctor_obj, js_mkstr(js, "length", 6), tov(1.0)); 21227 + js_setprop(js, async_func_ctor_obj, js_mkstr(js, "length", 6), tov(1.0)); 21234 21228 js_set_descriptor(js, async_func_ctor_obj, "length", 6, JS_DESC_C); 21235 - setprop(js, async_func_ctor_obj, ANT_STRING("name"), ANT_STRING("AsyncFunction")); 21229 + js_setprop(js, async_func_ctor_obj, ANT_STRING("name"), ANT_STRING("AsyncFunction")); 21236 21230 jsval_t async_func_ctor = mkval(T_FUNC, vdata(async_func_ctor_obj)); 21237 21231 21238 - setprop(js, async_func_proto_obj, js_mkstr(js, "constructor", 11), async_func_ctor); 21232 + js_setprop(js, async_func_proto_obj, js_mkstr(js, "constructor", 11), async_func_ctor); 21239 21233 js_set_descriptor(js, async_func_proto_obj, "constructor", 11, JS_DESC_W | JS_DESC_C); 21240 21234 21241 21235 jsval_t str_ctor_obj = mkobj(js, 0); 21242 21236 set_proto(js, str_ctor_obj, function_proto); 21243 21237 set_slot(js, str_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_String)); 21244 21238 js_setprop_nonconfigurable(js, str_ctor_obj, "prototype", 9, string_proto); 21245 - setprop(js, str_ctor_obj, js_mkstr(js, "fromCharCode", 12), js_mkfun(builtin_string_fromCharCode)); 21246 - setprop(js, str_ctor_obj, js_mkstr(js, "fromCodePoint", 13), js_mkfun(builtin_string_fromCodePoint)); 21247 - setprop(js, str_ctor_obj, ANT_STRING("name"), ANT_STRING("String")); 21248 - setprop(js, glob, js_mkstr(js, "String", 6), mkval(T_FUNC, vdata(str_ctor_obj))); 21239 + js_setprop(js, str_ctor_obj, js_mkstr(js, "fromCharCode", 12), js_mkfun(builtin_string_fromCharCode)); 21240 + js_setprop(js, str_ctor_obj, js_mkstr(js, "fromCodePoint", 13), js_mkfun(builtin_string_fromCodePoint)); 21241 + js_setprop(js, str_ctor_obj, ANT_STRING("name"), ANT_STRING("String")); 21242 + js_setprop(js, glob, js_mkstr(js, "String", 6), mkval(T_FUNC, vdata(str_ctor_obj))); 21249 21243 21250 21244 jsval_t number_ctor_obj = mkobj(js, 0); 21251 21245 set_proto(js, number_ctor_obj, function_proto); 21252 21246 21253 21247 set_slot(js, number_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_Number)); 21254 - setprop(js, number_ctor_obj, js_mkstr(js, "isNaN", 5), js_mkfun(builtin_Number_isNaN)); 21255 - setprop(js, number_ctor_obj, js_mkstr(js, "isFinite", 8), js_mkfun(builtin_Number_isFinite)); 21256 - setprop(js, number_ctor_obj, js_mkstr(js, "isInteger", 9), js_mkfun(builtin_Number_isInteger)); 21257 - setprop(js, number_ctor_obj, js_mkstr(js, "isSafeInteger", 13), js_mkfun(builtin_Number_isSafeInteger)); 21248 + js_setprop(js, number_ctor_obj, js_mkstr(js, "isNaN", 5), js_mkfun(builtin_Number_isNaN)); 21249 + js_setprop(js, number_ctor_obj, js_mkstr(js, "isFinite", 8), js_mkfun(builtin_Number_isFinite)); 21250 + js_setprop(js, number_ctor_obj, js_mkstr(js, "isInteger", 9), js_mkfun(builtin_Number_isInteger)); 21251 + js_setprop(js, number_ctor_obj, js_mkstr(js, "isSafeInteger", 13), js_mkfun(builtin_Number_isSafeInteger)); 21258 21252 21259 - setprop(js, number_ctor_obj, js_mkstr(js, "MAX_VALUE", 9), tov(1.7976931348623157e+308)); 21260 - setprop(js, number_ctor_obj, js_mkstr(js, "MIN_VALUE", 9), tov(5e-324)); 21261 - setprop(js, number_ctor_obj, js_mkstr(js, "MAX_SAFE_INTEGER", 16), tov(9007199254740991.0)); 21262 - setprop(js, number_ctor_obj, js_mkstr(js, "MIN_SAFE_INTEGER", 16), tov(-9007199254740991.0)); 21263 - setprop(js, number_ctor_obj, js_mkstr(js, "POSITIVE_INFINITY", 17), tov(JS_INF)); 21264 - setprop(js, number_ctor_obj, js_mkstr(js, "NEGATIVE_INFINITY", 17), tov(JS_NEG_INF)); 21265 - setprop(js, number_ctor_obj, js_mkstr(js, "NaN", 3), tov(JS_NAN)); 21266 - setprop(js, number_ctor_obj, js_mkstr(js, "EPSILON", 7), tov(2.220446049250313e-16)); 21253 + js_setprop(js, number_ctor_obj, js_mkstr(js, "MAX_VALUE", 9), tov(1.7976931348623157e+308)); 21254 + js_setprop(js, number_ctor_obj, js_mkstr(js, "MIN_VALUE", 9), tov(5e-324)); 21255 + js_setprop(js, number_ctor_obj, js_mkstr(js, "MAX_SAFE_INTEGER", 16), tov(9007199254740991.0)); 21256 + js_setprop(js, number_ctor_obj, js_mkstr(js, "MIN_SAFE_INTEGER", 16), tov(-9007199254740991.0)); 21257 + js_setprop(js, number_ctor_obj, js_mkstr(js, "POSITIVE_INFINITY", 17), tov(JS_INF)); 21258 + js_setprop(js, number_ctor_obj, js_mkstr(js, "NEGATIVE_INFINITY", 17), tov(JS_NEG_INF)); 21259 + js_setprop(js, number_ctor_obj, js_mkstr(js, "NaN", 3), tov(JS_NAN)); 21260 + js_setprop(js, number_ctor_obj, js_mkstr(js, "EPSILON", 7), tov(2.220446049250313e-16)); 21267 21261 21268 21262 js_setprop_nonconfigurable(js, number_ctor_obj, "prototype", 9, number_proto); 21269 - setprop(js, number_ctor_obj, ANT_STRING("name"), ANT_STRING("Number")); 21270 - setprop(js, glob, js_mkstr(js, "Number", 6), mkval(T_FUNC, vdata(number_ctor_obj))); 21263 + js_setprop(js, number_ctor_obj, ANT_STRING("name"), ANT_STRING("Number")); 21264 + js_setprop(js, glob, js_mkstr(js, "Number", 6), mkval(T_FUNC, vdata(number_ctor_obj))); 21271 21265 21272 21266 jsval_t bool_ctor_obj = mkobj(js, 0); 21273 21267 set_proto(js, bool_ctor_obj, function_proto); 21274 21268 set_slot(js, bool_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_Boolean)); 21275 21269 js_setprop_nonconfigurable(js, bool_ctor_obj, "prototype", 9, boolean_proto); 21276 - setprop(js, bool_ctor_obj, ANT_STRING("name"), ANT_STRING("Boolean")); 21277 - setprop(js, glob, js_mkstr(js, "Boolean", 7), mkval(T_FUNC, vdata(bool_ctor_obj))); 21270 + js_setprop(js, bool_ctor_obj, ANT_STRING("name"), ANT_STRING("Boolean")); 21271 + js_setprop(js, glob, js_mkstr(js, "Boolean", 7), mkval(T_FUNC, vdata(bool_ctor_obj))); 21278 21272 21279 21273 jsval_t arr_ctor_obj = mkobj(js, 0); 21280 21274 set_proto(js, arr_ctor_obj, function_proto); 21281 21275 set_slot(js, arr_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_Array)); 21282 21276 js_setprop_nonconfigurable(js, arr_ctor_obj, "prototype", 9, array_proto); 21283 - setprop(js, arr_ctor_obj, js_mkstr(js, "isArray", 7), js_mkfun(builtin_Array_isArray)); 21284 - setprop(js, arr_ctor_obj, js_mkstr(js, "from", 4), js_mkfun(builtin_Array_from)); 21285 - setprop(js, arr_ctor_obj, js_mkstr(js, "of", 2), js_mkfun(builtin_Array_of)); 21286 - setprop(js, arr_ctor_obj, js_mkstr(js, "length", 6), tov(1.0)); 21277 + js_setprop(js, arr_ctor_obj, js_mkstr(js, "isArray", 7), js_mkfun(builtin_Array_isArray)); 21278 + js_setprop(js, arr_ctor_obj, js_mkstr(js, "from", 4), js_mkfun(builtin_Array_from)); 21279 + js_setprop(js, arr_ctor_obj, js_mkstr(js, "of", 2), js_mkfun(builtin_Array_of)); 21280 + js_setprop(js, arr_ctor_obj, js_mkstr(js, "length", 6), tov(1.0)); 21287 21281 js_set_descriptor(js, arr_ctor_obj, "length", 6, JS_DESC_C); 21288 - setprop(js, arr_ctor_obj, ANT_STRING("name"), ANT_STRING("Array")); 21289 - setprop(js, glob, js_mkstr(js, "Array", 5), mkval(T_FUNC, vdata(arr_ctor_obj))); 21282 + js_setprop(js, arr_ctor_obj, ANT_STRING("name"), ANT_STRING("Array")); 21283 + js_setprop(js, glob, js_mkstr(js, "Array", 5), mkval(T_FUNC, vdata(arr_ctor_obj))); 21290 21284 21291 21285 jsval_t proxy_ctor_obj = mkobj(js, 0); 21292 21286 set_proto(js, proxy_ctor_obj, function_proto); 21293 21287 set_slot(js, proxy_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_Proxy)); 21294 - setprop(js, proxy_ctor_obj, js_mkstr(js, "revocable", 9), js_mkfun(builtin_Proxy_revocable)); 21295 - setprop(js, proxy_ctor_obj, ANT_STRING("name"), ANT_STRING("Proxy")); 21296 - setprop(js, glob, js_mkstr(js, "Proxy", 5), mkval(T_FUNC, vdata(proxy_ctor_obj))); 21288 + js_setprop(js, proxy_ctor_obj, js_mkstr(js, "revocable", 9), js_mkfun(builtin_Proxy_revocable)); 21289 + js_setprop(js, proxy_ctor_obj, ANT_STRING("name"), ANT_STRING("Proxy")); 21290 + js_setprop(js, glob, js_mkstr(js, "Proxy", 5), mkval(T_FUNC, vdata(proxy_ctor_obj))); 21297 21291 21298 21292 jsval_t regex_ctor_obj = mkobj(js, 0); 21299 21293 set_proto(js, regex_ctor_obj, function_proto); 21300 21294 set_slot(js, regex_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_RegExp)); 21301 21295 js_setprop_nonconfigurable(js, regex_ctor_obj, "prototype", 9, regexp_proto); 21302 - setprop(js, regex_ctor_obj, ANT_STRING("name"), ANT_STRING("RegExp")); 21303 - setprop(js, glob, js_mkstr(js, "RegExp", 6), mkval(T_FUNC, vdata(regex_ctor_obj))); 21296 + js_setprop(js, regex_ctor_obj, ANT_STRING("name"), ANT_STRING("RegExp")); 21297 + js_setprop(js, glob, js_mkstr(js, "RegExp", 6), mkval(T_FUNC, vdata(regex_ctor_obj))); 21304 21298 21305 21299 jsval_t date_ctor_obj = mkobj(js, 0); 21306 21300 set_proto(js, date_ctor_obj, function_proto); 21307 21301 set_slot(js, date_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_Date)); 21308 - setprop(js, date_ctor_obj, js_mkstr(js, "now", 3), js_mkfun(builtin_Date_now)); 21309 - setprop(js, date_ctor_obj, js_mkstr(js, "UTC", 3), js_mkfun(builtin_Date_UTC)); 21302 + js_setprop(js, date_ctor_obj, js_mkstr(js, "now", 3), js_mkfun(builtin_Date_now)); 21303 + js_setprop(js, date_ctor_obj, js_mkstr(js, "UTC", 3), js_mkfun(builtin_Date_UTC)); 21310 21304 js_setprop_nonconfigurable(js, date_ctor_obj, "prototype", 9, date_proto); 21311 - setprop(js, date_ctor_obj, ANT_STRING("name"), ANT_STRING("Date")); 21312 - setprop(js, glob, js_mkstr(js, "Date", 4), mkval(T_FUNC, vdata(date_ctor_obj))); 21305 + js_setprop(js, date_ctor_obj, ANT_STRING("name"), ANT_STRING("Date")); 21306 + js_setprop(js, glob, js_mkstr(js, "Date", 4), mkval(T_FUNC, vdata(date_ctor_obj))); 21313 21307 21314 21308 jsval_t p_ctor_obj = mkobj(js, 0); 21315 21309 set_proto(js, p_ctor_obj, function_proto); 21316 21310 set_slot(js, p_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_Promise)); 21317 - setprop(js, p_ctor_obj, js_mkstr(js, "resolve", 7), js_mkfun(builtin_Promise_resolve)); 21318 - setprop(js, p_ctor_obj, js_mkstr(js, "reject", 6), js_mkfun(builtin_Promise_reject)); 21319 - setprop(js, p_ctor_obj, js_mkstr(js, "try", 3), js_mkfun(builtin_Promise_try)); 21320 - setprop(js, p_ctor_obj, js_mkstr(js, "all", 3), js_mkfun(builtin_Promise_all)); 21321 - setprop(js, p_ctor_obj, js_mkstr(js, "race", 4), js_mkfun(builtin_Promise_race)); 21322 - setprop(js, p_ctor_obj, js_mkstr(js, "any", 3), js_mkfun(builtin_Promise_any)); 21311 + js_setprop(js, p_ctor_obj, js_mkstr(js, "resolve", 7), js_mkfun(builtin_Promise_resolve)); 21312 + js_setprop(js, p_ctor_obj, js_mkstr(js, "reject", 6), js_mkfun(builtin_Promise_reject)); 21313 + js_setprop(js, p_ctor_obj, js_mkstr(js, "try", 3), js_mkfun(builtin_Promise_try)); 21314 + js_setprop(js, p_ctor_obj, js_mkstr(js, "all", 3), js_mkfun(builtin_Promise_all)); 21315 + js_setprop(js, p_ctor_obj, js_mkstr(js, "race", 4), js_mkfun(builtin_Promise_race)); 21316 + js_setprop(js, p_ctor_obj, js_mkstr(js, "any", 3), js_mkfun(builtin_Promise_any)); 21323 21317 js_setprop_nonconfigurable(js, p_ctor_obj, "prototype", 9, promise_proto); 21324 - setprop(js, p_ctor_obj, ANT_STRING("name"), ANT_STRING("Promise")); 21325 - setprop(js, glob, js_mkstr(js, "Promise", 7), mkval(T_FUNC, vdata(p_ctor_obj))); 21318 + js_setprop(js, p_ctor_obj, ANT_STRING("name"), ANT_STRING("Promise")); 21319 + js_setprop(js, glob, js_mkstr(js, "Promise", 7), mkval(T_FUNC, vdata(p_ctor_obj))); 21326 21320 21327 21321 jsval_t bigint_ctor_obj = mkobj(js, 0); 21328 21322 set_proto(js, bigint_ctor_obj, function_proto); 21329 21323 set_slot(js, bigint_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_BigInt)); 21330 - setprop(js, bigint_ctor_obj, js_mkstr(js, "asIntN", 6), js_mkfun(builtin_BigInt_asIntN)); 21331 - setprop(js, bigint_ctor_obj, js_mkstr(js, "asUintN", 7), js_mkfun(builtin_BigInt_asUintN)); 21324 + js_setprop(js, bigint_ctor_obj, js_mkstr(js, "asIntN", 6), js_mkfun(builtin_BigInt_asIntN)); 21325 + js_setprop(js, bigint_ctor_obj, js_mkstr(js, "asUintN", 7), js_mkfun(builtin_BigInt_asUintN)); 21332 21326 js_setprop_nonconfigurable(js, bigint_ctor_obj, "prototype", 9, bigint_proto); 21333 - setprop(js, bigint_ctor_obj, ANT_STRING("name"), ANT_STRING("BigInt")); 21334 - setprop(js, glob, js_mkstr(js, "BigInt", 6), mkval(T_FUNC, vdata(bigint_ctor_obj))); 21327 + js_setprop(js, bigint_ctor_obj, ANT_STRING("name"), ANT_STRING("BigInt")); 21328 + js_setprop(js, glob, js_mkstr(js, "BigInt", 6), mkval(T_FUNC, vdata(bigint_ctor_obj))); 21335 21329 21336 - setprop(js, glob, js_mkstr(js, "eval", 4), js_mkfun(builtin_eval)); 21337 - setprop(js, glob, js_mkstr(js, "parseInt", 8), js_mkfun(builtin_parseInt)); 21338 - setprop(js, glob, js_mkstr(js, "parseFloat", 10), js_mkfun(builtin_parseFloat)); 21339 - setprop(js, glob, js_mkstr(js, "isNaN", 5), js_mkfun(builtin_global_isNaN)); 21340 - setprop(js, glob, js_mkstr(js, "isFinite", 8), js_mkfun(builtin_global_isFinite)); 21341 - setprop(js, glob, js_mkstr(js, "btoa", 4), js_mkfun(builtin_btoa)); 21342 - setprop(js, glob, js_mkstr(js, "atob", 4), js_mkfun(builtin_atob)); 21343 - setprop(js, glob, js_mkstr(js, "NaN", 3), tov(JS_NAN)); 21344 - setprop(js, glob, js_mkstr(js, "Infinity", 8), tov(JS_INF)); 21345 - setprop(js, glob, js_mkstr(js, "undefined", 9), js_mkundef()); 21330 + js_setprop(js, glob, js_mkstr(js, "eval", 4), js_mkfun(builtin_eval)); 21331 + js_setprop(js, glob, js_mkstr(js, "parseInt", 8), js_mkfun(builtin_parseInt)); 21332 + js_setprop(js, glob, js_mkstr(js, "parseFloat", 10), js_mkfun(builtin_parseFloat)); 21333 + js_setprop(js, glob, js_mkstr(js, "isNaN", 5), js_mkfun(builtin_global_isNaN)); 21334 + js_setprop(js, glob, js_mkstr(js, "isFinite", 8), js_mkfun(builtin_global_isFinite)); 21335 + js_setprop(js, glob, js_mkstr(js, "btoa", 4), js_mkfun(builtin_btoa)); 21336 + js_setprop(js, glob, js_mkstr(js, "atob", 4), js_mkfun(builtin_atob)); 21337 + js_setprop(js, glob, js_mkstr(js, "NaN", 3), tov(JS_NAN)); 21338 + js_setprop(js, glob, js_mkstr(js, "Infinity", 8), tov(JS_INF)); 21339 + js_setprop(js, glob, js_mkstr(js, "undefined", 9), js_mkundef()); 21346 21340 21347 21341 jsval_t math_obj = mkobj(js, 0); 21348 21342 set_proto(js, math_obj, object_proto); 21349 - setprop(js, math_obj, js_mkstr(js, "E", 1), tov(M_E)); 21350 - setprop(js, math_obj, js_mkstr(js, "LN10", 4), tov(M_LN10)); 21351 - setprop(js, math_obj, js_mkstr(js, "LN2", 3), tov(M_LN2)); 21352 - setprop(js, math_obj, js_mkstr(js, "LOG10E", 6), tov(M_LOG10E)); 21353 - setprop(js, math_obj, js_mkstr(js, "LOG2E", 5), tov(M_LOG2E)); 21354 - setprop(js, math_obj, js_mkstr(js, "PI", 2), tov(M_PI)); 21355 - setprop(js, math_obj, js_mkstr(js, "SQRT1_2", 7), tov(M_SQRT1_2)); 21356 - setprop(js, math_obj, js_mkstr(js, "SQRT2", 5), tov(M_SQRT2)); 21357 - setprop(js, math_obj, js_mkstr(js, "abs", 3), js_mkfun(builtin_Math_abs)); 21358 - setprop(js, math_obj, js_mkstr(js, "acos", 4), js_mkfun(builtin_Math_acos)); 21359 - setprop(js, math_obj, js_mkstr(js, "acosh", 5), js_mkfun(builtin_Math_acosh)); 21360 - setprop(js, math_obj, js_mkstr(js, "asin", 4), js_mkfun(builtin_Math_asin)); 21361 - setprop(js, math_obj, js_mkstr(js, "asinh", 5), js_mkfun(builtin_Math_asinh)); 21362 - setprop(js, math_obj, js_mkstr(js, "atan", 4), js_mkfun(builtin_Math_atan)); 21363 - setprop(js, math_obj, js_mkstr(js, "atanh", 5), js_mkfun(builtin_Math_atanh)); 21364 - setprop(js, math_obj, js_mkstr(js, "atan2", 5), js_mkfun(builtin_Math_atan2)); 21365 - setprop(js, math_obj, js_mkstr(js, "cbrt", 4), js_mkfun(builtin_Math_cbrt)); 21366 - setprop(js, math_obj, js_mkstr(js, "ceil", 4), js_mkfun(builtin_Math_ceil)); 21367 - setprop(js, math_obj, js_mkstr(js, "clz32", 5), js_mkfun(builtin_Math_clz32)); 21368 - setprop(js, math_obj, js_mkstr(js, "cos", 3), js_mkfun(builtin_Math_cos)); 21369 - setprop(js, math_obj, js_mkstr(js, "cosh", 4), js_mkfun(builtin_Math_cosh)); 21370 - setprop(js, math_obj, js_mkstr(js, "exp", 3), js_mkfun(builtin_Math_exp)); 21371 - setprop(js, math_obj, js_mkstr(js, "expm1", 5), js_mkfun(builtin_Math_expm1)); 21372 - setprop(js, math_obj, js_mkstr(js, "floor", 5), js_mkfun(builtin_Math_floor)); 21373 - setprop(js, math_obj, js_mkstr(js, "fround", 6), js_mkfun(builtin_Math_fround)); 21374 - setprop(js, math_obj, js_mkstr(js, "hypot", 5), js_mkfun(builtin_Math_hypot)); 21375 - setprop(js, math_obj, js_mkstr(js, "imul", 4), js_mkfun(builtin_Math_imul)); 21376 - setprop(js, math_obj, js_mkstr(js, "log", 3), js_mkfun(builtin_Math_log)); 21377 - setprop(js, math_obj, js_mkstr(js, "log1p", 5), js_mkfun(builtin_Math_log1p)); 21378 - setprop(js, math_obj, js_mkstr(js, "log10", 5), js_mkfun(builtin_Math_log10)); 21379 - setprop(js, math_obj, js_mkstr(js, "log2", 4), js_mkfun(builtin_Math_log2)); 21380 - setprop(js, math_obj, js_mkstr(js, "max", 3), js_mkfun(builtin_Math_max)); 21381 - setprop(js, math_obj, js_mkstr(js, "min", 3), js_mkfun(builtin_Math_min)); 21382 - setprop(js, math_obj, js_mkstr(js, "pow", 3), js_mkfun(builtin_Math_pow)); 21383 - setprop(js, math_obj, js_mkstr(js, "random", 6), js_mkfun(builtin_Math_random)); 21384 - setprop(js, math_obj, js_mkstr(js, "round", 5), js_mkfun(builtin_Math_round)); 21385 - setprop(js, math_obj, js_mkstr(js, "sign", 4), js_mkfun(builtin_Math_sign)); 21386 - setprop(js, math_obj, js_mkstr(js, "sin", 3), js_mkfun(builtin_Math_sin)); 21387 - setprop(js, math_obj, js_mkstr(js, "sinh", 4), js_mkfun(builtin_Math_sinh)); 21388 - setprop(js, math_obj, js_mkstr(js, "sqrt", 4), js_mkfun(builtin_Math_sqrt)); 21389 - setprop(js, math_obj, js_mkstr(js, "tan", 3), js_mkfun(builtin_Math_tan)); 21390 - setprop(js, math_obj, js_mkstr(js, "tanh", 4), js_mkfun(builtin_Math_tanh)); 21391 - setprop(js, math_obj, js_mkstr(js, "trunc", 5), js_mkfun(builtin_Math_trunc)); 21392 - setprop(js, glob, js_mkstr(js, "Math", 4), math_obj); 21343 + js_setprop(js, math_obj, js_mkstr(js, "E", 1), tov(M_E)); 21344 + js_setprop(js, math_obj, js_mkstr(js, "LN10", 4), tov(M_LN10)); 21345 + js_setprop(js, math_obj, js_mkstr(js, "LN2", 3), tov(M_LN2)); 21346 + js_setprop(js, math_obj, js_mkstr(js, "LOG10E", 6), tov(M_LOG10E)); 21347 + js_setprop(js, math_obj, js_mkstr(js, "LOG2E", 5), tov(M_LOG2E)); 21348 + js_setprop(js, math_obj, js_mkstr(js, "PI", 2), tov(M_PI)); 21349 + js_setprop(js, math_obj, js_mkstr(js, "SQRT1_2", 7), tov(M_SQRT1_2)); 21350 + js_setprop(js, math_obj, js_mkstr(js, "SQRT2", 5), tov(M_SQRT2)); 21351 + js_setprop(js, math_obj, js_mkstr(js, "abs", 3), js_mkfun(builtin_Math_abs)); 21352 + js_setprop(js, math_obj, js_mkstr(js, "acos", 4), js_mkfun(builtin_Math_acos)); 21353 + js_setprop(js, math_obj, js_mkstr(js, "acosh", 5), js_mkfun(builtin_Math_acosh)); 21354 + js_setprop(js, math_obj, js_mkstr(js, "asin", 4), js_mkfun(builtin_Math_asin)); 21355 + js_setprop(js, math_obj, js_mkstr(js, "asinh", 5), js_mkfun(builtin_Math_asinh)); 21356 + js_setprop(js, math_obj, js_mkstr(js, "atan", 4), js_mkfun(builtin_Math_atan)); 21357 + js_setprop(js, math_obj, js_mkstr(js, "atanh", 5), js_mkfun(builtin_Math_atanh)); 21358 + js_setprop(js, math_obj, js_mkstr(js, "atan2", 5), js_mkfun(builtin_Math_atan2)); 21359 + js_setprop(js, math_obj, js_mkstr(js, "cbrt", 4), js_mkfun(builtin_Math_cbrt)); 21360 + js_setprop(js, math_obj, js_mkstr(js, "ceil", 4), js_mkfun(builtin_Math_ceil)); 21361 + js_setprop(js, math_obj, js_mkstr(js, "clz32", 5), js_mkfun(builtin_Math_clz32)); 21362 + js_setprop(js, math_obj, js_mkstr(js, "cos", 3), js_mkfun(builtin_Math_cos)); 21363 + js_setprop(js, math_obj, js_mkstr(js, "cosh", 4), js_mkfun(builtin_Math_cosh)); 21364 + js_setprop(js, math_obj, js_mkstr(js, "exp", 3), js_mkfun(builtin_Math_exp)); 21365 + js_setprop(js, math_obj, js_mkstr(js, "expm1", 5), js_mkfun(builtin_Math_expm1)); 21366 + js_setprop(js, math_obj, js_mkstr(js, "floor", 5), js_mkfun(builtin_Math_floor)); 21367 + js_setprop(js, math_obj, js_mkstr(js, "fround", 6), js_mkfun(builtin_Math_fround)); 21368 + js_setprop(js, math_obj, js_mkstr(js, "hypot", 5), js_mkfun(builtin_Math_hypot)); 21369 + js_setprop(js, math_obj, js_mkstr(js, "imul", 4), js_mkfun(builtin_Math_imul)); 21370 + js_setprop(js, math_obj, js_mkstr(js, "log", 3), js_mkfun(builtin_Math_log)); 21371 + js_setprop(js, math_obj, js_mkstr(js, "log1p", 5), js_mkfun(builtin_Math_log1p)); 21372 + js_setprop(js, math_obj, js_mkstr(js, "log10", 5), js_mkfun(builtin_Math_log10)); 21373 + js_setprop(js, math_obj, js_mkstr(js, "log2", 4), js_mkfun(builtin_Math_log2)); 21374 + js_setprop(js, math_obj, js_mkstr(js, "max", 3), js_mkfun(builtin_Math_max)); 21375 + js_setprop(js, math_obj, js_mkstr(js, "min", 3), js_mkfun(builtin_Math_min)); 21376 + js_setprop(js, math_obj, js_mkstr(js, "pow", 3), js_mkfun(builtin_Math_pow)); 21377 + js_setprop(js, math_obj, js_mkstr(js, "random", 6), js_mkfun(builtin_Math_random)); 21378 + js_setprop(js, math_obj, js_mkstr(js, "round", 5), js_mkfun(builtin_Math_round)); 21379 + js_setprop(js, math_obj, js_mkstr(js, "sign", 4), js_mkfun(builtin_Math_sign)); 21380 + js_setprop(js, math_obj, js_mkstr(js, "sin", 3), js_mkfun(builtin_Math_sin)); 21381 + js_setprop(js, math_obj, js_mkstr(js, "sinh", 4), js_mkfun(builtin_Math_sinh)); 21382 + js_setprop(js, math_obj, js_mkstr(js, "sqrt", 4), js_mkfun(builtin_Math_sqrt)); 21383 + js_setprop(js, math_obj, js_mkstr(js, "tan", 3), js_mkfun(builtin_Math_tan)); 21384 + js_setprop(js, math_obj, js_mkstr(js, "tanh", 4), js_mkfun(builtin_Math_tanh)); 21385 + js_setprop(js, math_obj, js_mkstr(js, "trunc", 5), js_mkfun(builtin_Math_trunc)); 21386 + js_setprop(js, glob, js_mkstr(js, "Math", 4), math_obj); 21393 21387 21394 21388 jsval_t import_obj = mkobj(js, 0); 21395 21389 set_proto(js, import_obj, function_proto); 21396 21390 21397 21391 set_slot(js, import_obj, SLOT_CFUNC, js_mkfun(builtin_import)); 21398 - setprop(js, glob, js_mkstr(js, "import", 6), mkval(T_FUNC, vdata(import_obj))); 21392 + js_setprop(js, glob, js_mkstr(js, "import", 6), mkval(T_FUNC, vdata(import_obj))); 21399 21393 js->module_ns = js_mkundef(); 21400 21394 21401 - setprop(js, object_proto, js_mkstr(js, "constructor", 11), mkval(T_FUNC, vdata(obj_func_obj))); 21395 + js_setprop(js, object_proto, js_mkstr(js, "constructor", 11), mkval(T_FUNC, vdata(obj_func_obj))); 21402 21396 js_set_descriptor(js, object_proto, "constructor", 11, JS_DESC_W | JS_DESC_C); 21403 21397 21404 - setprop(js, function_proto, js_mkstr(js, "constructor", 11), mkval(T_FUNC, vdata(func_ctor_obj))); 21398 + js_setprop(js, function_proto, js_mkstr(js, "constructor", 11), mkval(T_FUNC, vdata(func_ctor_obj))); 21405 21399 js_set_descriptor(js, function_proto, "constructor", 11, JS_DESC_W | JS_DESC_C); 21406 21400 21407 - setprop(js, array_proto, js_mkstr(js, "constructor", 11), mkval(T_FUNC, vdata(arr_ctor_obj))); 21401 + js_setprop(js, array_proto, js_mkstr(js, "constructor", 11), mkval(T_FUNC, vdata(arr_ctor_obj))); 21408 21402 js_set_descriptor(js, array_proto, "constructor", 11, JS_DESC_W | JS_DESC_C); 21409 21403 21410 - setprop(js, string_proto, js_mkstr(js, "constructor", 11), mkval(T_FUNC, vdata(str_ctor_obj))); 21404 + js_setprop(js, string_proto, js_mkstr(js, "constructor", 11), mkval(T_FUNC, vdata(str_ctor_obj))); 21411 21405 js_set_descriptor(js, string_proto, "constructor", 11, JS_DESC_W | JS_DESC_C); 21412 21406 21413 - setprop(js, number_proto, js_mkstr(js, "constructor", 11), mkval(T_FUNC, vdata(number_ctor_obj))); 21407 + js_setprop(js, number_proto, js_mkstr(js, "constructor", 11), mkval(T_FUNC, vdata(number_ctor_obj))); 21414 21408 js_set_descriptor(js, number_proto, "constructor", 11, JS_DESC_W | JS_DESC_C); 21415 21409 21416 - setprop(js, boolean_proto, js_mkstr(js, "constructor", 11), mkval(T_FUNC, vdata(bool_ctor_obj))); 21410 + js_setprop(js, boolean_proto, js_mkstr(js, "constructor", 11), mkval(T_FUNC, vdata(bool_ctor_obj))); 21417 21411 js_set_descriptor(js, boolean_proto, "constructor", 11, JS_DESC_W | JS_DESC_C); 21418 21412 21419 - setprop(js, date_proto, js_mkstr(js, "constructor", 11), mkval(T_FUNC, vdata(date_ctor_obj))); 21413 + js_setprop(js, date_proto, js_mkstr(js, "constructor", 11), mkval(T_FUNC, vdata(date_ctor_obj))); 21420 21414 js_set_descriptor(js, date_proto, "constructor", 11, JS_DESC_W | JS_DESC_C); 21421 21415 21422 - setprop(js, regexp_proto, js_mkstr(js, "constructor", 11), mkval(T_FUNC, vdata(regex_ctor_obj))); 21416 + js_setprop(js, regexp_proto, js_mkstr(js, "constructor", 11), mkval(T_FUNC, vdata(regex_ctor_obj))); 21423 21417 js_set_descriptor(js, regexp_proto, "constructor", 11, JS_DESC_W | JS_DESC_C); 21424 21418 21425 21419 set_proto(js, glob, object_proto); ··· 21701 21695 jsoff_t koff = loadoff(js, next + (jsoff_t) sizeof(next)); 21702 21696 jsval_t val = loadval(js, next + (jsoff_t) (sizeof(next) + sizeof(koff))); 21703 21697 21704 - setprop(js, dst, mkval(T_STR, koff), val); 21698 + js_setprop(js, dst, mkval(T_STR, koff), val); 21705 21699 next = next_prop(header); 21706 21700 } 21707 21701 } ··· 22114 22108 if (vtype(v) == T_UNDEF && pp->default_len > 0) { 22115 22109 v = js_eval_str(js, &fn[pp->default_start], pp->default_len); 22116 22110 } 22117 - setprop(js, js->scope, js_mkstr(js, &fn[pp->name_off], pp->name_len), v); 22111 + js_setprop(js, js->scope, js_mkstr(js, &fn[pp->name_off], pp->name_len), v); 22118 22112 } 22119 22113 } 22120 22114 ··· 22126 22120 char idxstr[16]; 22127 22121 size_t idxlen = uint_to_str(idxstr, sizeof(idxstr), (unsigned)idx); 22128 22122 jsval_t key = js_mkstr(js, idxstr, idxlen); 22129 - setprop(js, rest_array, key, final_args[arg_idx]); 22123 + js_setprop(js, rest_array, key, final_args[arg_idx]); 22130 22124 idx++; 22131 22125 arg_idx++; 22132 22126 } 22133 22127 jsval_t len_key = js_mkstr(js, "length", 6); 22134 - setprop(js, rest_array, len_key, tov((double) idx)); 22128 + js_setprop(js, rest_array, len_key, tov((double) idx)); 22135 22129 rest_array = mkval(T_ARR, vdata(rest_array)); 22136 - setprop(js, js->scope, js_mkstr(js, &fn[pf->rest_param_start], pf->rest_param_len), rest_array); 22130 + js_setprop(js, js->scope, js_mkstr(js, &fn[pf->rest_param_start], pf->rest_param_len), rest_array); 22137 22131 } 22138 22132 } 22139 22133
+7 -7
src/modules/collections.c
··· 675 675 676 676 char idx[16]; 677 677 size_t idx_len = uint_to_str(idx, sizeof(idx), 0); 678 - setprop(js, entry, js_mkstr(js, idx, idx_len), target); 678 + js_setprop(js, entry, js_mkstr(js, idx, idx_len), target); 679 679 idx_len = uint_to_str(idx, sizeof(idx), 1); 680 - setprop(js, entry, js_mkstr(js, idx, idx_len), held_value); 680 + js_setprop(js, entry, js_mkstr(js, idx, idx_len), held_value); 681 681 idx_len = uint_to_str(idx, sizeof(idx), 2); 682 - setprop(js, entry, js_mkstr(js, idx, idx_len), unregister_token); 683 - setprop(js, entry, js_mkstr(js, "length", 6), tov(3.0)); 682 + js_setprop(js, entry, js_mkstr(js, idx, idx_len), unregister_token); 683 + js_setprop(js, entry, js_mkstr(js, "length", 6), tov(3.0)); 684 684 685 685 idx_len = uint_to_str(idx, sizeof(idx), len); 686 - setprop(js, registrations, js_mkstr(js, idx, idx_len), entry); 687 - setprop(js, registrations, js_mkstr(js, "length", 6), tov((double)(len + 1))); 686 + js_setprop(js, registrations, js_mkstr(js, idx, idx_len), entry); 687 + js_setprop(js, registrations, js_mkstr(js, "length", 6), tov((double)(len + 1))); 688 688 689 689 return js_mkundef(); 690 690 } ··· 711 711 if (vtype(entry_token) == T_OBJ && vdata(entry_token) == vdata(token)) { 712 712 char idx[16]; 713 713 size_t idx_len = uint_to_str(idx, sizeof(idx), i); 714 - setprop(js, registrations, js_mkstr(js, idx, idx_len), js_mkundef()); 714 + js_setprop(js, registrations, js_mkstr(js, idx, idx_len), js_mkundef()); 715 715 removed = true; 716 716 } 717 717 }
+93 -49
src/modules/process.c
··· 1278 1278 return js_mkstr(js, value, strlen(value)); 1279 1279 } 1280 1280 1281 + static bool env_setter(ant_t *js, jsval_t obj, const char *key, size_t key_len, jsval_t value) { 1282 + setprop_cstr( 1283 + js, obj, key, key_len, 1284 + coerce_to_str(js, value) 1285 + ); return true; 1286 + } 1287 + 1281 1288 static void load_dotenv_file(ant_t *js, jsval_t env_obj) { 1282 1289 FILE *fp = fopen(".env", "r"); 1283 1290 if (fp == NULL) return; ··· 1340 1347 return js_mkundef(); 1341 1348 } 1342 1349 1343 - static jsval_t env_to_object(ant_t *js, jsval_t *args, int nargs) { 1344 - jsval_t obj = js_mkobj(js); 1345 - 1350 + typedef struct { 1351 + char *buf; 1352 + size_t pos; 1353 + size_t cap; 1354 + } env_str_ctx; 1355 + 1356 + typedef void (*env_iter_cb)( 1357 + ant_t *js, 1358 + const char *key, 1359 + size_t key_len, 1360 + const char *value, 1361 + size_t val_len, 1362 + void *ctx 1363 + ); 1364 + 1365 + static void env_foreach(ant_t *js, jsval_t env_obj, env_iter_cb cb, void *ctx) { 1346 1366 for (char **env = environ; *env != NULL; env++) { 1347 1367 char *entry = *env; 1348 1368 char *equals = strchr(entry, '='); ··· 1350 1370 1351 1371 size_t key_len = (size_t)(equals - entry); 1352 1372 char *value = equals + 1; 1373 + cb(js, entry, key_len, value, strlen(value), ctx); 1374 + } 1375 + 1376 + ant_iter_t iter = js_prop_iter_begin(js, env_obj); 1377 + const char *key; size_t key_len; jsval_t value; 1378 + 1379 + while (js_prop_iter_next(&iter, &key, &key_len, &value)) { 1380 + if (key_len >= 2 && key[0] == '_' && key[1] == '_') continue; 1381 + if (vtype(value) != T_STR) continue; 1353 1382 1354 - char *key = malloc(key_len + 1); 1355 - if (!key) continue; 1356 - memcpy(key, entry, key_len); 1357 - key[key_len] = '\0'; 1383 + char key_buf[256]; 1384 + if (key_len >= sizeof(key_buf)) continue; 1385 + memcpy(key_buf, key, key_len); 1386 + key_buf[key_len] = '\0'; 1387 + 1388 + if (getenv(key_buf)) continue; 1358 1389 1359 - js_set(js, obj, key, js_mkstr(js, value, strlen(value))); 1360 - free(key); 1390 + size_t val_len; 1391 + char *val_str = js_getstr(js, value, &val_len); 1392 + cb(js, key, key_len, val_str ? val_str : "", val_str ? val_len : 0, ctx); 1361 1393 } 1362 1394 1395 + js_prop_iter_end(&iter); 1396 + } 1397 + 1398 + static void env_to_object_cb(ant_t *js, const char *key, size_t key_len, const char *value, size_t val_len, void *ctx) { 1399 + jsval_t obj = *(jsval_t *)ctx; 1400 + char key_buf[256]; 1401 + if (key_len >= sizeof(key_buf)) return; 1402 + memcpy(key_buf, key, key_len); 1403 + key_buf[key_len] = '\0'; 1404 + js_set(js, obj, key_buf, js_mkstr(js, value, val_len)); 1405 + } 1406 + 1407 + static jsval_t env_to_object(ant_t *js, jsval_t *args, int nargs) { 1408 + jsval_t obj = js_mkobj(js); 1409 + env_foreach(js, js->this_val, env_to_object_cb, &obj); 1363 1410 return obj; 1364 1411 } 1365 1412 1366 - static jsval_t env_toString(ant_t *js, jsval_t *args, int nargs) { 1367 - size_t buf_cap = 4096; 1368 - char *buf = malloc(buf_cap); 1369 - if (!buf) return js_mkstr(js, "", 0); 1370 - size_t pos = 0; 1413 + static void env_tostring_cb(ant_t *js, const char *key, size_t key_len, const char *value, size_t val_len, void *ctx) { 1414 + env_str_ctx *c = ctx; 1415 + size_t entry_len = key_len + 1 + val_len; 1371 1416 1372 - for (char **env = environ; *env != NULL; env++) { 1373 - char *entry = *env; 1374 - size_t entry_len = strlen(entry); 1375 - 1376 - if (pos + entry_len + 2 >= buf_cap) { 1377 - buf_cap = buf_cap * 2 + entry_len; 1378 - char *new_buf = realloc(buf, buf_cap); 1379 - if (!new_buf) { 1380 - buf[pos] = '\0'; 1381 - jsval_t ret = js_mkstr(js, buf, pos); 1382 - free(buf); return ret; 1383 - } 1384 - buf = new_buf; 1385 - } 1386 - 1387 - if (pos > 0) buf[pos++] = '\n'; 1388 - memcpy(buf + pos, entry, entry_len); 1389 - pos += entry_len; 1417 + if (c->pos + entry_len + 2 >= c->cap) { 1418 + c->cap = c->cap * 2 + entry_len; 1419 + char *new_buf = realloc(c->buf, c->cap); 1420 + if (!new_buf) return; 1421 + c->buf = new_buf; 1390 1422 } 1391 1423 1392 - buf[pos] = '\0'; 1393 - jsval_t ret = js_mkstr(js, buf, pos); 1394 - free(buf); return ret; 1424 + if (c->pos > 0) c->buf[c->pos++] = '\n'; 1425 + memcpy(c->buf + c->pos, key, key_len); 1426 + c->pos += key_len; 1427 + c->buf[c->pos++] = '='; 1428 + memcpy(c->buf + c->pos, value, val_len); 1429 + c->pos += val_len; 1430 + } 1431 + 1432 + static jsval_t env_toString(ant_t *js, jsval_t *args, int nargs) { 1433 + env_str_ctx ctx = { .buf = malloc(4096), .pos = 0, .cap = 4096 }; 1434 + if (!ctx.buf) return js_mkstr(js, "", 0); 1435 + 1436 + env_foreach(js, js->this_val, env_tostring_cb, &ctx); 1437 + ctx.buf[ctx.pos] = '\0'; 1438 + 1439 + jsval_t ret = js_mkstr(js, ctx.buf, ctx.pos); 1440 + free(ctx.buf); 1441 + return ret; 1442 + } 1443 + 1444 + static void env_keys_cb(ant_t *js, const char *key, size_t key_len, const char *value, size_t val_len, void *ctx) { 1445 + jsval_t arr = *(jsval_t *)ctx; 1446 + js_arr_push(js, arr, js_mkstr(js, key, key_len)); 1395 1447 } 1396 1448 1397 1449 static jsval_t env_keys(ant_t *js, jsval_t obj) { 1398 1450 jsval_t arr = js_mkarr(js); 1399 - 1400 - for (char **env = environ; *env != NULL; env++) { 1401 - char *entry = *env; 1402 - char *equals = strchr(entry, '='); 1403 - if (equals == NULL) continue; 1404 - 1405 - size_t key_len = (size_t)(equals - entry); 1406 - js_arr_push(js, arr, js_mkstr(js, entry, key_len)); 1407 - } 1408 - 1451 + env_foreach(js, obj, env_keys_cb, &arr); 1409 1452 return arr; 1410 1453 } 1411 1454 ··· 1611 1654 js_set(js, process_proto, get_toStringTag_sym_key(), js_mkstr(js, "process", 7)); 1612 1655 1613 1656 jsval_t process_obj = js_mkobj(js); 1657 + jsval_t env_obj = js_mkobj(js); 1614 1658 js_set_proto(js, process_obj, process_proto); 1615 - 1616 - jsval_t env_obj = js_mkobj(js); 1659 + 1617 1660 load_dotenv_file(js, env_obj); 1618 - 1661 + js_set_keys(js, env_obj, env_keys); 1662 + 1619 1663 js_set_getter(js, env_obj, env_getter); 1620 - js_set_keys(js, env_obj, env_keys); 1664 + js_set_setter(js, env_obj, env_setter); 1621 1665 1622 1666 js_set(js, env_obj, "toObject", js_mkfun(env_to_object)); 1623 1667 js_set(js, env_obj, "toString", js_mkfun(env_toString));