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

Configure Feed

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

add name property to built-in objects

+38 -1
+38 -1
src/ant.c
··· 2109 2109 2110 2110 jsval_t builtin_slot = get_slot(js, func_obj, SLOT_BUILTIN); 2111 2111 if (vtype(builtin_slot) == T_NUM) { 2112 + if (name && name_len > 0) { 2113 + size_t n = cpy(buf, len, "[Function: ", 11); 2114 + n += cpy(buf + n, len - n, name, name_len); 2115 + n += cpy(buf + n, len - n, "]", 1); 2116 + return n; 2117 + } 2112 2118 return cpy(buf, len, "[native code]", 13); 2113 2119 } 2114 2120 2115 2121 if (vtype(code_slot) != T_STR) { 2116 2122 jsval_t cfunc_slot = get_slot(js, func_obj, SLOT_CFUNC); 2117 - if (vtype(cfunc_slot) == T_CFUNC) return cpy(buf, len, "[native code]", 13); 2123 + if (vtype(cfunc_slot) == T_CFUNC) { 2124 + if (name && name_len > 0) { 2125 + size_t n = cpy(buf, len, "[Function: ", 11); 2126 + n += cpy(buf + n, len - n, name, name_len); 2127 + n += cpy(buf + n, len - n, "]", 1); 2128 + return n; 2129 + } 2130 + return cpy(buf, len, "[native code]", 13); 2131 + } 2118 2132 if (name && name_len > 0) { 2119 2133 size_t n = cpy(buf, len, "[Function: ", 11); 2120 2134 n += cpy(buf + n, len - n, name, name_len); ··· 21072 21086 setprop(js, obj_func_obj, js_mkstr(js, "getOwnPropertyNames", 19), js_mkfun(builtin_object_getOwnPropertyNames)); 21073 21087 setprop(js, obj_func_obj, js_mkstr(js, "isExtensible", 12), js_mkfun(builtin_object_isExtensible)); 21074 21088 setprop(js, obj_func_obj, js_mkstr(js, "preventExtensions", 17), js_mkfun(builtin_object_preventExtensions)); 21089 + setprop(js, obj_func_obj, ANT_STRING("name"), ANT_STRING("Object")); 21075 21090 js_setprop_nonconfigurable(js, obj_func_obj, "prototype", 9, object_proto); 21076 21091 setprop(js, glob, js_mkstr(js, "Object", 6), mkval(T_FUNC, vdata(obj_func_obj))); 21077 21092 ··· 21081 21096 js_setprop_nonconfigurable(js, func_ctor_obj, "prototype", 9, function_proto); 21082 21097 setprop(js, func_ctor_obj, js_mkstr(js, "length", 6), tov(1.0)); 21083 21098 js_set_descriptor(js, func_ctor_obj, "length", 6, JS_DESC_C); 21099 + setprop(js, func_ctor_obj, ANT_STRING("name"), ANT_STRING("Function")); 21084 21100 setprop(js, glob, js_mkstr(js, "Function", 8), mkval(T_FUNC, vdata(func_ctor_obj))); 21085 21101 21086 21102 jsval_t str_ctor_obj = mkobj(js, 0); ··· 21089 21105 js_setprop_nonconfigurable(js, str_ctor_obj, "prototype", 9, string_proto); 21090 21106 setprop(js, str_ctor_obj, js_mkstr(js, "fromCharCode", 12), js_mkfun(builtin_string_fromCharCode)); 21091 21107 setprop(js, str_ctor_obj, js_mkstr(js, "fromCodePoint", 13), js_mkfun(builtin_string_fromCodePoint)); 21108 + setprop(js, str_ctor_obj, ANT_STRING("name"), ANT_STRING("String")); 21092 21109 setprop(js, glob, js_mkstr(js, "String", 6), mkval(T_FUNC, vdata(str_ctor_obj))); 21093 21110 21094 21111 jsval_t number_ctor_obj = mkobj(js, 0); ··· 21110 21127 setprop(js, number_ctor_obj, js_mkstr(js, "EPSILON", 7), tov(2.220446049250313e-16)); 21111 21128 21112 21129 js_setprop_nonconfigurable(js, number_ctor_obj, "prototype", 9, number_proto); 21130 + setprop(js, number_ctor_obj, ANT_STRING("name"), ANT_STRING("Number")); 21113 21131 setprop(js, glob, js_mkstr(js, "Number", 6), mkval(T_FUNC, vdata(number_ctor_obj))); 21114 21132 21115 21133 jsval_t bool_ctor_obj = mkobj(js, 0); 21116 21134 set_proto(js, bool_ctor_obj, function_proto); 21117 21135 set_slot(js, bool_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_Boolean)); 21118 21136 js_setprop_nonconfigurable(js, bool_ctor_obj, "prototype", 9, boolean_proto); 21137 + setprop(js, bool_ctor_obj, ANT_STRING("name"), ANT_STRING("Boolean")); 21119 21138 setprop(js, glob, js_mkstr(js, "Boolean", 7), mkval(T_FUNC, vdata(bool_ctor_obj))); 21120 21139 21121 21140 jsval_t arr_ctor_obj = mkobj(js, 0); ··· 21127 21146 setprop(js, arr_ctor_obj, js_mkstr(js, "of", 2), js_mkfun(builtin_Array_of)); 21128 21147 setprop(js, arr_ctor_obj, js_mkstr(js, "length", 6), tov(1.0)); 21129 21148 js_set_descriptor(js, arr_ctor_obj, "length", 6, JS_DESC_C); 21149 + setprop(js, arr_ctor_obj, ANT_STRING("name"), ANT_STRING("Array")); 21130 21150 setprop(js, glob, js_mkstr(js, "Array", 5), mkval(T_FUNC, vdata(arr_ctor_obj))); 21131 21151 21132 21152 jsval_t map_ctor_obj = mkobj(js, 0); 21133 21153 set_proto(js, map_ctor_obj, function_proto); 21134 21154 set_slot(js, map_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_Map)); 21135 21155 js_setprop_nonconfigurable(js, map_ctor_obj, "prototype", 9, map_proto); 21156 + setprop(js, map_ctor_obj, ANT_STRING("name"), ANT_STRING("Map")); 21136 21157 setprop(js, glob, js_mkstr(js, "Map", 3), mkval(T_FUNC, vdata(map_ctor_obj))); 21137 21158 21138 21159 jsval_t set_ctor_obj = mkobj(js, 0); 21139 21160 set_proto(js, set_ctor_obj, function_proto); 21140 21161 set_slot(js, set_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_Set)); 21141 21162 js_setprop_nonconfigurable(js, set_ctor_obj, "prototype", 9, set_proto_obj); 21163 + setprop(js, set_ctor_obj, ANT_STRING("name"), ANT_STRING("Set")); 21142 21164 setprop(js, glob, js_mkstr(js, "Set", 3), mkval(T_FUNC, vdata(set_ctor_obj))); 21143 21165 21144 21166 jsval_t weakmap_ctor_obj = mkobj(js, 0); 21145 21167 set_proto(js, weakmap_ctor_obj, function_proto); 21146 21168 set_slot(js, weakmap_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_WeakMap)); 21147 21169 js_setprop_nonconfigurable(js, weakmap_ctor_obj, "prototype", 9, weakmap_proto); 21170 + setprop(js, weakmap_ctor_obj, ANT_STRING("name"), ANT_STRING("WeakMap")); 21148 21171 setprop(js, glob, js_mkstr(js, "WeakMap", 7), mkval(T_FUNC, vdata(weakmap_ctor_obj))); 21149 21172 21150 21173 jsval_t weakset_ctor_obj = mkobj(js, 0); 21151 21174 set_proto(js, weakset_ctor_obj, function_proto); 21152 21175 set_slot(js, weakset_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_WeakSet)); 21153 21176 js_setprop_nonconfigurable(js, weakset_ctor_obj, "prototype", 9, weakset_proto); 21177 + setprop(js, weakset_ctor_obj, ANT_STRING("name"), ANT_STRING("WeakSet")); 21154 21178 setprop(js, glob, js_mkstr(js, "WeakSet", 7), mkval(T_FUNC, vdata(weakset_ctor_obj))); 21155 21179 21156 21180 jsval_t proxy_ctor_obj = mkobj(js, 0); 21157 21181 set_proto(js, proxy_ctor_obj, function_proto); 21158 21182 set_slot(js, proxy_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_Proxy)); 21159 21183 setprop(js, proxy_ctor_obj, js_mkstr(js, "revocable", 9), js_mkfun(builtin_Proxy_revocable)); 21184 + setprop(js, proxy_ctor_obj, ANT_STRING("name"), ANT_STRING("Proxy")); 21160 21185 setprop(js, glob, js_mkstr(js, "Proxy", 5), mkval(T_FUNC, vdata(proxy_ctor_obj))); 21161 21186 21162 21187 jsval_t err_ctor_obj = mkobj(js, 0); 21163 21188 set_proto(js, err_ctor_obj, function_proto); 21164 21189 set_slot(js, err_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_Error)); 21165 21190 js_setprop_nonconfigurable(js, err_ctor_obj, "prototype", 9, error_proto); 21191 + setprop(js, err_ctor_obj, ANT_STRING("name"), ANT_STRING("Error")); 21166 21192 setprop(js, glob, js_mkstr(js, "Error", 5), mkval(T_FUNC, vdata(err_ctor_obj))); 21167 21193 21168 21194 jsval_t evalerr_ctor_obj = mkobj(js, 0); 21169 21195 set_proto(js, evalerr_ctor_obj, function_proto); 21170 21196 set_slot(js, evalerr_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_EvalError)); 21171 21197 js_setprop_nonconfigurable(js, evalerr_ctor_obj, "prototype", 9, evalerror_proto); 21198 + setprop(js, evalerr_ctor_obj, ANT_STRING("name"), ANT_STRING("EvalError")); 21172 21199 setprop(js, glob, js_mkstr(js, "EvalError", 9), mkval(T_FUNC, vdata(evalerr_ctor_obj))); 21173 21200 21174 21201 jsval_t rangeerr_ctor_obj = mkobj(js, 0); 21175 21202 set_proto(js, rangeerr_ctor_obj, function_proto); 21176 21203 set_slot(js, rangeerr_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_RangeError)); 21177 21204 js_setprop_nonconfigurable(js, rangeerr_ctor_obj, "prototype", 9, rangeerror_proto); 21205 + setprop(js, rangeerr_ctor_obj, ANT_STRING("name"), ANT_STRING("RangeError")); 21178 21206 setprop(js, glob, js_mkstr(js, "RangeError", 10), mkval(T_FUNC, vdata(rangeerr_ctor_obj))); 21179 21207 21180 21208 jsval_t referr_ctor_obj = mkobj(js, 0); 21181 21209 set_proto(js, referr_ctor_obj, function_proto); 21182 21210 set_slot(js, referr_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_ReferenceError)); 21183 21211 js_setprop_nonconfigurable(js, referr_ctor_obj, "prototype", 9, referenceerror_proto); 21212 + setprop(js, referr_ctor_obj, ANT_STRING("name"), ANT_STRING("ReferenceError")); 21184 21213 setprop(js, glob, js_mkstr(js, "ReferenceError", 14), mkval(T_FUNC, vdata(referr_ctor_obj))); 21185 21214 21186 21215 jsval_t syntaxerr_ctor_obj = mkobj(js, 0); 21187 21216 set_proto(js, syntaxerr_ctor_obj, function_proto); 21188 21217 set_slot(js, syntaxerr_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_SyntaxError)); 21189 21218 js_setprop_nonconfigurable(js, syntaxerr_ctor_obj, "prototype", 9, syntaxerror_proto); 21219 + setprop(js, syntaxerr_ctor_obj, ANT_STRING("name"), ANT_STRING("SyntaxError")); 21190 21220 setprop(js, glob, js_mkstr(js, "SyntaxError", 11), mkval(T_FUNC, vdata(syntaxerr_ctor_obj))); 21191 21221 21192 21222 jsval_t typeerr_ctor_obj = mkobj(js, 0); 21193 21223 set_proto(js, typeerr_ctor_obj, function_proto); 21194 21224 set_slot(js, typeerr_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_TypeError)); 21195 21225 js_setprop_nonconfigurable(js, typeerr_ctor_obj, "prototype", 9, typeerror_proto); 21226 + setprop(js, typeerr_ctor_obj, ANT_STRING("name"), ANT_STRING("TypeError")); 21196 21227 setprop(js, glob, js_mkstr(js, "TypeError", 9), mkval(T_FUNC, vdata(typeerr_ctor_obj))); 21197 21228 21198 21229 jsval_t urierr_ctor_obj = mkobj(js, 0); 21199 21230 set_proto(js, urierr_ctor_obj, function_proto); 21200 21231 set_slot(js, urierr_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_URIError)); 21201 21232 js_setprop_nonconfigurable(js, urierr_ctor_obj, "prototype", 9, urierror_proto); 21233 + setprop(js, urierr_ctor_obj, ANT_STRING("name"), ANT_STRING("URIError")); 21202 21234 setprop(js, glob, js_mkstr(js, "URIError", 8), mkval(T_FUNC, vdata(urierr_ctor_obj))); 21203 21235 21204 21236 jsval_t internerr_ctor_obj = mkobj(js, 0); 21205 21237 set_proto(js, internerr_ctor_obj, function_proto); 21206 21238 set_slot(js, internerr_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_InternalError)); 21207 21239 js_setprop_nonconfigurable(js, internerr_ctor_obj, "prototype", 9, internalerror_proto); 21240 + setprop(js, internerr_ctor_obj, ANT_STRING("name"), ANT_STRING("InternalError")); 21208 21241 setprop(js, glob, js_mkstr(js, "InternalError", 13), mkval(T_FUNC, vdata(internerr_ctor_obj))); 21209 21242 21210 21243 jsval_t regex_ctor_obj = mkobj(js, 0); 21211 21244 set_proto(js, regex_ctor_obj, function_proto); 21212 21245 set_slot(js, regex_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_RegExp)); 21213 21246 js_setprop_nonconfigurable(js, regex_ctor_obj, "prototype", 9, regexp_proto); 21247 + setprop(js, regex_ctor_obj, ANT_STRING("name"), ANT_STRING("RegExp")); 21214 21248 setprop(js, glob, js_mkstr(js, "RegExp", 6), mkval(T_FUNC, vdata(regex_ctor_obj))); 21215 21249 21216 21250 jsval_t date_ctor_obj = mkobj(js, 0); ··· 21219 21253 setprop(js, date_ctor_obj, js_mkstr(js, "now", 3), js_mkfun(builtin_Date_now)); 21220 21254 setprop(js, date_ctor_obj, js_mkstr(js, "UTC", 3), js_mkfun(builtin_Date_UTC)); 21221 21255 js_setprop_nonconfigurable(js, date_ctor_obj, "prototype", 9, date_proto); 21256 + setprop(js, date_ctor_obj, ANT_STRING("name"), ANT_STRING("Date")); 21222 21257 setprop(js, glob, js_mkstr(js, "Date", 4), mkval(T_FUNC, vdata(date_ctor_obj))); 21223 21258 21224 21259 jsval_t p_ctor_obj = mkobj(js, 0); ··· 21231 21266 setprop(js, p_ctor_obj, js_mkstr(js, "race", 4), js_mkfun(builtin_Promise_race)); 21232 21267 setprop(js, p_ctor_obj, js_mkstr(js, "any", 3), js_mkfun(builtin_Promise_any)); 21233 21268 js_setprop_nonconfigurable(js, p_ctor_obj, "prototype", 9, promise_proto); 21269 + setprop(js, p_ctor_obj, ANT_STRING("name"), ANT_STRING("Promise")); 21234 21270 setprop(js, glob, js_mkstr(js, "Promise", 7), mkval(T_FUNC, vdata(p_ctor_obj))); 21235 21271 21236 21272 jsval_t bigint_ctor_obj = mkobj(js, 0); ··· 21239 21275 setprop(js, bigint_ctor_obj, js_mkstr(js, "asIntN", 6), js_mkfun(builtin_BigInt_asIntN)); 21240 21276 setprop(js, bigint_ctor_obj, js_mkstr(js, "asUintN", 7), js_mkfun(builtin_BigInt_asUintN)); 21241 21277 js_setprop_nonconfigurable(js, bigint_ctor_obj, "prototype", 9, bigint_proto); 21278 + setprop(js, bigint_ctor_obj, ANT_STRING("name"), ANT_STRING("BigInt")); 21242 21279 setprop(js, glob, js_mkstr(js, "BigInt", 6), mkval(T_FUNC, vdata(bigint_ctor_obj))); 21243 21280 21244 21281 setprop(js, glob, js_mkstr(js, "eval", 4), js_mkfun(builtin_eval));