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 prop cache invalidation for object

+14 -1
+1 -1
meson.build
··· 74 74 build_date = run_command('date', '+%Y-%m-%d', check: true).stdout().strip() 75 75 76 76 version_conf = configuration_data() 77 - version_conf.set('ANT_VERSION', '0.2.1.7') 77 + version_conf.set('ANT_VERSION', '0.2.1.8') 78 78 version_conf.set('ANT_GIT_HASH', git_hash) 79 79 version_conf.set('ANT_BUILD_DATE', build_date) 80 80
+13
src/ant.c
··· 2870 2870 } 2871 2871 } 2872 2872 2873 + static void invalidate_prop_cache_for_obj(jsoff_t obj_offset) { 2874 + for (uint32_t i = 0; i < INTERN_PROP_CACHE_SIZE; i++) { 2875 + if (intern_prop_cache[i].obj_off == obj_offset) { 2876 + intern_prop_cache[i].obj_off = 0; 2877 + intern_prop_cache[i].intern_ptr = NULL; 2878 + intern_prop_cache[i].prop_off = 0; 2879 + } 2880 + } 2881 + } 2882 + 2873 2883 static jsval_t mkprop(struct js *js, jsval_t obj, jsval_t k, jsval_t v, bool is_const) { 2874 2884 jsoff_t koff = (jsoff_t) vdata(k); 2875 2885 jsoff_t b, head = (jsoff_t) vdata(obj); ··· 8012 8022 saveoff(js, obj_off, (deleted_next & ~3U) | (current & (GCMASK | CONSTMASK | 3U))); 8013 8023 saveoff(js, prop_off, loadoff(js, prop_off) | GCMASK); 8014 8024 invalidate_obj_cache(obj_off); 8025 + invalidate_prop_cache_for_obj(obj_off); 8015 8026 // js_gc(js); disabled 8016 8027 return js_mktrue(); 8017 8028 } ··· 8024 8035 saveoff(js, prev, (deleted_next & ~3U) | (current & (GCMASK | CONSTMASK | 3U))); 8025 8036 saveoff(js, prop_off, loadoff(js, prop_off) | GCMASK); 8026 8037 invalidate_obj_cache(obj_off); 8038 + invalidate_prop_cache_for_obj(obj_off); 8027 8039 // js_gc(js); disabled 8028 8040 return js_mktrue(); 8029 8041 } ··· 8121 8133 } 8122 8134 saveoff(js, prop_off, loadoff(js, prop_off) | GCMASK); 8123 8135 invalidate_obj_cache(owner_obj_off); 8136 + invalidate_prop_cache_for_obj(owner_obj_off); 8124 8137 // js_gc(js); disabled 8125 8138 } 8126 8139 (void) save_pos;