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 type mask and reference type constants

+6 -3
+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.25') 99 + version_conf.set('ANT_VERSION', '0.3.2.26') 100 100 version_conf.set('ANT_GIT_HASH', git_hash) 101 101 version_conf.set('ANT_BUILD_DATE', build_date) 102 102
+5 -2
src/ant.c
··· 443 443 T_BIGINT, T_PROPREF, T_SYMBOL, T_GENERATOR, T_FFI 444 444 }; 445 445 446 + #define TYPE_MASK(t) (1u << (t)) 447 + #define T_REFTYPE (TYPE_MASK(T_FUNC) | TYPE_MASK(T_ARR) | TYPE_MASK(T_PROMISE) | TYPE_MASK(T_OBJ)) 448 + 446 449 static const char *typestr_raw(uint8_t t) { 447 450 const char *names[] = { 448 451 "object", "prop", "string", "undefined", "null", "number", ··· 4604 4607 jsval_t proto = get_slot(js, as_obj, SLOT_PROTO); 4605 4608 uint8_t pt = vtype(proto); 4606 4609 if (pt != T_OBJ && pt != T_ARR && pt != T_FUNC) { 4607 - if (t == T_FUNC || t == T_ARR || t == T_PROMISE) { 4610 + if (TYPE_MASK(t) & T_REFTYPE) { 4608 4611 cur = get_prototype_for_type(js, t); 4609 4612 t = vtype(cur); 4610 4613 if (t == T_NULL || t == T_UNDEF) break; ··· 5285 5288 own_off = lkp(js, l, ptr, plen); 5286 5289 if (own_off != 0) return mkval(T_PROP, own_off); 5287 5290 } 5288 - 5291 + 5289 5292 jsval_t key = js_mkstr(js, ptr, plen); 5290 5293 return mkpropref((jsoff_t)vdata(l), (jsoff_t)vdata(key)); 5291 5294 }