diff options
Diffstat (limited to 'src/bun.js/bindings/ZigGlobalObject.cpp')
-rw-r--r-- | src/bun.js/bindings/ZigGlobalObject.cpp | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/bun.js/bindings/ZigGlobalObject.cpp b/src/bun.js/bindings/ZigGlobalObject.cpp index 237e789e8..a89484b1a 100644 --- a/src/bun.js/bindings/ZigGlobalObject.cpp +++ b/src/bun.js/bindings/ZigGlobalObject.cpp @@ -245,14 +245,14 @@ extern "C" bool JSGlobalObject__startRemoteInspector(Zig::GlobalObject* globalOb #if !ENABLE(REMOTE_INSPECTOR) return false; #else - globalObject->setInspectable(true); bool didSucceed = false; // This function calls immediately. auto inspector = BunInspector::startWebSocketServer( + globalObject, *globalObject->scriptExecutionContext(), WTF::String::fromUTF8(host), - port, [port, &didSucceed](RefPtr<BunInspector> inspector, bool success) { + port, [port, &didSucceed](BunInspector* inspector, bool success) { didSucceed = success; if (success) { @@ -284,6 +284,10 @@ extern "C" JSC__JSGlobalObject* Zig__GlobalObject__create(JSClassRef* globalObje if (count > 0) { globalObject->installAPIGlobals(globalObjectClass, count, vm); } + if (inspector != 0) { + globalObject->setInspectable(true); + globalObject->inspectorController().debugger(); + } JSC::gcProtect(globalObject); vm.ref(); return globalObject; @@ -549,6 +553,9 @@ WebCore::ScriptExecutionContext* GlobalObject::scriptExecutionContext() const void GlobalObject::reportUncaughtExceptionAtEventLoop(JSGlobalObject* globalObject, JSC::Exception* exception) { + if (globalObject->hasDebugger()) { + globalObject->debugger()->exception(globalObject, nullptr, exception, false); + } Bun__reportUnhandledError(globalObject, JSValue::encode(JSValue(exception))); } @@ -560,10 +567,16 @@ void GlobalObject::promiseRejectionTracker(JSGlobalObject* obj, JSC::JSPromise* // Do this in C++ for now auto* globalObj = reinterpret_cast<GlobalObject*>(obj); + switch (operation) { - case JSPromiseRejectionOperation::Reject: + case JSPromiseRejectionOperation::Reject: { + if (obj->hasDebugger()) { + obj->debugger()->exception(obj, nullptr, promise->result(), false); + } + globalObj->m_aboutToBeNotifiedRejectedPromises.append(JSC::Strong<JSPromise>(obj->vm(), promise)); break; + } case JSPromiseRejectionOperation::Handle: globalObj->m_aboutToBeNotifiedRejectedPromises.removeFirstMatching([&](Strong<JSPromise>& unhandledPromise) { return unhandledPromise.get() == promise; |