diff --git a/docs/guides/ecosystem/nextjs.md b/docs/guides/ecosystem/nextjs.md index e54a7bca61..6d0e3ae66e 100644 --- a/docs/guides/ecosystem/nextjs.md +++ b/docs/guides/ecosystem/nextjs.md @@ -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. ``` diff --git a/src/bun.js/bindings/AsyncContextFrame.cpp b/src/bun.js/bindings/AsyncContextFrame.cpp index ce0b503d4d..37a8bab4ed 100644 --- a/src/bun.js/bindings/AsyncContextFrame.cpp +++ b/src/bun.js/bindings/AsyncContextFrame.cpp @@ -3,6 +3,10 @@ #include "AsyncContextFrame.h" #include +#if ASSERT_ENABLED +#include +#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& 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 diff --git a/src/bun.js/bindings/BunProcess.cpp b/src/bun.js/bindings/BunProcess.cpp index cd04ea9ee0..897bb77282 100644 --- a/src/bun.js/bindings/BunProcess.cpp +++ b/src/bun.js/bindings/BunProcess.cpp @@ -90,6 +90,10 @@ typedef int mode_t; #endif #endif +#if ASSERT_ENABLED +#include +#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(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(), "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()); } diff --git a/src/bun.js/bindings/bindings.cpp b/src/bun.js/bindings/bindings.cpp index aff6f36740..459be980e8 100644 --- a/src/bun.js/bindings/bindings.cpp +++ b/src/bun.js/bindings/bindings.cpp @@ -135,6 +135,10 @@ #include #include "wtf-bindings.h" +#if ASSERT_ENABLED +#include +#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(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()) { + 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]), diff --git a/src/bun.js/node/node_crypto_binding.zig b/src/bun.js/node/node_crypto_binding.zig index fd3d2a75be..6226dae43c 100644 --- a/src/bun.js/node/node_crypto_binding.zig +++ b/src/bun.js/node/node_crypto_binding.zig @@ -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; } diff --git a/src/codegen/generate-classes.ts b/src/codegen/generate-classes.ts index bac4c97d04..2cb7ae9993 100644 --- a/src/codegen/generate-classes.ts +++ b/src/codegen/generate-classes.ts @@ -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 +#endif `; diff --git a/src/sql/mysql/MySQLConnection.zig b/src/sql/mysql/MySQLConnection.zig index 6e73f95521..368fc03b7b 100644 --- a/src/sql/mysql/MySQLConnection.zig +++ b/src/sql/mysql/MySQLConnection.zig @@ -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)); diff --git a/src/sql/postgres/PostgresSQLConnection.zig b/src/sql/postgres/PostgresSQLConnection.zig index d2c2a31b67..01a5fba6bd 100644 --- a/src/sql/postgres/PostgresSQLConnection.zig +++ b/src/sql/postgres/PostgresSQLConnection.zig @@ -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 { diff --git a/test/js/node/async_hooks/async-context/async-context-async-iterator.js b/test/js/node/async_hooks/async-context/async-context-async-iterator.js index fe60d2d9e8..396a740e82 100644 --- a/test/js/node/async_hooks/async-context/async-context-async-iterator.js +++ b/test/js/node/async_hooks/async-context/async-context-async-iterator.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const asyncLocalStorage = new AsyncLocalStorage(); diff --git a/test/js/node/async_hooks/async-context/async-context-child_process-exec.js b/test/js/node/async_hooks/async-context/async-context-child_process-exec.js index 9ff5acabeb..f918352092 100644 --- a/test/js/node/async_hooks/async-context/async-context-child_process-exec.js +++ b/test/js/node/async_hooks/async-context/async-context-child_process-exec.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const { exec } = require("child_process"); diff --git a/test/js/node/async_hooks/async-context/async-context-child_process-execFile.js b/test/js/node/async_hooks/async-context/async-context-child_process-execFile.js index c3fe10e868..6c0ec4bd28 100644 --- a/test/js/node/async_hooks/async-context/async-context-child_process-execFile.js +++ b/test/js/node/async_hooks/async-context/async-context-child_process-execFile.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const { execFile } = require("child_process"); diff --git a/test/js/node/async_hooks/async-context/async-context-child_process-spawn-events.js b/test/js/node/async_hooks/async-context/async-context-child_process-spawn-events.js index dd7b9ae218..fbde55b780 100644 --- a/test/js/node/async_hooks/async-context/async-context-child_process-spawn-events.js +++ b/test/js/node/async_hooks/async-context/async-context-child_process-spawn-events.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const { spawn } = require("child_process"); diff --git a/test/js/node/async_hooks/async-context/async-context-crypto-cipher.js b/test/js/node/async_hooks/async-context/async-context-crypto-cipher.js index ec6608dd83..36a27be013 100644 --- a/test/js/node/async_hooks/async-context/async-context-crypto-cipher.js +++ b/test/js/node/async_hooks/async-context/async-context-crypto-cipher.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const crypto = require("crypto"); diff --git a/test/js/node/async_hooks/async-context/async-context-crypto-generateKey.js b/test/js/node/async_hooks/async-context/async-context-crypto-generateKey.js index a9327bda68..5498833101 100644 --- a/test/js/node/async_hooks/async-context/async-context-crypto-generateKey.js +++ b/test/js/node/async_hooks/async-context/async-context-crypto-generateKey.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const crypto = require("crypto"); diff --git a/test/js/node/async_hooks/async-context/async-context-crypto-generateKeyPair.js b/test/js/node/async_hooks/async-context/async-context-crypto-generateKeyPair.js index 81df0fa59f..d58dffef6a 100644 --- a/test/js/node/async_hooks/async-context/async-context-crypto-generateKeyPair.js +++ b/test/js/node/async_hooks/async-context/async-context-crypto-generateKeyPair.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const crypto = require("crypto"); diff --git a/test/js/node/async_hooks/async-context/async-context-crypto-hash.js b/test/js/node/async_hooks/async-context/async-context-crypto-hash.js index 74ed4f18d7..7e0d7d6b9e 100644 --- a/test/js/node/async_hooks/async-context/async-context-crypto-hash.js +++ b/test/js/node/async_hooks/async-context/async-context-crypto-hash.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const crypto = require("crypto"); diff --git a/test/js/node/async_hooks/async-context/async-context-crypto-pbkdf2.js b/test/js/node/async_hooks/async-context/async-context-crypto-pbkdf2.js index e308e73db8..16587a50c6 100644 --- a/test/js/node/async_hooks/async-context/async-context-crypto-pbkdf2.js +++ b/test/js/node/async_hooks/async-context/async-context-crypto-pbkdf2.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const crypto = require("crypto"); diff --git a/test/js/node/async_hooks/async-context/async-context-crypto-randomBytes.js b/test/js/node/async_hooks/async-context/async-context-crypto-randomBytes.js index 7e52553ce8..81d80a4bea 100644 --- a/test/js/node/async_hooks/async-context/async-context-crypto-randomBytes.js +++ b/test/js/node/async_hooks/async-context/async-context-crypto-randomBytes.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const crypto = require("crypto"); diff --git a/test/js/node/async_hooks/async-context/async-context-crypto-randomFill.js b/test/js/node/async_hooks/async-context/async-context-crypto-randomFill.js index 2e69af78b2..d1958458fc 100644 --- a/test/js/node/async_hooks/async-context/async-context-crypto-randomFill.js +++ b/test/js/node/async_hooks/async-context/async-context-crypto-randomFill.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const crypto = require("crypto"); diff --git a/test/js/node/async_hooks/async-context/async-context-crypto-randomInt.js b/test/js/node/async_hooks/async-context/async-context-crypto-randomInt.js index 2053ad7ece..de7dce5147 100644 --- a/test/js/node/async_hooks/async-context/async-context-crypto-randomInt.js +++ b/test/js/node/async_hooks/async-context/async-context-crypto-randomInt.js @@ -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); }); }); diff --git a/test/js/node/async_hooks/async-context/async-context-crypto-randomUUID.js b/test/js/node/async_hooks/async-context/async-context-crypto-randomUUID.js index 7985977a2d..457ac3d40c 100644 --- a/test/js/node/async_hooks/async-context/async-context-crypto-randomUUID.js +++ b/test/js/node/async_hooks/async-context/async-context-crypto-randomUUID.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const crypto = require("crypto"); diff --git a/test/js/node/async_hooks/async-context/async-context-crypto-scrypt.js b/test/js/node/async_hooks/async-context/async-context-crypto-scrypt.js index efa13aba37..3be34578f0 100644 --- a/test/js/node/async_hooks/async-context/async-context-crypto-scrypt.js +++ b/test/js/node/async_hooks/async-context/async-context-crypto-scrypt.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const crypto = require("crypto"); diff --git a/test/js/node/async_hooks/async-context/async-context-crypto-sign-verify.js b/test/js/node/async_hooks/async-context/async-context-crypto-sign-verify.js index b538b3d269..3ed96a40d8 100644 --- a/test/js/node/async_hooks/async-context/async-context-crypto-sign-verify.js +++ b/test/js/node/async_hooks/async-context/async-context-crypto-sign-verify.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const crypto = require("crypto"); diff --git a/test/js/node/async_hooks/async-context/async-context-dgram-events.js b/test/js/node/async_hooks/async-context/async-context-dgram-events.js index f66aa3ff4e..24976e3167 100644 --- a/test/js/node/async_hooks/async-context/async-context-dgram-events.js +++ b/test/js/node/async_hooks/async-context/async-context-dgram-events.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const dgram = require("dgram"); diff --git a/test/js/node/async_hooks/async-context/async-context-dgram-send.js b/test/js/node/async_hooks/async-context/async-context-dgram-send.js index ac72d16b1e..4013fd4e9b 100644 --- a/test/js/node/async_hooks/async-context/async-context-dgram-send.js +++ b/test/js/node/async_hooks/async-context/async-context-dgram-send.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const dgram = require("dgram"); diff --git a/test/js/node/async_hooks/async-context/async-context-dns-lookup.js b/test/js/node/async_hooks/async-context/async-context-dns-lookup.js index e4d6df2f03..a76bbd295d 100644 --- a/test/js/node/async_hooks/async-context/async-context-dns-lookup.js +++ b/test/js/node/async_hooks/async-context/async-context-dns-lookup.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const dns = require("dns"); diff --git a/test/js/node/async_hooks/async-context/async-context-dns-resolve4.js b/test/js/node/async_hooks/async-context/async-context-dns-resolve4.js index af901f606e..697ed7f213 100644 --- a/test/js/node/async_hooks/async-context/async-context-dns-resolve4.js +++ b/test/js/node/async_hooks/async-context/async-context-dns-resolve4.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const dns = require("dns"); diff --git a/test/js/node/async_hooks/async-context/async-context-dns-resolveCname.js b/test/js/node/async_hooks/async-context/async-context-dns-resolveCname.js index bf33f21d88..8568af7199 100644 --- a/test/js/node/async_hooks/async-context/async-context-dns-resolveCname.js +++ b/test/js/node/async_hooks/async-context/async-context-dns-resolveCname.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const dns = require("dns"); diff --git a/test/js/node/async_hooks/async-context/async-context-dns-resolveMx.js b/test/js/node/async_hooks/async-context/async-context-dns-resolveMx.js index 51d739f33f..6b00e69af8 100644 --- a/test/js/node/async_hooks/async-context/async-context-dns-resolveMx.js +++ b/test/js/node/async_hooks/async-context/async-context-dns-resolveMx.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const dns = require("dns"); diff --git a/test/js/node/async_hooks/async-context/async-context-dns-resolveTxt.js b/test/js/node/async_hooks/async-context/async-context-dns-resolveTxt.js index b29368a0ab..a3d022440e 100644 --- a/test/js/node/async_hooks/async-context/async-context-dns-resolveTxt.js +++ b/test/js/node/async_hooks/async-context/async-context-dns-resolveTxt.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const dns = require("dns"); diff --git a/test/js/node/async_hooks/async-context/async-context-dns-reverse.js b/test/js/node/async_hooks/async-context/async-context-dns-reverse.js index f3ce75f8fe..4117640550 100644 --- a/test/js/node/async_hooks/async-context/async-context-dns-reverse.js +++ b/test/js/node/async_hooks/async-context/async-context-dns-reverse.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const dns = require("dns"); diff --git a/test/js/node/async_hooks/async-context/async-context-events-emitter.js b/test/js/node/async_hooks/async-context/async-context-events-emitter.js index e518d6e2d4..c9fa386a33 100644 --- a/test/js/node/async_hooks/async-context/async-context-events-emitter.js +++ b/test/js/node/async_hooks/async-context/async-context-events-emitter.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const { EventEmitter } = require("events"); diff --git a/test/js/node/async_hooks/async-context/async-context-events-on-async.js b/test/js/node/async_hooks/async-context/async-context-events-on-async.js index 9e716b1895..c1eccdd9eb 100644 --- a/test/js/node/async_hooks/async-context/async-context-events-on-async.js +++ b/test/js/node/async_hooks/async-context/async-context-events-on-async.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const { EventEmitter, on } = require("events"); diff --git a/test/js/node/async_hooks/async-context/async-context-fs-access.js b/test/js/node/async_hooks/async-context/async-context-fs-access.js index 3d2381910e..48a42e9b38 100644 --- a/test/js/node/async_hooks/async-context/async-context-fs-access.js +++ b/test/js/node/async_hooks/async-context/async-context-fs-access.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const fs = require("fs"); diff --git a/test/js/node/async_hooks/async-context/async-context-fs-appendFile.js b/test/js/node/async_hooks/async-context/async-context-fs-appendFile.js index e14c65670a..30fd7a6795 100644 --- a/test/js/node/async_hooks/async-context/async-context-fs-appendFile.js +++ b/test/js/node/async_hooks/async-context/async-context-fs-appendFile.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const fs = require("fs"); const path = require("path"); diff --git a/test/js/node/async_hooks/async-context/async-context-fs-chmod.js b/test/js/node/async_hooks/async-context/async-context-fs-chmod.js index cfcaa0ebdf..9286240a24 100644 --- a/test/js/node/async_hooks/async-context/async-context-fs-chmod.js +++ b/test/js/node/async_hooks/async-context/async-context-fs-chmod.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const fs = require("fs"); const path = require("path"); diff --git a/test/js/node/async_hooks/async-context/async-context-fs-copyFile.js b/test/js/node/async_hooks/async-context/async-context-fs-copyFile.js index a9ca9899fa..63133b2918 100644 --- a/test/js/node/async_hooks/async-context/async-context-fs-copyFile.js +++ b/test/js/node/async_hooks/async-context/async-context-fs-copyFile.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const fs = require("fs"); const path = require("path"); diff --git a/test/js/node/async_hooks/async-context/async-context-fs-createReadStream.js b/test/js/node/async_hooks/async-context/async-context-fs-createReadStream.js index 6edcdb0d97..262c7be04c 100644 --- a/test/js/node/async_hooks/async-context/async-context-fs-createReadStream.js +++ b/test/js/node/async_hooks/async-context/async-context-fs-createReadStream.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const fs = require("fs"); const path = require("path"); diff --git a/test/js/node/async_hooks/async-context/async-context-fs-createWriteStream.js b/test/js/node/async_hooks/async-context/async-context-fs-createWriteStream.js index eb81a37156..20fe90d685 100644 --- a/test/js/node/async_hooks/async-context/async-context-fs-createWriteStream.js +++ b/test/js/node/async_hooks/async-context/async-context-fs-createWriteStream.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const fs = require("fs"); const path = require("path"); diff --git a/test/js/node/async_hooks/async-context/async-context-fs-fstat.js b/test/js/node/async_hooks/async-context/async-context-fs-fstat.js index 8fdeec3ff3..6af05edd45 100644 --- a/test/js/node/async_hooks/async-context/async-context-fs-fstat.js +++ b/test/js/node/async_hooks/async-context/async-context-fs-fstat.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const fs = require("fs"); const path = require("path"); diff --git a/test/js/node/async_hooks/async-context/async-context-fs-lstat.js b/test/js/node/async_hooks/async-context/async-context-fs-lstat.js index fb194d909c..392833a09c 100644 --- a/test/js/node/async_hooks/async-context/async-context-fs-lstat.js +++ b/test/js/node/async_hooks/async-context/async-context-fs-lstat.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const fs = require("fs"); diff --git a/test/js/node/async_hooks/async-context/async-context-fs-mkdir.js b/test/js/node/async_hooks/async-context/async-context-fs-mkdir.js index 28f548cf10..3a404bb33e 100644 --- a/test/js/node/async_hooks/async-context/async-context-fs-mkdir.js +++ b/test/js/node/async_hooks/async-context/async-context-fs-mkdir.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const fs = require("fs"); const path = require("path"); diff --git a/test/js/node/async_hooks/async-context/async-context-fs-mkdtemp.js b/test/js/node/async_hooks/async-context/async-context-fs-mkdtemp.js index 4e74138b61..43358f8c88 100644 --- a/test/js/node/async_hooks/async-context/async-context-fs-mkdtemp.js +++ b/test/js/node/async_hooks/async-context/async-context-fs-mkdtemp.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const fs = require("fs"); const path = require("path"); diff --git a/test/js/node/async_hooks/async-context/async-context-fs-open.js b/test/js/node/async_hooks/async-context/async-context-fs-open.js index 1d0c6dd072..73330f43d6 100644 --- a/test/js/node/async_hooks/async-context/async-context-fs-open.js +++ b/test/js/node/async_hooks/async-context/async-context-fs-open.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const fs = require("fs"); const path = require("path"); diff --git a/test/js/node/async_hooks/async-context/async-context-fs-promises.js b/test/js/node/async_hooks/async-context/async-context-fs-promises.js index be3e8cce7e..0c63ad8264 100644 --- a/test/js/node/async_hooks/async-context/async-context-fs-promises.js +++ b/test/js/node/async_hooks/async-context/async-context-fs-promises.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const fs = require("fs").promises; const path = require("path"); diff --git a/test/js/node/async_hooks/async-context/async-context-fs-read.js b/test/js/node/async_hooks/async-context/async-context-fs-read.js index a1251bb09c..fe7a1c32bd 100644 --- a/test/js/node/async_hooks/async-context/async-context-fs-read.js +++ b/test/js/node/async_hooks/async-context/async-context-fs-read.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const fs = require("fs"); const path = require("path"); diff --git a/test/js/node/async_hooks/async-context/async-context-fs-readdir.js b/test/js/node/async_hooks/async-context/async-context-fs-readdir.js index 83c6fc3616..1ac77697f1 100644 --- a/test/js/node/async_hooks/async-context/async-context-fs-readdir.js +++ b/test/js/node/async_hooks/async-context/async-context-fs-readdir.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const fs = require("fs"); diff --git a/test/js/node/async_hooks/async-context/async-context-fs-realpath.js b/test/js/node/async_hooks/async-context/async-context-fs-realpath.js index bf0fced6ca..418909df0d 100644 --- a/test/js/node/async_hooks/async-context/async-context-fs-realpath.js +++ b/test/js/node/async_hooks/async-context/async-context-fs-realpath.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const fs = require("fs"); diff --git a/test/js/node/async_hooks/async-context/async-context-fs-rename.js b/test/js/node/async_hooks/async-context/async-context-fs-rename.js index 81141e8a55..9105a6585d 100644 --- a/test/js/node/async_hooks/async-context/async-context-fs-rename.js +++ b/test/js/node/async_hooks/async-context/async-context-fs-rename.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const fs = require("fs"); const path = require("path"); diff --git a/test/js/node/async_hooks/async-context/async-context-fs-rmdir.js b/test/js/node/async_hooks/async-context/async-context-fs-rmdir.js index b60d86cea1..e8b28a503e 100644 --- a/test/js/node/async_hooks/async-context/async-context-fs-rmdir.js +++ b/test/js/node/async_hooks/async-context/async-context-fs-rmdir.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const fs = require("fs"); const path = require("path"); diff --git a/test/js/node/async_hooks/async-context/async-context-fs-stat.js b/test/js/node/async_hooks/async-context/async-context-fs-stat.js index 4ca3e9a2fb..c541c1362d 100644 --- a/test/js/node/async_hooks/async-context/async-context-fs-stat.js +++ b/test/js/node/async_hooks/async-context/async-context-fs-stat.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const fs = require("fs"); diff --git a/test/js/node/async_hooks/async-context/async-context-fs-truncate.js b/test/js/node/async_hooks/async-context/async-context-fs-truncate.js index 47feb2aa7f..9361a1ac18 100644 --- a/test/js/node/async_hooks/async-context/async-context-fs-truncate.js +++ b/test/js/node/async_hooks/async-context/async-context-fs-truncate.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const fs = require("fs"); const path = require("path"); diff --git a/test/js/node/async_hooks/async-context/async-context-fs-unlink.js b/test/js/node/async_hooks/async-context/async-context-fs-unlink.js index 34749e8fbb..42f37c9eef 100644 --- a/test/js/node/async_hooks/async-context/async-context-fs-unlink.js +++ b/test/js/node/async_hooks/async-context/async-context-fs-unlink.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const fs = require("fs"); const path = require("path"); diff --git a/test/js/node/async_hooks/async-context/async-context-fs-watch.js b/test/js/node/async_hooks/async-context/async-context-fs-watch.js index 561e0defeb..1a2fa2f6a5 100644 --- a/test/js/node/async_hooks/async-context/async-context-fs-watch.js +++ b/test/js/node/async_hooks/async-context/async-context-fs-watch.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const fs = require("fs"); const path = require("path"); diff --git a/test/js/node/async_hooks/async-context/async-context-fs-watchFile.js b/test/js/node/async_hooks/async-context/async-context-fs-watchFile.js index caa5127ef1..cd67dc3b13 100644 --- a/test/js/node/async_hooks/async-context/async-context-fs-watchFile.js +++ b/test/js/node/async_hooks/async-context/async-context-fs-watchFile.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const fs = require("fs"); const path = require("path"); diff --git a/test/js/node/async_hooks/async-context/async-context-http-clientrequest.js b/test/js/node/async_hooks/async-context/async-context-http-clientrequest.js index 505bdc45ed..f0d3547853 100644 --- a/test/js/node/async_hooks/async-context/async-context-http-clientrequest.js +++ b/test/js/node/async_hooks/async-context/async-context-http-clientrequest.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const http = require("http"); diff --git a/test/js/node/async_hooks/async-context/async-context-http-request.js b/test/js/node/async_hooks/async-context/async-context-http-request.js index e4c7940eef..5ca1734176 100644 --- a/test/js/node/async_hooks/async-context/async-context-http-request.js +++ b/test/js/node/async_hooks/async-context/async-context-http-request.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const http = require("http"); diff --git a/test/js/node/async_hooks/async-context/async-context-https-request.js b/test/js/node/async_hooks/async-context/async-context-https-request.js index 4fdc6791a0..57981e090c 100644 --- a/test/js/node/async_hooks/async-context/async-context-https-request.js +++ b/test/js/node/async_hooks/async-context/async-context-https-request.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const https = require("https"); diff --git a/test/js/node/async_hooks/async-context/async-context-net-connect.js b/test/js/node/async_hooks/async-context/async-context-net-connect.js index e21b95f1f7..40ee740b05 100644 --- a/test/js/node/async_hooks/async-context/async-context-net-connect.js +++ b/test/js/node/async_hooks/async-context/async-context-net-connect.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const net = require("net"); diff --git a/test/js/node/async_hooks/async-context/async-context-net-server.js b/test/js/node/async_hooks/async-context/async-context-net-server.js index beaa9ba2ba..32eb7a3c67 100644 --- a/test/js/node/async_hooks/async-context/async-context-net-server.js +++ b/test/js/node/async_hooks/async-context/async-context-net-server.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const net = require("net"); diff --git a/test/js/node/async_hooks/async-context/async-context-net-socket-write.js b/test/js/node/async_hooks/async-context/async-context-net-socket-write.js index a9964a08ec..1bf933df1f 100644 --- a/test/js/node/async_hooks/async-context/async-context-net-socket-write.js +++ b/test/js/node/async_hooks/async-context/async-context-net-socket-write.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const net = require("net"); diff --git a/test/js/node/async_hooks/async-context/async-context-process-nextTick.js b/test/js/node/async_hooks/async-context/async-context-process-nextTick.js index ab2524eb5a..0afe1c1594 100644 --- a/test/js/node/async_hooks/async-context/async-context-process-nextTick.js +++ b/test/js/node/async_hooks/async-context/async-context-process-nextTick.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const asyncLocalStorage = new AsyncLocalStorage(); diff --git a/test/js/node/async_hooks/async-context/async-context-queueMicrotask.js b/test/js/node/async_hooks/async-context/async-context-queueMicrotask.js index 4f82d66503..fc037bd091 100644 --- a/test/js/node/async_hooks/async-context/async-context-queueMicrotask.js +++ b/test/js/node/async_hooks/async-context/async-context-queueMicrotask.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const asyncLocalStorage = new AsyncLocalStorage(); diff --git a/test/js/node/async_hooks/async-context/async-context-readline-interface.js b/test/js/node/async_hooks/async-context/async-context-readline-interface.js index a8a4be084f..79828ce908 100644 --- a/test/js/node/async_hooks/async-context/async-context-readline-interface.js +++ b/test/js/node/async_hooks/async-context/async-context-readline-interface.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const readline = require("readline"); const { Readable } = require("stream"); diff --git a/test/js/node/async_hooks/async-context/async-context-stream-async-iterator.js b/test/js/node/async_hooks/async-context/async-context-stream-async-iterator.js index 1b896c7c88..de2442671f 100644 --- a/test/js/node/async_hooks/async-context/async-context-stream-async-iterator.js +++ b/test/js/node/async_hooks/async-context/async-context-stream-async-iterator.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const { Readable } = require("stream"); diff --git a/test/js/node/async_hooks/async-context/async-context-stream-readable.js b/test/js/node/async_hooks/async-context/async-context-stream-readable.js index 43e80abec8..fa16ee4685 100644 --- a/test/js/node/async_hooks/async-context/async-context-stream-readable.js +++ b/test/js/node/async_hooks/async-context/async-context-stream-readable.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const { Readable } = require("stream"); diff --git a/test/js/node/async_hooks/async-context/async-context-stream-transform.js b/test/js/node/async_hooks/async-context/async-context-stream-transform.js index 49f9ecc0be..a1ab48efe3 100644 --- a/test/js/node/async_hooks/async-context/async-context-stream-transform.js +++ b/test/js/node/async_hooks/async-context/async-context-stream-transform.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const { Transform } = require("stream"); diff --git a/test/js/node/async_hooks/async-context/async-context-stream-writable.js b/test/js/node/async_hooks/async-context/async-context-stream-writable.js index baa494dc03..fd9ab9a64e 100644 --- a/test/js/node/async_hooks/async-context/async-context-stream-writable.js +++ b/test/js/node/async_hooks/async-context/async-context-stream-writable.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const { Writable } = require("stream"); diff --git a/test/js/node/async_hooks/async-context/async-context-timers-promises.js b/test/js/node/async_hooks/async-context/async-context-timers-promises.js index 3c3f5755c6..25fac90222 100644 --- a/test/js/node/async_hooks/async-context/async-context-timers-promises.js +++ b/test/js/node/async_hooks/async-context/async-context-timers-promises.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const timers = require("timers/promises"); diff --git a/test/js/node/async_hooks/async-context/async-context-timers-ref-unref.js b/test/js/node/async_hooks/async-context/async-context-timers-ref-unref.js index 31cc46582c..09c249322d 100644 --- a/test/js/node/async_hooks/async-context/async-context-timers-ref-unref.js +++ b/test/js/node/async_hooks/async-context/async-context-timers-ref-unref.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const asyncLocalStorage = new AsyncLocalStorage(); diff --git a/test/js/node/async_hooks/async-context/async-context-timers-setInterval.js b/test/js/node/async_hooks/async-context/async-context-timers-setInterval.js index 89c252b171..8c0dc50d48 100644 --- a/test/js/node/async_hooks/async-context/async-context-timers-setInterval.js +++ b/test/js/node/async_hooks/async-context/async-context-timers-setInterval.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const asyncLocalStorage = new AsyncLocalStorage(); diff --git a/test/js/node/async_hooks/async-context/async-context-tls-connect.js b/test/js/node/async_hooks/async-context/async-context-tls-connect.js index 0a3b31c990..bbdd1eb264 100644 --- a/test/js/node/async_hooks/async-context/async-context-tls-connect.js +++ b/test/js/node/async_hooks/async-context/async-context-tls-connect.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const tls = require("tls"); diff --git a/test/js/node/async_hooks/async-context/async-context-util-promisify-custom.js b/test/js/node/async_hooks/async-context/async-context-util-promisify-custom.js index 218f70aa69..b35c59fbf4 100644 --- a/test/js/node/async_hooks/async-context/async-context-util-promisify-custom.js +++ b/test/js/node/async_hooks/async-context/async-context-util-promisify-custom.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const util = require("util"); diff --git a/test/js/node/async_hooks/async-context/async-context-util-promisify.js b/test/js/node/async_hooks/async-context/async-context-util-promisify.js index 665059cf2b..191734dc1f 100644 --- a/test/js/node/async_hooks/async-context/async-context-util-promisify.js +++ b/test/js/node/async_hooks/async-context/async-context-util-promisify.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const util = require("util"); const fs = require("fs"); diff --git a/test/js/node/async_hooks/async-context/async-context-vm-runInNewContext.js b/test/js/node/async_hooks/async-context/async-context-vm-runInNewContext.js index 9d7b4bc0a1..57ceb625c4 100644 --- a/test/js/node/async_hooks/async-context/async-context-vm-runInNewContext.js +++ b/test/js/node/async_hooks/async-context/async-context-vm-runInNewContext.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const vm = require("vm"); diff --git a/test/js/node/async_hooks/async-context/async-context-worker_threads-message.js b/test/js/node/async_hooks/async-context/async-context-worker_threads-message.js index d92e02bab5..97f0d208c7 100644 --- a/test/js/node/async_hooks/async-context/async-context-worker_threads-message.js +++ b/test/js/node/async_hooks/async-context/async-context-worker_threads-message.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const { Worker, isMainThread, parentPort } = require("worker_threads"); diff --git a/test/js/node/async_hooks/async-context/async-context-zlib-brotliCompress.js b/test/js/node/async_hooks/async-context/async-context-zlib-brotliCompress.js index 798f67d86b..6f6e7a1452 100644 --- a/test/js/node/async_hooks/async-context/async-context-zlib-brotliCompress.js +++ b/test/js/node/async_hooks/async-context/async-context-zlib-brotliCompress.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const zlib = require("zlib"); diff --git a/test/js/node/async_hooks/async-context/async-context-zlib-brotliDecompress.js b/test/js/node/async_hooks/async-context/async-context-zlib-brotliDecompress.js index f467565b02..b6e10e6c0f 100644 --- a/test/js/node/async_hooks/async-context/async-context-zlib-brotliDecompress.js +++ b/test/js/node/async_hooks/async-context/async-context-zlib-brotliDecompress.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const zlib = require("zlib"); diff --git a/test/js/node/async_hooks/async-context/async-context-zlib-createGzip.js b/test/js/node/async_hooks/async-context/async-context-zlib-createGzip.js index 6a0d80b029..8443412b8f 100644 --- a/test/js/node/async_hooks/async-context/async-context-zlib-createGzip.js +++ b/test/js/node/async_hooks/async-context/async-context-zlib-createGzip.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const zlib = require("zlib"); diff --git a/test/js/node/async_hooks/async-context/async-context-zlib-deflate.js b/test/js/node/async_hooks/async-context/async-context-zlib-deflate.js index 15ea6e70b8..d9c349d898 100644 --- a/test/js/node/async_hooks/async-context/async-context-zlib-deflate.js +++ b/test/js/node/async_hooks/async-context/async-context-zlib-deflate.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const zlib = require("zlib"); diff --git a/test/js/node/async_hooks/async-context/async-context-zlib-gunzip.js b/test/js/node/async_hooks/async-context/async-context-zlib-gunzip.js index 5c3ada6191..c4c81a940b 100644 --- a/test/js/node/async_hooks/async-context/async-context-zlib-gunzip.js +++ b/test/js/node/async_hooks/async-context/async-context-zlib-gunzip.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const zlib = require("zlib"); diff --git a/test/js/node/async_hooks/async-context/async-context-zlib-gzip.js b/test/js/node/async_hooks/async-context/async-context-zlib-gzip.js index 20decb021f..330f29f616 100644 --- a/test/js/node/async_hooks/async-context/async-context-zlib-gzip.js +++ b/test/js/node/async_hooks/async-context/async-context-zlib-gzip.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const zlib = require("zlib"); diff --git a/test/js/node/async_hooks/async-context/async-context-zlib-inflate.js b/test/js/node/async_hooks/async-context/async-context-zlib-inflate.js index 1a41995d2d..84f4a8a19f 100644 --- a/test/js/node/async_hooks/async-context/async-context-zlib-inflate.js +++ b/test/js/node/async_hooks/async-context/async-context-zlib-inflate.js @@ -1,3 +1,4 @@ +process.exitCode = 1; const { AsyncLocalStorage } = require("async_hooks"); const zlib = require("zlib");