#pragma once #include "JSDOMBinding.h" #include "JSDOMOperation.h" namespace WebCore { // Wrapper type for JSEventEmitter's castedThis because JSDOMWindow and JSWorkerGlobalScope do not inherit JSEventEmitter. class JSEventEmitterWrapper { WTF_MAKE_FAST_ALLOCATED; public: JSEventEmitterWrapper(EventEmitter& wrapped, JSC::JSObject* wrapper) : m_wrapped(wrapped) , m_wrapper(wrapper) { } EventEmitter& wrapped() { return m_wrapped; } operator JSC::JSObject&() { return *m_wrapper; } private: EventEmitter& m_wrapped; JSC::JSObject* m_wrapper; }; std::unique_ptr jsEventEmitterCast(JSC::VM&, JSC::JSGlobalObject*, JSC::JSValue thisValue); JSEventEmitter* jsEventEmitterCastFast(VM& vm, JSC::JSGlobalObject* lexicalGlobalObject, JSValue thisValue); template<> class IDLOperation { public: using ClassParameter = JSEventEmitter*; using Operation = JSC::EncodedJSValue(JSC::JSGlobalObject*, JSC::CallFrame*, ClassParameter); template static JSC::EncodedJSValue call(JSC::JSGlobalObject& lexicalGlobalObject, JSC::CallFrame& callFrame, const char* operationName) { auto& vm = JSC::getVM(&lexicalGlobalObject); auto throwScope = DECLARE_THROW_SCOPE(vm); auto thisValue = callFrame.thisValue().toThis(&lexicalGlobalObject, JSC::ECMAMode::strict()); auto* thisObject = jsEventEmitterCastFast(vm, &lexicalGlobalObject, thisValue); if (UNLIKELY(!thisObject)) return throwThisTypeError(lexicalGlobalObject, throwScope, "EventEmitter", operationName); RELEASE_AND_RETURN(throwScope, (operation(&lexicalGlobalObject, &callFrame, thisObject))); } }; } // namespace WebCore sponse-experiment Unnamed repository; edit this file 'description' to name the repository.
aboutsummaryrefslogtreecommitdiff
AgeCommit message (Expand)AuthorFilesLines
2022-05-16Add go and esbuild to build instructions (#169)Gravatar Divy Srivastava 2-1/+2
2022-05-12wrangler 2 released (#166)Gravatar Hugo Romano 1-1/+1
2022-05-11Update README.mdGravatar Jarred Sumner 1-1/+1
2022-05-11Update README.mdGravatar Jarred Sumner 1-2/+3
2022-05-11Add section about napiGravatar Jarred Sumner 1-0/+37
2022-05-11Update README.mdbun-v0.0.82Gravatar Jarred Sumner 1-2/+6
2022-05-11Update build-idGravatar Jarred Sumner 1-1/+1
2022-05-11Fix several bugs in napiGravatar Jarred Sumner 3-22/+54
2022-05-11Make the napi mjs file runnable in both bun & nodeGravatar Jarred Sumner 1-7/+6
2022-05-11Update build-idbun-v0.0.81Gravatar Jarred Sumner 1-1/+1
2022-05-11disable the new target allowed errorGravatar Jarred Sumner 1-4/+5
2022-05-11Update Makefilebun-v0.0.80Gravatar Jarred Sumner 1-0/+1
2022-05-11Update MakefileGravatar Jarred Sumner 1-1/+1
2022-05-11Fix export symbols on LinuxGravatar Jarred Sumner 4-25/+153
2022-05-11Add test for import.meta.requireGravatar Jarred Sumner 2-1/+11
2022-05-11[napi] Add a couple more symbolsGravatar Jarred Sumner 1-0/+2
2022-05-11[napi] Fix panic inside napi_fatal_errorGravatar Jarred Sumner 1-11/+18
2022-05-11[napi] Stub a couple moreGravatar Jarred Sumner 3-6/+52
2022-05-11[bun.js] eagerly convert to import.meta.requireGravatar Jarred Sumner 2-3/+24
2022-05-11[json] Fix bug with negative integers in json parserGravatar Jarred Sumner 1-3/+6
2022-05-11[bun.js] Implement a polyfill for the `detect-libc` npm packageGravatar Jarred Sumner 2-0/+53
2022-05-11[bun.js] Implement `import.meta.require`Gravatar Jarred Sumner 13-158/+539
2022-05-11[bun.js] Implement `import.meta.resolveSync`Gravatar Jarred Sumner 3-1/+78
2022-05-10Include napi in plus100Gravatar Jarred Sumner 1-4/+20
2022-05-10Add test for Buffer.byteLengthGravatar Jarred Sumner 1-0/+7
2022-05-10[napi] Error on import .nodeGravatar Jarred Sumner 1-29/+1
2022-05-10Update napi.cppGravatar Jarred Sumner 1-1/+0
2022-05-10[napi] Fix string bugGravatar Jarred Sumner 4-58/+125
2022-05-10[napi] transpile require(*.node) into process.dlopenGravatar Jarred Sumner 4-3/+30
2022-05-10[bun.js] Implement `Buffer.byteLength`Gravatar Jarred Sumner 7-47/+443
2022-05-09Fix extra quote in bundled require errorsGravatar Jarred Sumner 1-2/+2
2022-05-09few more napi functionsGravatar Jarred Sumner 2-1/+30
2022-05-09Update MakefileGravatar Jarred Sumner 1-3/+3
2022-05-09Update Dockerfile.baseGravatar Jarred Sumner 1-1/+1
2022-05-09[napi] getters & setters workGravatar Jarred Sumner 1-26/+39