aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/modules/EventsModule.h
blob: 5adb19d01b0f196eb831eb5846b0ada4ccb771ea (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include "../bindings/ZigGlobalObject.h"
#include "JavaScriptCore/JSGlobalObject.h"

namespace Zig {

inline void generateEventsSourceCode(JSC::JSGlobalObject* lexicalGlobalObject, JSC::Identifier moduleKey, Vector<JSC::Identifier, 4>& exportNames, JSC::MarkedArgumentBuffer& exportValues) {
    JSC::VM& vm = lexicalGlobalObject->vm();
    GlobalObject* globalObject = reinterpret_cast<GlobalObject*>(lexicalGlobalObject);

    exportNames.append(JSC::Identifier::fromString(vm, "EventEmitter"_s));
    exportValues.append(WebCore::JSEventEmitter::getConstructor(vm, globalObject));

    exportNames.append(JSC::Identifier::fromString(vm, "getEventListeners"_s));
    exportValues.append(JSC::JSFunction::create(vm, lexicalGlobalObject, 0,
        MAKE_STATIC_STRING_IMPL("getEventListeners"), Events_functionGetEventListeners, ImplementationVisibility::Public));
    exportNames.append(JSC::Identifier::fromString(vm, "listenerCount"_s));
    exportValues.append(JSC::JSFunction::create(vm, lexicalGlobalObject, 0,
        MAKE_STATIC_STRING_IMPL("listenerCount"), Events_functionListenerCount, ImplementationVisibility::Public));
    exportNames.append(JSC::Identifier::fromString(vm, "once"_s));
    exportValues.append(JSC::JSFunction::create(vm, lexicalGlobalObject, 0,
        MAKE_STATIC_STRING_IMPL("once"), Events_functionOnce, ImplementationVisibility::Public));
    exportNames.append(JSC::Identifier::fromString(vm, "on"_s));
    exportValues.append(JSC::JSFunction::create(vm, lexicalGlobalObject, 0,
        MAKE_STATIC_STRING_IMPL("on"), Events_functionOn, ImplementationVisibility::Public));
}

}