aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/bindings/ZigGlobalObject.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/bun.js/bindings/ZigGlobalObject.cpp')
-rw-r--r--src/bun.js/bindings/ZigGlobalObject.cpp38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/bun.js/bindings/ZigGlobalObject.cpp b/src/bun.js/bindings/ZigGlobalObject.cpp
index 5524166c3..b6ac8e7ea 100644
--- a/src/bun.js/bindings/ZigGlobalObject.cpp
+++ b/src/bun.js/bindings/ZigGlobalObject.cpp
@@ -3270,6 +3270,41 @@ void GlobalObject::finishCreation(VM& vm)
init.set(JSFunction::create(init.vm, init.owner, 4, "performMicrotaskVariadic"_s, jsFunctionPerformMicrotaskVariadic, ImplementationVisibility::Public));
});
+ m_utilInspectFunction.initLater(
+ [](const Initializer<JSFunction>& init) {
+ JSValue nodeUtilValue = static_cast<Zig::GlobalObject*>(init.owner)->internalModuleRegistry()->requireId(init.owner, init.vm, Bun::InternalModuleRegistry::Field::NodeUtil);
+ RELEASE_ASSERT(nodeUtilValue.isObject());
+ init.set(jsCast<JSFunction*>(nodeUtilValue.getObject()->getIfPropertyExists(init.owner, Identifier::fromString(init.vm, "inspect"_s))));
+ });
+
+ m_utilInspectStylizeColorFunction.initLater(
+ [](const Initializer<JSFunction>& init) {
+ auto scope = DECLARE_THROW_SCOPE(init.vm);
+ JSC::JSFunction* getStylize = JSC::JSFunction::create(init.vm, utilInspectGetStylizeWithColorCodeGenerator(init.vm), init.owner);
+ // RETURN_IF_EXCEPTION(scope, {});
+
+ JSC::MarkedArgumentBuffer args;
+ args.append(static_cast<Zig::GlobalObject*>(init.owner)->utilInspectFunction());
+
+ auto clientData = WebCore::clientData(init.vm);
+ JSC::CallData callData = JSC::getCallData(getStylize);
+
+ NakedPtr<JSC::Exception> returnedException = nullptr;
+ auto result = JSC::call(init.owner, getStylize, callData, jsNull(), args, returnedException);
+ // RETURN_IF_EXCEPTION(scope, {});
+
+ if (returnedException) {
+ throwException(init.owner, scope, returnedException.get());
+ }
+ // RETURN_IF_EXCEPTION(scope, {});
+ init.set(jsCast<JSFunction*>(result));
+ });
+
+ m_utilInspectStylizeNoColorFunction.initLater(
+ [](const Initializer<JSFunction>& init) {
+ init.set(JSC::JSFunction::create(init.vm, utilInspectStylizeWithNoColorCodeGenerator(init.vm), init.owner));
+ });
+
m_nativeMicrotaskTrampoline.initLater(
[](const Initializer<JSFunction>& init) {
init.set(JSFunction::create(init.vm, init.owner, 2, ""_s, functionNativeMicrotaskTrampoline, ImplementationVisibility::Public));
@@ -4606,6 +4641,9 @@ void GlobalObject::visitChildrenImpl(JSCell* cell, Visitor& visitor)
thisObject->m_pendingVirtualModuleResultStructure.visit(visitor);
thisObject->m_performMicrotaskFunction.visit(visitor);
thisObject->m_performMicrotaskVariadicFunction.visit(visitor);
+ thisObject->m_utilInspectFunction.visit(visitor);
+ thisObject->m_utilInspectStylizeColorFunction.visit(visitor);
+ thisObject->m_utilInspectStylizeNoColorFunction.visit(visitor);
thisObject->m_lazyReadableStreamPrototypeMap.visit(visitor);
thisObject->m_requireMap.visit(visitor);
thisObject->m_encodeIntoObjectStructure.visit(visitor);