mirror of
https://github.com/oven-sh/bun
synced 2026-02-09 18:38:55 +00:00
Merge branch 'main' into claude/compose
This commit is contained in:
@@ -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.
|
||||
```
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
|
||||
@@ -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]),
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
`;
|
||||
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
|
||||
const asyncLocalStorage = new AsyncLocalStorage();
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const { exec } = require("child_process");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const { execFile } = require("child_process");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const { spawn } = require("child_process");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const crypto = require("crypto");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const crypto = require("crypto");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const crypto = require("crypto");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const crypto = require("crypto");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const crypto = require("crypto");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const crypto = require("crypto");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const crypto = require("crypto");
|
||||
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const crypto = require("crypto");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const crypto = require("crypto");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const crypto = require("crypto");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const dgram = require("dgram");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const dgram = require("dgram");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const dns = require("dns");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const dns = require("dns");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const dns = require("dns");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const dns = require("dns");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const dns = require("dns");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const dns = require("dns");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const { EventEmitter } = require("events");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const { EventEmitter, on } = require("events");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const fs = require("fs");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const fs = require("fs");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const fs = require("fs").promises;
|
||||
const path = require("path");
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const fs = require("fs");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const fs = require("fs");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const fs = require("fs");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const http = require("http");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const http = require("http");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const https = require("https");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const net = require("net");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const net = require("net");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const net = require("net");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
|
||||
const asyncLocalStorage = new AsyncLocalStorage();
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
|
||||
const asyncLocalStorage = new AsyncLocalStorage();
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const readline = require("readline");
|
||||
const { Readable } = require("stream");
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const { Readable } = require("stream");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const { Readable } = require("stream");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const { Transform } = require("stream");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const { Writable } = require("stream");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const timers = require("timers/promises");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
|
||||
const asyncLocalStorage = new AsyncLocalStorage();
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
|
||||
const asyncLocalStorage = new AsyncLocalStorage();
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const tls = require("tls");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const util = require("util");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const util = require("util");
|
||||
const fs = require("fs");
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const vm = require("vm");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const { Worker, isMainThread, parentPort } = require("worker_threads");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const zlib = require("zlib");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const zlib = require("zlib");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const zlib = require("zlib");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const zlib = require("zlib");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const zlib = require("zlib");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const zlib = require("zlib");
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
process.exitCode = 1;
|
||||
const { AsyncLocalStorage } = require("async_hooks");
|
||||
const zlib = require("zlib");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user