LeviLamina
Loading...
Searching...
No Matches
QuickJS.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/scripting/quickjs/NativeObjectOwnership.h"
7#include "mc/external/quickjs/JSTypedArrayEnum.h"
8
9// auto generated forward declare list
10// clang-format off
11struct JSContext;
12struct JSValue;
13namespace Scripting { class LifetimeRegistry; }
14namespace Scripting { class StrongObjectHandle; }
15namespace Scripting { struct ClassBinding; }
16namespace Scripting { struct InterfaceBinding; }
17namespace Scripting { struct IteratorBinding; }
18namespace Scripting { struct ObjectFactory; }
19namespace Scripting { struct ObjectHandle; }
20namespace Scripting::QuickJS { class ContextUserData; }
21namespace Scripting::QuickJS { class RegisteredClass; }
22namespace Scripting::QuickJS { class RegisteredEnum; }
23namespace Scripting::QuickJS { class RegisteredInterface; }
24namespace Scripting::QuickJS { class RuntimeUserData; }
25namespace Scripting::QuickJS { struct ArgConversionResult; }
26namespace Scripting::QuickJS { struct ArrayProxy; }
27namespace Scripting::QuickJS { struct PropertyGetSet; }
28namespace Scripting::Reflection { class IFunction; }
29// clang-format on
30
31namespace Scripting::QuickJS {
32// functions
33// NOLINTBEGIN
34MCNAPI ::JSValue ConvertJSValueArgsToNativeAnys(
37 uint jsArgCount,
38 ::JSValue* jsArgs,
39 ::std::array<::entt::meta_any, 16>& outArgsAsAnys
40);
41
42MCNAPI ::JSValue CopyJSValueArrayToNativeSequenceContainer(
44 ::JSValue jsArray,
45 ::entt::meta_sequence_container& view,
46 ::entt::meta_type const& type
47);
48
49MCNAPI ::JSValue CopyJSValueObjectToNativeAssociativeContainer(
51 ::JSValue jsValue,
52 ::entt::meta_associative_container& view,
53 ::entt::meta_type const& type
54);
55
56MCNAPI ::Scripting::QuickJS::ArrayProxy CreateArrayProxy(::JSContext* ctx);
57
58MCNAPI ::std::unique_ptr<::Scripting::ClassBinding>
59CreateIteratorReturnClassBinding(::Scripting::IteratorBinding& iteratorBinding);
60
61MCNAPI ::entt::meta_any ExceptionWriter(::JSContext* ctx);
62
63MCNAPI ::JSValue GenericFreeFunctionCaller(
65 ::JSValue thisVal,
66 int argc,
67 ::JSValue* argv,
68 int magic,
69 ::JSValue* funcDataVal
70);
71
72MCNAPI ::JSValue GenericObjectFunctionCaller(
74 ::JSValue thisVal,
75 int argc,
76 ::JSValue* argv,
77 int magic,
78 ::JSValue* funcDataVal
79);
80
81MCNAPI ::JSValue
82GenericReflectionCtorCaller(::JSContext* ctx, ::JSValue newTarget, int argc, ::JSValue* argv, int jsClassIdMagic);
83
84MCNAPI ::JSValue GenericReflectionPropertyGetter(
86 ::JSValue thisVal,
87 int argc,
88 ::JSValue* argv,
89 int magic,
90 ::JSValue* funcDataVal
91);
92
93MCNAPI ::JSValue GenericReflectionPropertySetter(
95 ::JSValue thisVal,
96 int argc,
97 ::JSValue* argv,
98 int magic,
99 ::JSValue* funcDataVal
100);
101
102MCNAPI ::std::string GetClassNameFromJSValue(::JSContext* ctx, ::JSValue target);
103
104MCNAPI ::Scripting::ObjectHandle GetNativeObjectHandleFromJSValue(::JSValue jsValue);
105
106MCNAPI ::Scripting::QuickJS::PropertyGetSet const&
107GetPropertyGetSetFromJSFuncData(::JSContext* ctx, ::JSValue* funcDataVal);
108
109MCNAPI ::Scripting::QuickJS::RuntimeUserData* GetRuntimeUserDataFromContext(::JSContext* ctx);
110
111MCNAPI bool HasNativeObjectHandle(::JSValue jsValue);
112
113MCNAPI void InitializeBakedProperties(
115 ::JSValue obj,
116 ::Scripting::ObjectHandle objectHandle,
118 ::Scripting::QuickJS::RegisteredClass const* registeredClass
119);
120
121MCNAPI ::std::string JSAtomCStringToString(::JSContext* ctx, uint jsAtom);
122
123MCNAPI ::entt::meta_any JSErrorToNativeAny(::JSContext* ctx, ::JSValue jsValue);
124
125MCNAPI ::std::string JSValueCStringToString(::JSContext* ctx, ::JSValue jsValue);
126
127MCNAPI bool JSValueIsInfinite(::JSValue const& value);
128
129MCNAPI bool JSValueIsNan(::JSValue const& value);
130
131MCNAPI ::entt::meta_any JSValueToBaseError(::JSContext* ctx, ::JSValue jsValue);
132
133MCNAPI ::std::variant<::entt::meta_any, ::JSValue>
134JSValueToNativeAny(::JSContext* ctx, ::JSValue jsValue, ::entt::meta_type const& type);
135
136MCNAPI ::std::variant<::entt::meta_any, ::JSValue> JSValueToNativeInterface(
138 ::JSValue jsValue,
140 ::entt::meta_type const& type,
141 ::Scripting::InterfaceBinding const& interfaceBinding
142);
143
144MCNAPI ::JSValue NativeAnyToJSProtoClass(
146 ::JSValue newTarget,
147 ::entt::meta_any& any,
148 ::Scripting::QuickJS::RegisteredClass const& registeredClass,
150);
151
152MCNAPI ::Scripting::QuickJS::ArgConversionResult
153NativeAnyToJSValue(::JSContext* ctx, ::entt::meta_any& any, bool addRef, bool allowCopy);
154
155MCNAPI ::Scripting::QuickJS::ArgConversionResult
156NativeEnumToJSValue(::JSContext* ctx, ::entt::meta_any& any, bool addRef, bool allowCopy);
157
158MCNAPI ::JSValue NativeErrorToJSValue(::JSContext* ctx, ::entt::meta_any& any);
159
160MCNAPI ::JSValue NativeErrorToJSValueInternal(
163 ::entt::meta_any& any,
164 uint jsClassId,
166);
167
168MCNAPI ::Scripting::QuickJS::ArgConversionResult NativeInterfaceToJSValue(
170 ::entt::meta_any& any,
171 ::Scripting::QuickJS::RegisteredInterface const& registeredInterface,
172 bool addRef,
173 bool allowCopy
174);
175
176MCNAPI ::JSValue NativeObjectHandleToJSProtoClass(
178 ::JSValue newTarget,
179 ::Scripting::ObjectHandle objectHandle,
180 ::Scripting::QuickJS::RegisteredClass const& registeredClass,
182);
183
184MCNAPI ::JSValue NativeObjectHandleToJSValue(
186 ::Scripting::ObjectHandle objectHandle,
187 bool addRef,
188 bool allowCopy,
189 ::Scripting::QuickJS::NativeObjectOwnership ownership
190);
191
192MCNAPI ::Scripting::QuickJS::ArgConversionResult NativeRegisteredEnumToJSValue(
194 ::entt::meta_any& any,
195 ::Scripting::QuickJS::RegisteredEnum const& registeredEnum
196);
197
198MCNAPI ::JSValue PrintError(::JSContext* ctx, ::JSValue, int argc, ::JSValue* argv);
199
200MCNAPI ::JSValue PrintInfo(::JSContext* ctx, ::JSValue, int argc, ::JSValue* argv);
201
202MCNAPI ::JSValue PrintWarn(::JSContext* ctx, ::JSValue, int argc, ::JSValue* argv);
203
204MCNAPI ::JSValue ThrowEngineErrorToJS(::JSContext* ctx, ::std::string const& msg);
205
206MCNAPI ::JSValue ThrowJSTypeErrorWithContext(::JSContext*, ::Scripting::QuickJS::ContextUserData&, char const*, ...);
207
208MCNAPI ::JSTypedArrayEnum ToJSTypedArrayEnum(::entt::meta_type const& type);
209
210MCNAPI ::std::string WriteObject(::JSContext* ctx, ::JSValue val);
211
212MCNAPI ::Scripting::StrongObjectHandle getHandleFromObjectFactory(
215 ::Scripting::ObjectFactory const& objectFactory
216);
217// NOLINTEND
218
219} // namespace Scripting::QuickJS
Definition LifetimeRegistry.h:16
Definition ContextUserData.h:18
Definition RegisteredClass.h:7
Definition RegisteredEnum.h:7
Definition RegisteredInterface.h:7
Definition IFunction.h:12
Definition JSContext.h:5
Definition JSValue.h:5
Definition InterfaceBinding.h:16
Definition IteratorBinding.h:15
Definition ObjectFactory.h:17
Definition ObjectHandle.h:7
Definition ctx.h:5