diff options
Diffstat (limited to 'src/bun.js')
-rw-r--r-- | src/bun.js/api/bun.zig | 20 |
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, |