General GC optimizations (#3221)

- Enable recursive GC marking with a limited recursion count (this option is configurable)
- No need to decrease the reference count of the gray objects anymore
- Bound function object marking is seperated into a helper function

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik frobert@inf.u-szeged.hu
This commit is contained in:
Robert Fancsik
2019-10-24 14:49:47 +02:00
committed by Dániel Bátyai
parent 3b73562fa5
commit 48f34adea5
10 changed files with 176 additions and 92 deletions
+3
View File
@@ -159,6 +159,9 @@ struct jerry_context_t
uint32_t lit_magic_string_ex_count; /**< external magic strings count */
uint32_t jerry_init_flags; /**< run-time configuration flags */
uint32_t status_flags; /**< run-time flags (the top 8 bits are used for passing class parsing options) */
#if (JERRY_GC_MARK_LIMIT != 0)
uint32_t ecma_gc_mark_recursion_limit; /**< GC mark recursion limit */
#endif /* (JERRY_GC_MARK_LIMIT != 0) */
#if ENABLED (JERRY_PROPRETY_HASHMAP)
uint8_t ecma_prop_hashmap_alloc_state; /**< property hashmap allocation state: 0-4,