mirror of
https://github.com/oven-sh/bun
synced 2026-02-16 13:51:47 +00:00
Use native AbortController & AbortSignal when abort-controller is loaded (#8489)
* Nationalize `abort-controller` * [autofix.ci] apply automated fixes --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
This commit is contained in:
54
src/bun.js/modules/AbortControllerModuleModule.h
Normal file
54
src/bun.js/modules/AbortControllerModuleModule.h
Normal file
@@ -0,0 +1,54 @@
|
||||
#pragma once
|
||||
|
||||
#include "JSAbortController.h"
|
||||
#include "JSAbortSignal.h"
|
||||
|
||||
using namespace JSC;
|
||||
using namespace WebCore;
|
||||
|
||||
namespace Zig {
|
||||
|
||||
inline void generateNativeModule_AbortControllerModule(
|
||||
JSC::JSGlobalObject *lexicalGlobalObject, JSC::Identifier moduleKey,
|
||||
Vector<JSC::Identifier, 4> &exportNames,
|
||||
JSC::MarkedArgumentBuffer &exportValues) {
|
||||
|
||||
Zig::GlobalObject *globalObject =
|
||||
reinterpret_cast<Zig::GlobalObject *>(lexicalGlobalObject);
|
||||
JSC::VM &vm = globalObject->vm();
|
||||
|
||||
auto *abortController =
|
||||
WebCore::JSAbortController::getConstructor(vm, globalObject).getObject();
|
||||
JSValue abortSignal =
|
||||
WebCore::JSAbortSignal::getConstructor(vm, globalObject);
|
||||
|
||||
const auto controllerIdent = Identifier::fromString(vm, "AbortController"_s);
|
||||
const auto signalIdent = Identifier::fromString(vm, "AbortSignal"_s);
|
||||
const Identifier esModuleMarker = builtinNames(vm).__esModulePublicName();
|
||||
|
||||
exportNames.append(vm.propertyNames->defaultKeyword);
|
||||
exportValues.append(abortController);
|
||||
|
||||
exportNames.append(signalIdent);
|
||||
exportValues.append(abortSignal);
|
||||
|
||||
exportNames.append(controllerIdent);
|
||||
exportValues.append(abortController);
|
||||
|
||||
exportNames.append(esModuleMarker);
|
||||
exportValues.append(jsBoolean(true));
|
||||
|
||||
// https://github.com/mysticatea/abort-controller/blob/a935d38e09eb95d6b633a8c42fcceec9969e7b05/dist/abort-controller.js#L125
|
||||
abortController->putDirect(
|
||||
vm, signalIdent, abortSignal,
|
||||
static_cast<unsigned>(PropertyAttribute::DontEnum));
|
||||
|
||||
abortController->putDirect(
|
||||
vm, controllerIdent, abortController,
|
||||
static_cast<unsigned>(PropertyAttribute::DontEnum));
|
||||
|
||||
abortController->putDirect(
|
||||
vm, vm.propertyNames->defaultKeyword, abortController,
|
||||
static_cast<unsigned>(PropertyAttribute::DontEnum));
|
||||
}
|
||||
} // namespace Zig
|
||||
Reference in New Issue
Block a user