LeviLamina
Loading...
Searching...
No Matches
ContextObject.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/script_core/lifetime_registry/scripting/TypedObjectHandle.h"
7
8// auto generated forward declare list
9// clang-format off
10struct JSContext;
11struct JSModuleDef;
12struct JSRuntime;
13struct JSValue;
14namespace Scripting { class IDependencyLoader; }
15namespace Scripting { class IPrinter; }
16namespace Scripting { class ResultAny; }
17namespace Scripting { class ScriptObjectFactory; }
18namespace Scripting { class WeakLifetimeScope; }
19namespace Scripting { struct AnyAndJSValue; }
20namespace Scripting { struct ClosureType; }
21namespace Scripting { struct ConstantFactory; }
22namespace Scripting { struct ContextConfig; }
23namespace Scripting { struct ContextId; }
24namespace Scripting { struct EnumBinding; }
25namespace Scripting { struct FunctionBinding; }
26namespace Scripting { struct ModuleBindingBundle; }
27namespace Scripting { struct PropertyBinding; }
28namespace Scripting::QuickJS { class ContextUserData; }
29namespace Scripting::QuickJS { class ObjectInspector; }
30namespace Scripting::QuickJS { class RegisteredClass; }
31namespace Scripting::QuickJS { class RegisteredError; }
32// clang-format on
33
34namespace Scripting::QuickJS {
35
36class ContextObject {
37public:
38 // ContextObject inner types declare
39 // clang-format off
41 // clang-format on
42
43 // ContextObject inner types define
44 enum class ImportAllowedResult : int {
45 Success = 0,
46 FailRestricted = 1,
47 FailStaticImport = 2,
48 };
49
50 struct UnhandledPromiseRejectionEntry {
51 public:
52 // member variables
53 // NOLINTBEGIN
56 // NOLINTEND
57
58 public:
59 // prevent constructor by default
60 UnhandledPromiseRejectionEntry& operator=(UnhandledPromiseRejectionEntry const&);
61 UnhandledPromiseRejectionEntry(UnhandledPromiseRejectionEntry const&);
62 UnhandledPromiseRejectionEntry();
63 };
64
65public:
66 // member variables
67 // NOLINTBEGIN
81 // NOLINTEND
82
83public:
84 // prevent constructor by default
85 ContextObject& operator=(ContextObject const&);
86 ContextObject(ContextObject const&);
87 ContextObject();
88
89public:
90 // member functions
91 // NOLINTBEGIN
93 ::Scripting::ContextId contextId,
94 ::JSContext* jsContext,
97 ::std::unique_ptr<::Scripting::ScriptObjectFactory>&& factory,
98 ::std::unique_ptr<::Scripting::QuickJS::ObjectInspector>&& inspector,
99 ::Scripting::IPrinter* printer,
102 ::Scripting::ContextConfig const& contextConfig
103 );
104
105 MCNAPI void _resolvePromise(::JSValue jsResolutionFunc, ::entt::meta_any& arg);
106
107 MCNAPI ::Scripting::ResultAny call(
109 ::entt::meta_any* args,
110 uint argc,
111 ::entt::meta_type const& expectedReturnType
112 );
113
114 MCNAPI ::Scripting::QuickJS::ContextObject::ImportAllowedResult
115 checkModuleImportAllowed(::std::string const& baseName, ::std::string const& moduleName, bool dynamicImport) const;
116
118 // NOLINTEND
119
120public:
121 // static functions
122 // NOLINTBEGIN
123 MCNAPI static void _bindClass(
125 ::JSModuleDef* jsModuleDef,
128 );
129
130 MCNAPI static void
132
133 MCNAPI static ::std::unique_ptr<::Scripting::AnyAndJSValue> _createConstant(
136 ::JSValue target,
137 ::Scripting::ConstantFactory const& constantCreator
138 );
139
140 MCNAPI static ::JSValue _createConstructor(
142 ::JSModuleDef* jsModuleDef,
143 ::JSValue jsValue,
144 ::std::string const& name,
145 uint jsClassId
146 );
147
148 MCNAPI static ::std::unique_ptr<::Scripting::AnyAndJSValue> _createEnumReverseConstant(
151 ::JSValue enumObj,
152 ::Scripting::EnumBinding const& enumBinding,
153 ::Scripting::ConstantFactory const& constantBinding
154 );
155
156 MCNAPI static void _createFunction(
158 ::JSValue jsValue,
159 ::Scripting::FunctionBinding const& functionBinding,
160 ::JSValue jsCtorVal,
161 ::std::string const& className
162 );
163
164 MCNAPI static void _createProperty(
166 ::JSValue jsPrototype,
167 ::Scripting::PropertyBinding const& propertyBinding,
168 ::std::string const& className
169 );
170
171 MCNAPI static int _moduleInitializer(::JSContext* ctx, ::JSModuleDef* jsModuleDef);
172 // NOLINTEND
173
174public:
175 // constructor thunks
176 // NOLINTBEGIN
177 MCNAPI void* $ctor(
178 ::Scripting::ContextId contextId,
179 ::JSContext* jsContext,
182 ::std::unique_ptr<::Scripting::ScriptObjectFactory>&& factory,
183 ::std::unique_ptr<::Scripting::QuickJS::ObjectInspector>&& inspector,
184 ::Scripting::IPrinter* printer,
187 ::Scripting::ContextConfig const& contextConfig
188 );
189 // NOLINTEND
190};
191
192} // namespace Scripting::QuickJS
Definition IDependencyLoader.h:12
Definition IPrinter.h:13
static MCAPI ::std::unique_ptr<::Scripting::AnyAndJSValue > _createEnumReverseConstant(::JSContext *ctx, ::Scripting::QuickJS::ContextUserData &contextData, ::JSValue enumObj, ::Scripting::EnumBinding const &enumBinding, ::Scripting::ConstantFactory const &constantBinding)
static MCAPI void _createProperty(::JSContext *ctx, ::JSValue jsPrototype, ::Scripting::PropertyBinding const &propertyBinding, ::std::string const &className)
static MCAPI void _bindClass(::JSContext *ctx, ::JSModuleDef *jsModuleDef, ::Scripting::QuickJS::ContextUserData &contextData, ::Scripting::QuickJS::RegisteredClass &registeredClass)
MCAPI void * $ctor(::Scripting::ContextId contextId, ::JSContext *jsContext, ::Scripting::WeakLifetimeScope scope, ::Scripting::ModuleBindingBundle &&bindings, ::std::unique_ptr<::Scripting::ScriptObjectFactory > &&factory, ::std::unique_ptr<::Scripting::QuickJS::ObjectInspector > &&inspector, ::Scripting::IPrinter *printer, ::Scripting::IDependencyLoader *loader, ::JSRuntime *, ::Scripting::ContextConfig const &contextConfig)
MCAPI ContextObject(::Scripting::ContextId contextId, ::JSContext *jsContext, ::Scripting::WeakLifetimeScope scope, ::Scripting::ModuleBindingBundle &&bindings, ::std::unique_ptr<::Scripting::ScriptObjectFactory > &&factory, ::std::unique_ptr<::Scripting::QuickJS::ObjectInspector > &&inspector, ::Scripting::IPrinter *printer, ::Scripting::IDependencyLoader *loader, ::JSRuntime *, ::Scripting::ContextConfig const &contextConfig)
MCAPI::Scripting::QuickJS::ContextObject::ImportAllowedResult checkModuleImportAllowed(::std::string const &baseName, ::std::string const &moduleName, bool dynamicImport) const
MCAPI::Scripting::ResultAny call(::Scripting::TypedObjectHandle<::Scripting::ClosureType > closureHandle, ::entt::meta_any *args, uint argc, ::entt::meta_type const &expectedReturnType)
static MCAPI int _moduleInitializer(::JSContext *ctx, ::JSModuleDef *jsModuleDef)
static MCAPI ::std::unique_ptr<::Scripting::AnyAndJSValue > _createConstant(::JSContext *ctx, ::Scripting::QuickJS::ContextUserData &contextData, ::JSValue target, ::Scripting::ConstantFactory const &constantCreator)
static MCAPI void _bindError(::JSContext *ctx, ::JSModuleDef *moduleDef, ::Scripting::QuickJS::RegisteredError &registeredError)
MCAPI void processUnhandledPromiseRejection()
static MCAPI void _createFunction(::JSContext *ctx, ::JSValue jsValue, ::Scripting::FunctionBinding const &functionBinding, ::JSValue jsCtorVal, ::std::string const &className)
MCAPI void _resolvePromise(::JSValue jsResolutionFunc, ::entt::meta_any &arg)
static MCAPI ::JSValue _createConstructor(::JSContext *ctx, ::JSModuleDef *jsModuleDef, ::JSValue jsValue, ::std::string const &name, uint jsClassId)
Definition ContextUserData.h:17
Definition ObjectInspector.h:16
Definition RegisteredClass.h:7
Definition RegisteredError.h:7
Definition ResultAny.h:7
Definition ScriptObjectFactory.h:7
Definition WeakLifetimeScope.h:12
Definition JSContext.h:5
Definition JSModuleDef.h:8
Definition JSRuntime.h:8
Definition JSValue.h:5
Definition AnyAndJSValue.h:7
Definition ClosureType.h:7
Definition ConstantFactory.h:15
Definition ContextConfig.h:20
Definition ContextId.h:7
Definition EnumBinding.h:10
Definition FunctionBinding.h:10
Definition ModuleBindingBundle.h:15
Definition PropertyBinding.h:10
Definition TypedObjectHandle.h:8
Definition ctx.h:5
Definition Alias.h:14