diff options
author | wolfbeast <mcwerewolf@gmail.com> | 2017-07-19 01:24:28 +0200 |
---|---|---|
committer | wolfbeast <mcwerewolf@gmail.com> | 2018-02-02 19:03:24 +0100 |
commit | 8a1dc97a5aaf1f245b8bbf72de0e9458d15eeb81 (patch) | |
tree | 7793437a25822339e20a82ed16f7f66cc54e1eaf /js | |
parent | 216bd0a9580417e846aa357e3bc2a6dcfd5b1409 (diff) | |
download | UXP-8a1dc97a5aaf1f245b8bbf72de0e9458d15eeb81.tar UXP-8a1dc97a5aaf1f245b8bbf72de0e9458d15eeb81.tar.gz UXP-8a1dc97a5aaf1f245b8bbf72de0e9458d15eeb81.tar.lz UXP-8a1dc97a5aaf1f245b8bbf72de0e9458d15eeb81.tar.xz UXP-8a1dc97a5aaf1f245b8bbf72de0e9458d15eeb81.zip |
Implement configuration pref for Generational Garbage Collection.
Pref: javascript.options.mem.gc_generational
This resolves #20
Diffstat (limited to 'js')
-rw-r--r-- | js/src/jsapi.cpp | 11 | ||||
-rw-r--r-- | js/src/jsapi.h | 3 |
2 files changed, 14 insertions, 0 deletions
diff --git a/js/src/jsapi.cpp b/js/src/jsapi.cpp index a99d08951..e4e86effa 100644 --- a/js/src/jsapi.cpp +++ b/js/src/jsapi.cpp @@ -1410,6 +1410,17 @@ JS_SetGCParameter(JSContext* cx, JSGCParamKey key, uint32_t value) MOZ_ALWAYS_TRUE(cx->gc.setParameter(key, value, lock)); } +JS_PUBLIC_API(void) +JS_SetGGCMode(JSContext* cx, bool enabled) +{ + // Control GGC + if (enabled && !cx->gc.isGenerationalGCEnabled()) { + cx->gc.enableGenerationalGC(); + } else if (!enabled && cx->gc.isGenerationalGCEnabled()) { + cx->gc.disableGenerationalGC(); + } +} + JS_PUBLIC_API(uint32_t) JS_GetGCParameter(JSContext* cx, JSGCParamKey key) { diff --git a/js/src/jsapi.h b/js/src/jsapi.h index 46aa15947..6700a6c51 100644 --- a/js/src/jsapi.h +++ b/js/src/jsapi.h @@ -1768,6 +1768,9 @@ typedef enum JSGCParamKey { extern JS_PUBLIC_API(void) JS_SetGCParameter(JSContext* cx, JSGCParamKey key, uint32_t value); +extern JS_PUBLIC_API(void) +JS_SetGGCMode(JSContext* cx, bool enabled); + extern JS_PUBLIC_API(uint32_t) JS_GetGCParameter(JSContext* cx, JSGCParamKey key); |