Merge branch 'main' into claude/compose

This commit is contained in:
Jarred Sumner
2025-09-10 14:13:04 -07:00
committed by GitHub
83 changed files with 203 additions and 22 deletions

View File

@@ -9,8 +9,9 @@ $ bun create next-app
✔ What is your project named? … my-app
✔ Would you like to use TypeScript with this project? … No / Yes
✔ Would you like to use ESLint with this project? … No / Yes
✔ Would you like to use Tailwind CSS? ... No / Yes
✔ Would you like to use `src/` directory with this project? … No / Yes
✔ Would you like to use experimental `app/` directory with this project? … No / Yes
✔ Would you like to use App Router? (recommended) ... No / Yes
✔ What import alias would you like configured? … @/*
Creating a new Next.js app in /path/to/my-app.
```

View File

@@ -3,6 +3,10 @@
#include "AsyncContextFrame.h"
#include <JavaScriptCore/InternalFieldTuple.h>
#if ASSERT_ENABLED
#include <JavaScriptCore/IntegrityInlines.h>
#endif
using namespace JSC;
using namespace WebCore;
@@ -64,6 +68,28 @@ void AsyncContextFrame::visitChildrenImpl(JSCell* cell, Visitor& visitor)
DEFINE_VISIT_CHILDREN(AsyncContextFrame);
#if ASSERT_ENABLED
void auditEverything(JSGlobalObject* globalObject, JSValue value, JSValue thisValue, const ArgList& args)
{
auto& vm = globalObject->vm();
ASSERT_WITH_MESSAGE(!value.isEmpty(), "Value is JSValue.zero. This will cause a crash.");
ASSERT_WITH_MESSAGE(value.isCell(), "AsyncContextFrame value is not a cell. This will cause a crash.");
ASSERT_WITH_MESSAGE(!thisValue.isEmpty(), "This value is JSValue.zero. This will cause a crash.");
JSC::Integrity::auditCellFully(vm, value.asCell());
if (thisValue.isCell()) {
JSC::Integrity::auditCellFully(vm, thisValue.asCell());
}
for (size_t i = 0; i < args.size(); i++) {
ASSERT_WITH_MESSAGE(!args.at(i).isEmpty(), "Argument #%lu is JSValue.zero. This will cause a crash.", i);
if (args.at(i).isCell()) {
JSC::Integrity::auditCellFully(vm, args.at(i).asCell());
}
}
}
#endif
extern "C" JSC::EncodedJSValue AsyncContextFrame__withAsyncContextIfNeeded(JSGlobalObject* globalObject, JSC::EncodedJSValue callback)
{
return JSValue::encode(AsyncContextFrame::withAsyncContextIfNeeded(globalObject, JSValue::decode(callback)));
@@ -97,6 +123,10 @@ extern "C" JSC::EncodedJSValue AsyncContextFrame__withAsyncContextIfNeeded(JSGlo
// }
JSValue AsyncContextFrame::call(JSGlobalObject* global, JSValue functionObject, JSValue thisValue, const ArgList& args)
{
#if ASSERT_ENABLED
auditEverything(global, functionObject, thisValue, args);
#endif
if (!global->isAsyncContextTrackingEnabled()) [[likely]] {
return JSC::profiledCall(global, ProfilingReason::API, functionObject, JSC::getCallData(functionObject), thisValue, args);
}
@@ -105,6 +135,10 @@ JSValue AsyncContextFrame::call(JSGlobalObject* global, JSValue functionObject,
}
JSValue AsyncContextFrame::call(JSGlobalObject* global, JSValue functionObject, JSValue thisValue, const ArgList& args, NakedPtr<Exception>& returnedException)
{
#if ASSERT_ENABLED
auditEverything(global, functionObject, thisValue, args);
#endif
if (!global->isAsyncContextTrackingEnabled()) [[likely]] {
return JSC::profiledCall(global, ProfilingReason::API, functionObject, JSC::getCallData(functionObject), thisValue, args, returnedException);
}
@@ -123,7 +157,9 @@ JSValue AsyncContextFrame::profiledCall(JSGlobalObject* global, JSValue function
JSC::JSValue AsyncContextFrame::run(JSGlobalObject* global, JSValue functionObject, JSValue thisValue, const ArgList& args)
{
ASSERT(global->isAsyncContextTrackingEnabled());
#if ASSERT_ENABLED
auditEverything(global, functionObject, thisValue, args);
#endif
ASYNCCONTEXTFRAME_CALL_IMPL(global, ProfilingReason::API, functionObject, JSC::getCallData(functionObject), thisValue, args);
}
#undef ASYNCCONTEXTFRAME_CALL_IMPL

View File

@@ -90,6 +90,10 @@ typedef int mode_t;
#endif
#endif
#if ASSERT_ENABLED
#include <JavaScriptCore/IntegrityInlines.h>
#endif
#pragma mark - Node.js Process
#if defined(__APPLE__)
@@ -3407,12 +3411,9 @@ void Process::queueNextTick(JSC::JSGlobalObject* globalObject, const ArgList& ar
ASSERT(!args.isEmpty());
JSObject* nextTickFn = this->m_nextTickFunction.get();
auto* frame = jsDynamicCast<AsyncContextFrame*>(args.at(0));
if (frame) {
frame->run(globalObject, jsUndefined(), nextTickFn, args);
} else {
AsyncContextFrame::call(globalObject, nextTickFn, jsUndefined(), args);
}
ASSERT(nextTickFn);
ASSERT_WITH_MESSAGE(!args.at(0).inherits<AsyncContextFrame>(), "queueNextTick must not pass an AsyncContextFrame. This will cause a crash.");
JSC::call(globalObject, nextTickFn, args, "Failed to call nextTick"_s);
RELEASE_AND_RETURN(scope, void());
}

View File

@@ -135,6 +135,10 @@
#include <JavaScriptCore/VMInlines.h>
#include "wtf-bindings.h"
#if ASSERT_ENABLED
#include <JavaScriptCore/IntegrityInlines.h>
#endif
#if OS(DARWIN)
#if ASSERT_ENABLED
#if !__has_feature(address_sanitizer)
@@ -2662,18 +2666,17 @@ extern "C" bool Bun__JSValue__isAsyncContextFrame(JSC::EncodedJSValue value)
return jsDynamicCast<AsyncContextFrame*>(JSValue::decode(value)) != nullptr;
}
extern "C" JSC::EncodedJSValue Bun__JSValue__call(JSContextRef ctx, JSC::EncodedJSValue object,
extern "C" JSC::EncodedJSValue Bun__JSValue__call(JSC::JSGlobalObject* globalObject, JSC::EncodedJSValue object,
JSC::EncodedJSValue thisObject, size_t argumentCount,
const JSValueRef* arguments)
const JSC::EncodedJSValue* arguments)
{
JSC::JSGlobalObject* globalObject = toJS(ctx);
auto& vm = JSC::getVM(globalObject);
auto scope = DECLARE_THROW_SCOPE(globalObject->vm());
auto scope = DECLARE_THROW_SCOPE(vm);
ASSERT_WITH_MESSAGE(!vm.isCollectorBusyOnCurrentThread(), "Cannot call function inside a finalizer or while GC is running on same thread.");
JSC::JSValue jsObject = JSValue::decode(object);
ASSERT(jsObject);
ASSERT_WITH_MESSAGE(jsObject, "Cannot call function with JSValue zero.");
JSC::JSValue jsThisObject = JSValue::decode(thisObject);
@@ -2691,11 +2694,24 @@ extern "C" JSC::EncodedJSValue Bun__JSValue__call(JSContextRef ctx, JSC::Encoded
JSC::MarkedArgumentBuffer argList;
argList.ensureCapacity(argumentCount);
for (size_t i = 0; i < argumentCount; i++)
argList.append(toJS(globalObject, arguments[i]));
for (size_t i = 0; i < argumentCount; i++) {
#if ASSERT_ENABLED
ASSERT_WITH_MESSAGE(!JSValue::decode(arguments[i]).isEmpty(), "Argument #%lu is JSValue.zero. This will cause a crash.", i);
if (JSC::JSValue::decode(arguments[i]).isCell()) {
JSC::Integrity::auditCellFully(vm, JSC::JSValue::decode(arguments[i]).asCell());
}
#endif
argList.append(JSC::JSValue::decode(arguments[i]));
}
#if ASSERT_ENABLED
JSC::Integrity::auditCellFully(vm, jsObject.asCell());
#endif
auto callData = getCallData(jsObject);
ASSERT(jsObject.isCallable());
ASSERT_WITH_MESSAGE(jsObject.isCallable(), "Function passed to .call must be callable.");
ASSERT(callData.type != JSC::CallData::Type::None);
if (callData.type == JSC::CallData::Type::None)
return {};
@@ -6106,6 +6122,25 @@ extern "C" void JSC__JSGlobalObject__queueMicrotaskJob(JSC::JSGlobalObject* arg0
microtaskArgs[3] = jsUndefined();
}
#if ASSERT_ENABLED
auto& vm = globalObject->vm();
if (microtaskArgs[0].isCell()) {
JSC::Integrity::auditCellFully(vm, microtaskArgs[0].asCell());
if (!microtaskArgs[0].inherits<AsyncContextFrame>()) {
ASSERT_WITH_MESSAGE(microtaskArgs[0].isCallable(), "queueMicrotask must be called with an async context frame or a callable.");
}
}
if (microtaskArgs[1].isCell()) {
JSC::Integrity::auditCellFully(vm, microtaskArgs[1].asCell());
}
if (microtaskArgs[2].isCell()) {
JSC::Integrity::auditCellFully(vm, microtaskArgs[2].asCell());
}
if (microtaskArgs[3].isCell()) {
JSC::Integrity::auditCellFully(vm, microtaskArgs[3].asCell());
}
#endif
globalObject->queueMicrotask(
globalObject->performMicrotaskFunction(),
WTFMove(microtaskArgs[0]),

View File

@@ -257,8 +257,6 @@ const random = struct {
const res = std.crypto.random.intRangeLessThan(i64, min, max);
if (!callback.isUndefined()) {
callback = callback.withAsyncContextIfNeeded(global);
try callback.callNextTick(global, [2]JSValue{ .js_undefined, JSValue.jsNumber(res) });
return .js_undefined;
}

View File

@@ -1090,6 +1090,11 @@ JSC_DEFINE_CUSTOM_GETTER(${symbolName(typeName, name)}GetterWrap, (JSGlobalObjec
);
RETURN_IF_EXCEPTION(throwScope, {});
thisObject->${cacheName}.set(vm, thisObject, result);
#if ASSERT_ENABLED
if (!result.isEmpty() && result.isCell()) {
JSC::Integrity::auditCellFully(vm, result.asCell());
}
#endif
RELEASE_AND_RETURN(throwScope, JSValue::encode(result));
}`.trim(),
);
@@ -1131,6 +1136,11 @@ JSC_DEFINE_CUSTOM_GETTER(${symbolName(typeName, name)}GetterWrap, (JSGlobalObjec
);
RETURN_IF_EXCEPTION(throwScope, {});
thisObject->${cacheName}.set(vm, thisObject, result);
#if ASSERT_ENABLED
if (!result.isEmpty() && result.isCell()) {
JSC::Integrity::auditCellFully(vm, result.asCell());
}
#endif
RELEASE_AND_RETURN(throwScope, JSValue::encode(result));
}
`.trim(),
@@ -1152,6 +1162,12 @@ JSC_DEFINE_CUSTOM_GETTER(${symbolName(typeName, name)}GetterWrap, (JSGlobalObjec
!!proto[name].this ? " encodedThisValue, " : ""
} globalObject);
RETURN_IF_EXCEPTION(throwScope, {});
#if ASSERT_ENABLED
JSValue decodedValue = JSValue::decode(result);
if (!decodedValue.isEmpty() && decodedValue.isCell()) {
JSC::Integrity::auditCellFully(vm, decodedValue.asCell());
}
#endif
RELEASE_AND_RETURN(throwScope, result);
}
`);
@@ -1171,6 +1187,12 @@ JSC_DEFINE_CUSTOM_GETTER(${symbolName(typeName, name)}GetterWrap, (JSGlobalObjec
!!proto[name].this ? " encodedThisValue, " : ""
} globalObject);
RETURN_IF_EXCEPTION(throwScope, {});
#if ASSERT_ENABLED
JSValue decodedValue = JSValue::decode(result);
if (!decodedValue.isEmpty() && decodedValue.isCell()) {
JSC::Integrity::auditCellFully(vm, decodedValue.asCell());
}
#endif
RELEASE_AND_RETURN(throwScope, result);
}
`);
@@ -1186,10 +1208,9 @@ JSC_DEFINE_CUSTOM_SETTER(${symbolName(typeName, name)}SetterWrap, (JSGlobalObjec
auto throwScope = DECLARE_THROW_SCOPE(vm);
${className(typeName)}* thisObject = jsCast<${className(typeName)}*>(JSValue::decode(encodedThisValue));
JSC::EnsureStillAliveScope thisArg = JSC::EnsureStillAliveScope(thisObject);
auto result = ${symbolName(typeName, proto[name].setter || proto[name].accessor.setter)}(thisObject->wrapped(),${
bool result = ${symbolName(typeName, proto[name].setter || proto[name].accessor.setter)}(thisObject->wrapped(),${
!!proto[name].this ? " encodedThisValue, " : ""
} lexicalGlobalObject, encodedValue);
RELEASE_AND_RETURN(throwScope, result);
}
`,
@@ -1270,6 +1291,13 @@ JSC_DEFINE_HOST_FUNCTION(${symbolName(typeName, name)}Callback, (JSGlobalObject
}`
}
#if ASSERT_ENABLED
JSValue decodedValue = JSValue::decode(result);
if (!decodedValue.isEmpty() && decodedValue.isCell()) {
JSC::Integrity::auditCellFully(vm, decodedValue.asCell());
}
#endif
return result;
#endif
@@ -2385,6 +2413,9 @@ const GENERATED_CLASSES_IMPL_HEADER_PRE = `
#define JSC_CALLCONV "C" SYSV_ABI
#endif
#if ASSERT_ENABLED
#include <JavaScriptCore/IntegrityInlines.h>
#endif
`;

View File

@@ -352,7 +352,7 @@ pub fn stopTimers(this: *@This()) void {
}
pub fn getQueriesArray(this: *const @This()) JSValue {
return js.queriesGetCached(this.js_value) orelse .zero;
return js.queriesGetCached(this.js_value) orelse .js_undefined;
}
pub fn failFmt(this: *@This(), error_code: AnyMySQLError.Error, comptime fmt: [:0]const u8, args: anytype) void {
const message = bun.handleOom(std.fmt.allocPrint(bun.default_allocator, fmt, args));

View File

@@ -1350,7 +1350,7 @@ fn advance(this: *PostgresSQLConnection) void {
}
pub fn getQueriesArray(this: *const PostgresSQLConnection) JSValue {
return js.queriesGetCached(this.js_value) orelse .zero;
return js.queriesGetCached(this.js_value) orelse .js_undefined;
}
pub fn on(this: *PostgresSQLConnection, comptime MessageType: @Type(.enum_literal), comptime Context: type, reader: protocol.NewReader(Context)) AnyPostgresError!void {

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const asyncLocalStorage = new AsyncLocalStorage();

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const { exec } = require("child_process");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const { execFile } = require("child_process");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const { spawn } = require("child_process");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const crypto = require("crypto");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const crypto = require("crypto");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const crypto = require("crypto");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const crypto = require("crypto");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const crypto = require("crypto");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const crypto = require("crypto");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const crypto = require("crypto");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const crypto = require("crypto");
@@ -9,6 +10,10 @@ asyncLocalStorage.run({ test: "crypto.randomInt" }, () => {
console.error("FAIL: crypto.randomInt callback lost context");
process.exit(1);
}
if (n >= 100) {
throw new Error("crypto.randomInt callback returned a number >= 100");
}
process.exit(0);
});
});

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const crypto = require("crypto");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const crypto = require("crypto");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const crypto = require("crypto");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const dgram = require("dgram");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const dgram = require("dgram");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const dns = require("dns");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const dns = require("dns");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const dns = require("dns");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const dns = require("dns");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const dns = require("dns");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const dns = require("dns");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const { EventEmitter } = require("events");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const { EventEmitter, on } = require("events");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const fs = require("fs");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const fs = require("fs");
const path = require("path");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const fs = require("fs");
const path = require("path");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const fs = require("fs");
const path = require("path");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const fs = require("fs");
const path = require("path");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const fs = require("fs");
const path = require("path");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const fs = require("fs");
const path = require("path");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const fs = require("fs");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const fs = require("fs");
const path = require("path");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const fs = require("fs");
const path = require("path");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const fs = require("fs");
const path = require("path");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const fs = require("fs").promises;
const path = require("path");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const fs = require("fs");
const path = require("path");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const fs = require("fs");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const fs = require("fs");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const fs = require("fs");
const path = require("path");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const fs = require("fs");
const path = require("path");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const fs = require("fs");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const fs = require("fs");
const path = require("path");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const fs = require("fs");
const path = require("path");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const fs = require("fs");
const path = require("path");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const fs = require("fs");
const path = require("path");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const http = require("http");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const http = require("http");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const https = require("https");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const net = require("net");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const net = require("net");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const net = require("net");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const asyncLocalStorage = new AsyncLocalStorage();

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const asyncLocalStorage = new AsyncLocalStorage();

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const readline = require("readline");
const { Readable } = require("stream");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const { Readable } = require("stream");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const { Readable } = require("stream");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const { Transform } = require("stream");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const { Writable } = require("stream");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const timers = require("timers/promises");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const asyncLocalStorage = new AsyncLocalStorage();

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const asyncLocalStorage = new AsyncLocalStorage();

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const tls = require("tls");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const util = require("util");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const util = require("util");
const fs = require("fs");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const vm = require("vm");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const { Worker, isMainThread, parentPort } = require("worker_threads");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const zlib = require("zlib");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const zlib = require("zlib");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const zlib = require("zlib");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const zlib = require("zlib");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const zlib = require("zlib");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const zlib = require("zlib");

View File

@@ -1,3 +1,4 @@
process.exitCode = 1;
const { AsyncLocalStorage } = require("async_hooks");
const zlib = require("zlib");