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 FunctionBinding; }
17namespace Scripting { struct InterfaceBinding; }
18namespace Scripting { struct IteratorBinding; }
19namespace Scripting { struct ObjectFactory; }
20namespace Scripting { struct ObjectHandle; }
21namespace Scripting::QuickJS { class ContextUserData; }
22namespace Scripting::QuickJS { class RegisteredClass; }
23namespace Scripting::QuickJS { class RegisteredEnum; }
24namespace Scripting::QuickJS { class RegisteredInterface; }
25namespace Scripting::QuickJS { class RuntimeUserData; }
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
34MCAPI ::JSValue ConvertJSValueArgsToNativeAnys(
37 uint jsArgCount,
38 ::JSValue* jsArgs,
39 ::std::array<::entt::meta_any, 16>& outArgsAsAnys
40);
41
42MCAPI ::JSValue CopyJSValueArrayToNativeSequenceContainer(
44 ::JSValue jsArray,
45 ::entt::meta_sequence_container& view,
46 ::entt::meta_type const& type
47);
48
49MCAPI ::JSValue CopyJSValueObjectToNativeAssociativeContainer(
51 ::JSValue jsValue,
52 ::entt::meta_associative_container& view,
53 ::entt::meta_type const& type
54);
55
56MCAPI ::Scripting::QuickJS::ArrayProxy CreateArrayProxy(::JSContext* ctx);
57
58MCAPI ::Scripting::FunctionBinding CreateIteratorNextFunctionBinding(::Scripting::IteratorBinding& iteratorBinding);
59
60MCAPI ::std::unique_ptr<::Scripting::ClassBinding>
61CreateIteratorReturnClassBinding(::Scripting::IteratorBinding& iteratorBinding);
62
63MCAPI ::entt::meta_any ExceptionWriter(::JSContext* ctx);
64
65MCAPI ::JSValue GenericFreeFunctionCaller(
67 ::JSValue thisVal,
68 int argc,
69 ::JSValue* argv,
70 int magic,
71 ::JSValue* funcDataVal
72);
73
74MCAPI ::JSValue GenericObjectFunctionCaller(
76 ::JSValue thisVal,
77 int argc,
78 ::JSValue* argv,
79 int magic,
80 ::JSValue* funcDataVal
81);
82
83MCAPI ::JSValue
84GenericReflectionCtorCaller(::JSContext* ctx, ::JSValue newTarget, int argc, ::JSValue* argv, int jsClassIdMagic);
85
86MCAPI ::JSValue GenericReflectionPropertyGetter(
88 ::JSValue thisVal,
89 int argc,
90 ::JSValue* argv,
91 int magic,
92 ::JSValue* funcDataVal
93);
94
95MCAPI ::JSValue GenericReflectionPropertySetter(
97 ::JSValue thisVal,
98 int argc,
99 ::JSValue* argv,
100 int magic,
101 ::JSValue* funcDataVal
102);
103
104MCAPI ::std::string GetClassNameFromJSValue(::JSContext* ctx, ::JSValue target);
105
106MCAPI uint GetJSArrayLength(::JSContext* ctx, ::JSValue jsArray);
107
108MCAPI ::Scripting::ObjectHandle GetNativeObjectHandleFromJSValue(::JSValue jsValue);
109
110MCAPI ::Scripting::QuickJS::PropertyGetSet const&
111GetPropertyGetSetFromJSFuncData(::JSContext* ctx, ::JSValue* funcDataVal);
112
113MCAPI ::Scripting::QuickJS::RuntimeUserData* GetRuntimeUserDataFromContext(::JSContext* ctx);
114
115MCAPI bool HasNativeObjectHandle(::JSValue jsValue);
116
117MCAPI void InitializeBakedProperties(
119 ::JSValue obj,
120 ::Scripting::ObjectHandle objectHandle,
122 ::Scripting::QuickJS::RegisteredClass const* registeredClass
123);
124
125MCAPI ::std::string JSAtomCStringToString(::JSContext* ctx, uint jsAtom);
126
127MCAPI ::entt::meta_any JSErrorToNativeAny(::JSContext* ctx, ::JSValue jsValue);
128
129MCAPI ::std::string JSValueCStringToString(::JSContext* ctx, ::JSValue jsValue);
130
131MCAPI bool JSValueIsInfinite(::JSValue const& value);
132
133MCAPI bool JSValueIsNan(::JSValue const& value);
134
135MCAPI ::std::variant<::entt::meta_any, ::JSValue>
136JSValueToNativeAny(::JSContext* ctx, ::JSValue jsValue, ::entt::meta_type const& type);
137
138MCAPI ::std::variant<::entt::meta_any, ::JSValue> JSValueToNativeInterface(
140 ::JSValue jsValue,
142 ::entt::meta_type const& type,
143 ::Scripting::InterfaceBinding const& interfaceBinding
144);
145
146MCAPI ::JSValue NativeAnyToJSProtoClass(
148 ::JSValue newTarget,
149 ::entt::meta_any& any,
150 ::Scripting::QuickJS::RegisteredClass const& registeredClass,
152);
153
154MCAPI ::JSValue NativeAnyToJSValue(::JSContext* ctx, ::entt::meta_any& any, bool addRef, bool allowCopy);
155
156MCAPI ::JSValue NativeEnumToJSValue(::JSContext* ctx, ::entt::meta_any& any, bool addRef, bool allowCopy);
157
158MCAPI ::JSValue NativeErrorToJSValue(::JSContext* ctx, ::entt::meta_any& any);
159
160MCAPI ::JSValue NativeErrorToJSValueInternal(
162 ::entt::meta_any& any,
163 uint jsClassId,
165);
166
167MCAPI ::JSValue NativeInterfaceToJSValue(
169 ::entt::meta_any& any,
170 ::Scripting::QuickJS::RegisteredInterface const& registeredInterface,
171 bool addRef,
172 bool allowCopy
173);
174
175MCAPI ::JSValue NativeObjectHandleToJSProtoClass(
177 ::JSValue newTarget,
178 ::Scripting::ObjectHandle objectHandle,
179 ::Scripting::QuickJS::RegisteredClass const& registeredClass,
181);
182
183MCAPI ::JSValue NativeObjectHandleToJSValue(
185 ::Scripting::ObjectHandle objectHandle,
186 bool addRef,
187 bool ownership,
188 ::Scripting::QuickJS::NativeObjectOwnership allowCopy
189);
190
191MCAPI ::JSValue NativeRegisteredEnumToJSValue(
193 ::entt::meta_any& any,
194 ::Scripting::QuickJS::RegisteredEnum const& registeredEnum
195);
196
197MCAPI ::JSValue PrintError(::JSContext* ctx, ::JSValue, int argc, ::JSValue* argv);
198
199MCAPI ::JSValue PrintInfo(::JSContext* ctx, ::JSValue, int argc, ::JSValue* argv);
200
201MCAPI ::JSValue PrintWarn(::JSContext* ctx, ::JSValue, int argc, ::JSValue* argv);
202
203MCAPI ::JSValue ThrowEngineErrorToJS(::JSContext* ctx, ::std::string const& msg);
204
205MCAPI ::JSTypedArrayEnum ToJSTypedArrayEnum(::entt::meta_type const& type);
206
207MCAPI ::entt::meta_any WriteError(::JSContext* ctx, ::JSValue exceptionVal);
208
209MCAPI ::std::string WriteObject(::JSContext* ctx, ::JSValue val);
210
211MCAPI double anyToDouble(::entt::meta_any const& any);
212
213MCAPI ::std::string anyToString(::entt::meta_any const& any);
214
215MCAPI ::Scripting::StrongObjectHandle getHandleFromObjectFactory(
218 ::Scripting::ObjectFactory const& objectFactory
219);
220// NOLINTEND
221
222} // namespace Scripting::QuickJS
Definition LifetimeRegistry.h:16
Definition ContextUserData.h:17
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