aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/bun.js')
-rw-r--r--src/bun.js/api/bun.zig20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/bun.js/api/bun.zig b/src/bun.js/api/bun.zig
index 131e08b6e..a56d4f79f 100644
--- a/src/bun.js/api/bun.zig
+++ b/src/bun.js/api/bun.zig
@@ -1990,10 +1990,30 @@ pub const Unsafe = struct {
.arrayBufferToString = .{
.rfn = arrayBufferToString,
},
+ .gcAggressionLevel = .{
+ .rfn = JSC.wrapWithHasContainer(Unsafe, "gcAggressionLevel", false, false, false),
+ },
},
.{},
);
+ pub fn gcAggressionLevel(
+ globalThis: *JSC.JSGlobalObject,
+ value_: ?JSValue,
+ ) JSValue {
+ const ret = JSValue.jsNumber(@as(i32, @enumToInt(globalThis.bunVM().aggressive_garbage_collection)));
+
+ if (value_) |value| {
+ switch (value.coerce(i32, globalThis)) {
+ 1 => globalThis.bunVM().aggressive_garbage_collection = .mild,
+ 2 => globalThis.bunVM().aggressive_garbage_collection = .aggressive,
+ 0 => globalThis.bunVM().aggressive_garbage_collection = .none,
+ else => {},
+ }
+ }
+ return ret;
+ }
+
// For testing the segfault handler
pub fn __debug__doSegfault(
_: void,