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 EventTargetPrototype to global object

+32 -31
+1
include/ant.h
··· 96 96 void js_merge_obj(struct js *, jsval_t dst, jsval_t src); 97 97 98 98 jsval_t js_setprop(struct js *, jsval_t obj, jsval_t key, jsval_t val); 99 + jsval_t js_setprop_nonconfigurable(struct js *, jsval_t obj, const char *key, size_t keylen, jsval_t val); 99 100 void js_set_proto(struct js *, jsval_t obj, jsval_t proto); 100 101 101 102 jsval_t js_get_proto(struct js *, jsval_t obj);
+1 -1
meson.build
··· 96 96 build_date = run_command('date', '+%Y-%m-%d', check: true).stdout().strip() 97 97 98 98 version_conf = configuration_data() 99 - version_conf.set('ANT_VERSION', '0.3.2.42') 99 + version_conf.set('ANT_VERSION', '0.3.2.43') 100 100 version_conf.set('ANT_GIT_HASH', git_hash) 101 101 version_conf.set('ANT_BUILD_DATE', build_date) 102 102
+23 -24
src/ant.c
··· 3381 3381 return js_setprop(js, obj, k, v); 3382 3382 } 3383 3383 3384 - static jsval_t setprop_nonconfigurable(struct js *js, jsval_t obj, const char *key, size_t keylen, jsval_t v) { 3384 + jsval_t js_setprop_nonconfigurable(struct js *js, jsval_t obj, const char *key, size_t keylen, jsval_t v) { 3385 3385 jsval_t k = js_mkstr(js, key, keylen); 3386 3386 if (is_err(k)) return k; 3387 3387 jsval_t result = setprop(js, obj, k, v); 3388 3388 if (is_err(result)) return result; 3389 3389 3390 3390 js_set_descriptor(js, obj, key, keylen, JS_DESC_W); 3391 - 3392 3391 return result; 3393 3392 } 3394 3393 ··· 20871 20870 setprop(js, obj_func_obj, js_mkstr(js, "getOwnPropertyNames", 19), js_mkfun(builtin_object_getOwnPropertyNames)); 20872 20871 setprop(js, obj_func_obj, js_mkstr(js, "isExtensible", 12), js_mkfun(builtin_object_isExtensible)); 20873 20872 setprop(js, obj_func_obj, js_mkstr(js, "preventExtensions", 17), js_mkfun(builtin_object_preventExtensions)); 20874 - setprop_nonconfigurable(js, obj_func_obj, "prototype", 9, object_proto); 20873 + js_setprop_nonconfigurable(js, obj_func_obj, "prototype", 9, object_proto); 20875 20874 setprop(js, glob, js_mkstr(js, "Object", 6), mkval(T_FUNC, vdata(obj_func_obj))); 20876 20875 20877 20876 jsval_t func_ctor_obj = mkobj(js, 0); 20878 20877 set_proto(js, func_ctor_obj, function_proto); 20879 20878 set_slot(js, func_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_Function)); 20880 - setprop_nonconfigurable(js, func_ctor_obj, "prototype", 9, function_proto); 20879 + js_setprop_nonconfigurable(js, func_ctor_obj, "prototype", 9, function_proto); 20881 20880 setprop(js, func_ctor_obj, js_mkstr(js, "length", 6), tov(1.0)); 20882 20881 js_set_descriptor(js, func_ctor_obj, "length", 6, JS_DESC_C); 20883 20882 setprop(js, glob, js_mkstr(js, "Function", 8), mkval(T_FUNC, vdata(func_ctor_obj))); ··· 20885 20884 jsval_t str_ctor_obj = mkobj(js, 0); 20886 20885 set_proto(js, str_ctor_obj, function_proto); 20887 20886 set_slot(js, str_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_String)); 20888 - setprop_nonconfigurable(js, str_ctor_obj, "prototype", 9, string_proto); 20887 + js_setprop_nonconfigurable(js, str_ctor_obj, "prototype", 9, string_proto); 20889 20888 setprop(js, str_ctor_obj, js_mkstr(js, "fromCharCode", 12), js_mkfun(builtin_string_fromCharCode)); 20890 20889 setprop(js, str_ctor_obj, js_mkstr(js, "fromCodePoint", 13), js_mkfun(builtin_string_fromCodePoint)); 20891 20890 setprop(js, glob, js_mkstr(js, "String", 6), mkval(T_FUNC, vdata(str_ctor_obj))); ··· 20908 20907 setprop(js, number_ctor_obj, js_mkstr(js, "NaN", 3), tov(NAN)); 20909 20908 setprop(js, number_ctor_obj, js_mkstr(js, "EPSILON", 7), tov(2.220446049250313e-16)); 20910 20909 20911 - setprop_nonconfigurable(js, number_ctor_obj, "prototype", 9, number_proto); 20910 + js_setprop_nonconfigurable(js, number_ctor_obj, "prototype", 9, number_proto); 20912 20911 setprop(js, glob, js_mkstr(js, "Number", 6), mkval(T_FUNC, vdata(number_ctor_obj))); 20913 20912 20914 20913 jsval_t bool_ctor_obj = mkobj(js, 0); 20915 20914 set_proto(js, bool_ctor_obj, function_proto); 20916 20915 set_slot(js, bool_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_Boolean)); 20917 - setprop_nonconfigurable(js, bool_ctor_obj, "prototype", 9, boolean_proto); 20916 + js_setprop_nonconfigurable(js, bool_ctor_obj, "prototype", 9, boolean_proto); 20918 20917 setprop(js, glob, js_mkstr(js, "Boolean", 7), mkval(T_FUNC, vdata(bool_ctor_obj))); 20919 20918 20920 20919 jsval_t arr_ctor_obj = mkobj(js, 0); 20921 20920 set_proto(js, arr_ctor_obj, function_proto); 20922 20921 set_slot(js, arr_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_Array)); 20923 - setprop_nonconfigurable(js, arr_ctor_obj, "prototype", 9, array_proto); 20922 + js_setprop_nonconfigurable(js, arr_ctor_obj, "prototype", 9, array_proto); 20924 20923 setprop(js, arr_ctor_obj, js_mkstr(js, "isArray", 7), js_mkfun(builtin_Array_isArray)); 20925 20924 setprop(js, arr_ctor_obj, js_mkstr(js, "from", 4), js_mkfun(builtin_Array_from)); 20926 20925 setprop(js, arr_ctor_obj, js_mkstr(js, "of", 2), js_mkfun(builtin_Array_of)); ··· 20931 20930 jsval_t map_ctor_obj = mkobj(js, 0); 20932 20931 set_proto(js, map_ctor_obj, function_proto); 20933 20932 set_slot(js, map_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_Map)); 20934 - setprop_nonconfigurable(js, map_ctor_obj, "prototype", 9, map_proto); 20933 + js_setprop_nonconfigurable(js, map_ctor_obj, "prototype", 9, map_proto); 20935 20934 setprop(js, glob, js_mkstr(js, "Map", 3), mkval(T_FUNC, vdata(map_ctor_obj))); 20936 20935 20937 20936 jsval_t set_ctor_obj = mkobj(js, 0); 20938 20937 set_proto(js, set_ctor_obj, function_proto); 20939 20938 set_slot(js, set_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_Set)); 20940 - setprop_nonconfigurable(js, set_ctor_obj, "prototype", 9, set_proto_obj); 20939 + js_setprop_nonconfigurable(js, set_ctor_obj, "prototype", 9, set_proto_obj); 20941 20940 setprop(js, glob, js_mkstr(js, "Set", 3), mkval(T_FUNC, vdata(set_ctor_obj))); 20942 20941 20943 20942 jsval_t weakmap_ctor_obj = mkobj(js, 0); 20944 20943 set_proto(js, weakmap_ctor_obj, function_proto); 20945 20944 set_slot(js, weakmap_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_WeakMap)); 20946 - setprop_nonconfigurable(js, weakmap_ctor_obj, "prototype", 9, weakmap_proto); 20945 + js_setprop_nonconfigurable(js, weakmap_ctor_obj, "prototype", 9, weakmap_proto); 20947 20946 setprop(js, glob, js_mkstr(js, "WeakMap", 7), mkval(T_FUNC, vdata(weakmap_ctor_obj))); 20948 20947 20949 20948 jsval_t weakset_ctor_obj = mkobj(js, 0); 20950 20949 set_proto(js, weakset_ctor_obj, function_proto); 20951 20950 set_slot(js, weakset_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_WeakSet)); 20952 - setprop_nonconfigurable(js, weakset_ctor_obj, "prototype", 9, weakset_proto); 20951 + js_setprop_nonconfigurable(js, weakset_ctor_obj, "prototype", 9, weakset_proto); 20953 20952 setprop(js, glob, js_mkstr(js, "WeakSet", 7), mkval(T_FUNC, vdata(weakset_ctor_obj))); 20954 20953 20955 20954 jsval_t proxy_ctor_obj = mkobj(js, 0); ··· 20961 20960 jsval_t err_ctor_obj = mkobj(js, 0); 20962 20961 set_proto(js, err_ctor_obj, function_proto); 20963 20962 set_slot(js, err_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_Error)); 20964 - setprop_nonconfigurable(js, err_ctor_obj, "prototype", 9, error_proto); 20963 + js_setprop_nonconfigurable(js, err_ctor_obj, "prototype", 9, error_proto); 20965 20964 setprop(js, glob, js_mkstr(js, "Error", 5), mkval(T_FUNC, vdata(err_ctor_obj))); 20966 20965 20967 20966 jsval_t evalerr_ctor_obj = mkobj(js, 0); 20968 20967 set_proto(js, evalerr_ctor_obj, function_proto); 20969 20968 set_slot(js, evalerr_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_EvalError)); 20970 - setprop_nonconfigurable(js, evalerr_ctor_obj, "prototype", 9, evalerror_proto); 20969 + js_setprop_nonconfigurable(js, evalerr_ctor_obj, "prototype", 9, evalerror_proto); 20971 20970 setprop(js, glob, js_mkstr(js, "EvalError", 9), mkval(T_FUNC, vdata(evalerr_ctor_obj))); 20972 20971 20973 20972 jsval_t rangeerr_ctor_obj = mkobj(js, 0); 20974 20973 set_proto(js, rangeerr_ctor_obj, function_proto); 20975 20974 set_slot(js, rangeerr_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_RangeError)); 20976 - setprop_nonconfigurable(js, rangeerr_ctor_obj, "prototype", 9, rangeerror_proto); 20975 + js_setprop_nonconfigurable(js, rangeerr_ctor_obj, "prototype", 9, rangeerror_proto); 20977 20976 setprop(js, glob, js_mkstr(js, "RangeError", 10), mkval(T_FUNC, vdata(rangeerr_ctor_obj))); 20978 20977 20979 20978 jsval_t referr_ctor_obj = mkobj(js, 0); 20980 20979 set_proto(js, referr_ctor_obj, function_proto); 20981 20980 set_slot(js, referr_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_ReferenceError)); 20982 - setprop_nonconfigurable(js, referr_ctor_obj, "prototype", 9, referenceerror_proto); 20981 + js_setprop_nonconfigurable(js, referr_ctor_obj, "prototype", 9, referenceerror_proto); 20983 20982 setprop(js, glob, js_mkstr(js, "ReferenceError", 14), mkval(T_FUNC, vdata(referr_ctor_obj))); 20984 20983 20985 20984 jsval_t syntaxerr_ctor_obj = mkobj(js, 0); 20986 20985 set_proto(js, syntaxerr_ctor_obj, function_proto); 20987 20986 set_slot(js, syntaxerr_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_SyntaxError)); 20988 - setprop_nonconfigurable(js, syntaxerr_ctor_obj, "prototype", 9, syntaxerror_proto); 20987 + js_setprop_nonconfigurable(js, syntaxerr_ctor_obj, "prototype", 9, syntaxerror_proto); 20989 20988 setprop(js, glob, js_mkstr(js, "SyntaxError", 11), mkval(T_FUNC, vdata(syntaxerr_ctor_obj))); 20990 20989 20991 20990 jsval_t typeerr_ctor_obj = mkobj(js, 0); 20992 20991 set_proto(js, typeerr_ctor_obj, function_proto); 20993 20992 set_slot(js, typeerr_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_TypeError)); 20994 - setprop_nonconfigurable(js, typeerr_ctor_obj, "prototype", 9, typeerror_proto); 20993 + js_setprop_nonconfigurable(js, typeerr_ctor_obj, "prototype", 9, typeerror_proto); 20995 20994 setprop(js, glob, js_mkstr(js, "TypeError", 9), mkval(T_FUNC, vdata(typeerr_ctor_obj))); 20996 20995 20997 20996 jsval_t urierr_ctor_obj = mkobj(js, 0); 20998 20997 set_proto(js, urierr_ctor_obj, function_proto); 20999 20998 set_slot(js, urierr_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_URIError)); 21000 - setprop_nonconfigurable(js, urierr_ctor_obj, "prototype", 9, urierror_proto); 20999 + js_setprop_nonconfigurable(js, urierr_ctor_obj, "prototype", 9, urierror_proto); 21001 21000 setprop(js, glob, js_mkstr(js, "URIError", 8), mkval(T_FUNC, vdata(urierr_ctor_obj))); 21002 21001 21003 21002 jsval_t internerr_ctor_obj = mkobj(js, 0); 21004 21003 set_proto(js, internerr_ctor_obj, function_proto); 21005 21004 set_slot(js, internerr_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_InternalError)); 21006 - setprop_nonconfigurable(js, internerr_ctor_obj, "prototype", 9, internalerror_proto); 21005 + js_setprop_nonconfigurable(js, internerr_ctor_obj, "prototype", 9, internalerror_proto); 21007 21006 setprop(js, glob, js_mkstr(js, "InternalError", 13), mkval(T_FUNC, vdata(internerr_ctor_obj))); 21008 21007 21009 21008 jsval_t regex_ctor_obj = mkobj(js, 0); 21010 21009 set_proto(js, regex_ctor_obj, function_proto); 21011 21010 set_slot(js, regex_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_RegExp)); 21012 - setprop_nonconfigurable(js, regex_ctor_obj, "prototype", 9, regexp_proto); 21011 + js_setprop_nonconfigurable(js, regex_ctor_obj, "prototype", 9, regexp_proto); 21013 21012 setprop(js, glob, js_mkstr(js, "RegExp", 6), mkval(T_FUNC, vdata(regex_ctor_obj))); 21014 21013 21015 21014 jsval_t date_ctor_obj = mkobj(js, 0); ··· 21017 21016 set_slot(js, date_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_Date)); 21018 21017 setprop(js, date_ctor_obj, js_mkstr(js, "now", 3), js_mkfun(builtin_Date_now)); 21019 21018 setprop(js, date_ctor_obj, js_mkstr(js, "UTC", 3), js_mkfun(builtin_Date_UTC)); 21020 - setprop_nonconfigurable(js, date_ctor_obj, "prototype", 9, date_proto); 21019 + js_setprop_nonconfigurable(js, date_ctor_obj, "prototype", 9, date_proto); 21021 21020 setprop(js, glob, js_mkstr(js, "Date", 4), mkval(T_FUNC, vdata(date_ctor_obj))); 21022 21021 21023 21022 jsval_t p_ctor_obj = mkobj(js, 0); ··· 21029 21028 setprop(js, p_ctor_obj, js_mkstr(js, "all", 3), js_mkfun(builtin_Promise_all)); 21030 21029 setprop(js, p_ctor_obj, js_mkstr(js, "race", 4), js_mkfun(builtin_Promise_race)); 21031 21030 setprop(js, p_ctor_obj, js_mkstr(js, "any", 3), js_mkfun(builtin_Promise_any)); 21032 - setprop_nonconfigurable(js, p_ctor_obj, "prototype", 9, promise_proto); 21031 + js_setprop_nonconfigurable(js, p_ctor_obj, "prototype", 9, promise_proto); 21033 21032 setprop(js, glob, js_mkstr(js, "Promise", 7), mkval(T_FUNC, vdata(p_ctor_obj))); 21034 21033 21035 21034 jsval_t bigint_ctor_obj = mkobj(js, 0); ··· 21037 21036 set_slot(js, bigint_ctor_obj, SLOT_CFUNC, js_mkfun(builtin_BigInt)); 21038 21037 setprop(js, bigint_ctor_obj, js_mkstr(js, "asIntN", 6), js_mkfun(builtin_BigInt_asIntN)); 21039 21038 setprop(js, bigint_ctor_obj, js_mkstr(js, "asUintN", 7), js_mkfun(builtin_BigInt_asUintN)); 21040 - setprop_nonconfigurable(js, bigint_ctor_obj, "prototype", 9, bigint_proto); 21039 + js_setprop_nonconfigurable(js, bigint_ctor_obj, "prototype", 9, bigint_proto); 21041 21040 setprop(js, glob, js_mkstr(js, "BigInt", 6), mkval(T_FUNC, vdata(bigint_ctor_obj))); 21042 21041 21043 21042 setprop(js, glob, js_mkstr(js, "eval", 4), js_mkfun(builtin_eval));
+2 -2
src/core/events.js
··· 1 - this.createEventTarget = function () { 1 + function createEventTarget() { 2 2 const obj = {}; 3 3 obj.addEventListener = EventTargetPrototype.addEventListener; 4 4 obj.removeEventListener = EventTargetPrototype.removeEventListener; 5 5 obj.dispatchEvent = EventTargetPrototype.dispatchEvent; 6 6 return obj; 7 - }; 7 + }
+3 -1
src/modules/events.c
··· 650 650 js_set(js, event_target_proto, "dispatchEvent", js_mkfun(js_dispatch_event_method)); 651 651 js_set(js, event_target_proto, get_toStringTag_sym_key(), js_mkstr(js, "EventTarget", 11)); 652 652 653 - js_set(js, global, "EventTargetPrototype", event_target_proto); 653 + jsval_t event_target = js_mkobj(js); 654 + js_setprop_nonconfigurable(js, event_target, "prototype", 9, event_target_proto); 655 + js_set(js, global, "EventTarget", event_target); 654 656 } 655 657 656 658
+2 -3
src/tools/gen_snapshot.c
··· 576 576 577 577 size_t compact_pos = 0; 578 578 for (size_t i = 0; i < processed_len; i++) { 579 - if (js_code[i] != '\n' && js_code[i] != '\r') { 580 - compacted[compact_pos++] = js_code[i]; 581 - } 579 + if (js_code[i] != '\n' && js_code[i] != '\r') compacted[compact_pos++] = js_code[i]; 582 580 } 583 581 compacted[compact_pos] = '\0'; 584 582 583 + printf("%s", compacted); 585 584 free(js_code); 586 585 js_code = compacted; 587 586 processed_len = compact_pos;