aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/javascript.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/bun.js/javascript.zig')
-rw-r--r--src/bun.js/javascript.zig18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/bun.js/javascript.zig b/src/bun.js/javascript.zig
index e93e65399..1c996039d 100644
--- a/src/bun.js/javascript.zig
+++ b/src/bun.js/javascript.zig
@@ -311,6 +311,7 @@ pub export fn Bun__Process__disconnect(
globalObject: *JSGlobalObject,
callFrame: *JSC.CallFrame,
) JSValue {
+ JSC.markBinding(@src());
_ = callFrame;
_ = globalObject;
return .undefined;
@@ -319,14 +320,20 @@ pub export fn Bun__Process__disconnect(
/// This function is called on the main thread
/// The bunVM() call will assert this
pub export fn Bun__queueTask(global: *JSGlobalObject, task: *JSC.CppTask) void {
+ JSC.markBinding(@src());
+
global.bunVM().eventLoop().enqueueTask(Task.init(task));
}
pub export fn Bun__queueTaskWithTimeout(global: *JSGlobalObject, task: *JSC.CppTask, milliseconds: i32) void {
+ JSC.markBinding(@src());
+
global.bunVM().eventLoop().enqueueTaskWithTimeout(Task.init(task), milliseconds);
}
pub export fn Bun__reportUnhandledError(globalObject: *JSGlobalObject, value: JSValue) callconv(.C) JSValue {
+ JSC.markBinding(@src());
+
var jsc_vm = globalObject.bunVM();
jsc_vm.onUnhandledError(globalObject, value);
return JSC.JSValue.jsUndefined();
@@ -336,6 +343,8 @@ pub export fn Bun__reportUnhandledError(globalObject: *JSGlobalObject, value: JS
/// The main difference: we need to allocate the task & wakeup the thread
/// We can avoid that if we run it from the main thread.
pub export fn Bun__queueTaskConcurrently(global: *JSGlobalObject, task: *JSC.CppTask) void {
+ JSC.markBinding(@src());
+
var concurrent = bun.default_allocator.create(JSC.ConcurrentTask) catch unreachable;
concurrent.* = JSC.ConcurrentTask{
.task = Task.init(task),
@@ -345,6 +354,8 @@ pub export fn Bun__queueTaskConcurrently(global: *JSGlobalObject, task: *JSC.Cpp
}
pub export fn Bun__handleRejectedPromise(global: *JSGlobalObject, promise: *JSC.JSPromise) void {
+ JSC.markBinding(@src());
+
const result = promise.result(global.vm());
var jsc_vm = global.bunVM();
@@ -1030,6 +1041,8 @@ pub const VirtualMachine = struct {
pub const MacroMap = std.AutoArrayHashMap(i32, js.JSObjectRef);
pub fn enableMacroMode(this: *VirtualMachine) void {
+ JSC.markBinding(@src());
+
if (!this.has_enabled_macro_mode) {
this.has_enabled_macro_mode = true;
this.macro_event_loop.tasks = EventLoop.Queue.init(default_allocator);
@@ -1083,6 +1096,7 @@ pub const VirtualMachine = struct {
pub fn initWithModuleGraph(
opts: Options,
) !*VirtualMachine {
+ JSC.markBinding(@src());
const allocator = opts.allocator;
VMHolder.vm = try allocator.create(VirtualMachine);
var console = try allocator.create(ZigConsoleClient);
@@ -1179,6 +1193,7 @@ pub const VirtualMachine = struct {
};
pub fn init(opts: Options) !*VirtualMachine {
+ JSC.markBinding(@src());
const allocator = opts.allocator;
var log: *logger.Log = undefined;
if (opts.log) |__log| {
@@ -1308,6 +1323,7 @@ pub const VirtualMachine = struct {
worker: *WebWorker,
opts: Options,
) anyerror!*VirtualMachine {
+ JSC.markBinding(@src());
var log: *logger.Log = undefined;
const allocator = opts.allocator;
if (opts.log) |__log| {
@@ -1422,6 +1438,7 @@ pub const VirtualMachine = struct {
pub fn refCountedStringWithWasNew(this: *VirtualMachine, new: *bool, input_: []const u8, hash_: ?u32, comptime dupe: bool) *JSC.RefString {
JSC.markBinding(@src());
+ std.debug.assert(input_.len > 0);
const hash = hash_ orelse JSC.RefString.computeHash(input_);
this.ref_strings_mutex.lock();
defer this.ref_strings_mutex.unlock();
@@ -1450,6 +1467,7 @@ pub const VirtualMachine = struct {
}
pub fn refCountedString(this: *VirtualMachine, input_: []const u8, hash_: ?u32, comptime dupe: bool) *JSC.RefString {
+ std.debug.assert(input_.len > 0);
var _was_new = false;
return this.refCountedStringWithWasNew(&_was_new, input_, hash_, comptime dupe);
}