/src/node/deps/v8/include/v8-fast-api-calls.h
Line | Count | Source |
1 | | // Copyright 2020 the V8 project authors. All rights reserved. |
2 | | // Use of this source code is governed by a BSD-style license that can be |
3 | | // found in the LICENSE file. |
4 | | |
5 | | #ifndef INCLUDE_V8_FAST_API_CALLS_H_ |
6 | | #define INCLUDE_V8_FAST_API_CALLS_H_ |
7 | | |
8 | | /** |
9 | | * This file provides additional API on top of the default one for making |
10 | | * API calls, which come from embedder C++ functions. The functions are being |
11 | | * called directly from optimized code, doing all the necessary typechecks |
12 | | * in the compiler itself, instead of on the embedder side. Hence the "fast" |
13 | | * in the name. Example usage might look like: |
14 | | * |
15 | | * \code |
16 | | * void FastMethod(int param, bool another_param); |
17 | | * |
18 | | * v8::FunctionTemplate::New(isolate, SlowCallback, data, |
19 | | * signature, length, constructor_behavior |
20 | | * side_effect_type, |
21 | | * &v8::CFunction::Make(FastMethod)); |
22 | | * \endcode |
23 | | * |
24 | | * By design, fast calls are limited by the following requirements, which |
25 | | * the embedder should enforce themselves: |
26 | | * - they should not allocate on the JS heap; |
27 | | * - they should not trigger JS execution. |
28 | | * To enforce them, the embedder could use the existing |
29 | | * v8::Isolate::DisallowJavascriptExecutionScope and a utility similar to |
30 | | * Blink's NoAllocationScope: |
31 | | * https://source.chromium.org/chromium/chromium/src/+/master:third_party/blink/renderer/platform/heap/thread_state_scopes.h;l=16 |
32 | | * |
33 | | * Due to these limitations, it's not directly possible to report errors by |
34 | | * throwing a JS exception or to otherwise do an allocation. There is an |
35 | | * alternative way of creating fast calls that supports falling back to the |
36 | | * slow call and then performing the necessary allocation. When one creates |
37 | | * the fast method by using CFunction::MakeWithFallbackSupport instead of |
38 | | * CFunction::Make, the fast callback gets as last parameter an output variable, |
39 | | * through which it can request falling back to the slow call. So one might |
40 | | * declare their method like: |
41 | | * |
42 | | * \code |
43 | | * void FastMethodWithFallback(int param, FastApiCallbackOptions& options); |
44 | | * \endcode |
45 | | * |
46 | | * If the callback wants to signal an error condition or to perform an |
47 | | * allocation, it must set options.fallback to true and do an early return from |
48 | | * the fast method. Then V8 checks the value of options.fallback and if it's |
49 | | * true, falls back to executing the SlowCallback, which is capable of reporting |
50 | | * the error (either by throwing a JS exception or logging to the console) or |
51 | | * doing the allocation. It's the embedder's responsibility to ensure that the |
52 | | * fast callback is idempotent up to the point where error and fallback |
53 | | * conditions are checked, because otherwise executing the slow callback might |
54 | | * produce visible side-effects twice. |
55 | | * |
56 | | * An example for custom embedder type support might employ a way to wrap/ |
57 | | * unwrap various C++ types in JSObject instances, e.g: |
58 | | * |
59 | | * \code |
60 | | * |
61 | | * // Helper method with a check for field count. |
62 | | * template <typename T, int offset> |
63 | | * inline T* GetInternalField(v8::Local<v8::Object> wrapper) { |
64 | | * assert(offset < wrapper->InternalFieldCount()); |
65 | | * return reinterpret_cast<T*>( |
66 | | * wrapper->GetAlignedPointerFromInternalField(offset)); |
67 | | * } |
68 | | * |
69 | | * class CustomEmbedderType { |
70 | | * public: |
71 | | * // Returns the raw C object from a wrapper JS object. |
72 | | * static CustomEmbedderType* Unwrap(v8::Local<v8::Object> wrapper) { |
73 | | * return GetInternalField<CustomEmbedderType, |
74 | | * kV8EmbedderWrapperObjectIndex>(wrapper); |
75 | | * } |
76 | | * static void FastMethod(v8::Local<v8::Object> receiver_obj, int param) { |
77 | | * CustomEmbedderType* receiver = static_cast<CustomEmbedderType*>( |
78 | | * receiver_obj->GetAlignedPointerFromInternalField( |
79 | | * kV8EmbedderWrapperObjectIndex)); |
80 | | * |
81 | | * // Type checks are already done by the optimized code. |
82 | | * // Then call some performance-critical method like: |
83 | | * // receiver->Method(param); |
84 | | * } |
85 | | * |
86 | | * static void SlowMethod( |
87 | | * const v8::FunctionCallbackInfo<v8::Value>& info) { |
88 | | * v8::Local<v8::Object> instance = |
89 | | * v8::Local<v8::Object>::Cast(info.Holder()); |
90 | | * CustomEmbedderType* receiver = Unwrap(instance); |
91 | | * // TODO: Do type checks and extract {param}. |
92 | | * receiver->Method(param); |
93 | | * } |
94 | | * }; |
95 | | * |
96 | | * // The following setup function can be templatized based on |
97 | | * // the {embedder_object} argument. |
98 | | * void SetupCustomEmbedderObject(v8::Isolate* isolate, |
99 | | * v8::Local<v8::Context> context, |
100 | | * CustomEmbedderType* embedder_object) { |
101 | | * v8::CFunction c_func = |
102 | | * MakeV8CFunction(CustomEmbedderType::FastMethod); |
103 | | * |
104 | | * Local<v8::FunctionTemplate> method_template = |
105 | | * v8::FunctionTemplate::New( |
106 | | * isolate, CustomEmbedderType::SlowMethod, v8::Local<v8::Value>(), |
107 | | * v8::Local<v8::Signature>(), 1, v8::ConstructorBehavior::kAllow, |
108 | | * v8::SideEffectType::kHasSideEffect, &c_func); |
109 | | * |
110 | | * v8::Local<v8::ObjectTemplate> object_template = |
111 | | * v8::ObjectTemplate::New(isolate); |
112 | | * object_template->SetInternalFieldCount( |
113 | | * kV8EmbedderWrapperObjectIndex + 1); |
114 | | * object_template->Set(isolate, "method", method_template); |
115 | | * |
116 | | * // Instantiate the wrapper JS object. |
117 | | * v8::Local<v8::Object> object = |
118 | | * object_template->NewInstance(context).ToLocalChecked(); |
119 | | * object->SetAlignedPointerInInternalField( |
120 | | * kV8EmbedderWrapperObjectIndex, |
121 | | * reinterpret_cast<void*>(embedder_object)); |
122 | | * |
123 | | * // TODO: Expose {object} where it's necessary. |
124 | | * } |
125 | | * \endcode |
126 | | * |
127 | | * For instance if {object} is exposed via a global "obj" variable, |
128 | | * one could write in JS: |
129 | | * function hot_func() { |
130 | | * obj.method(42); |
131 | | * } |
132 | | * and once {hot_func} gets optimized, CustomEmbedderType::FastMethod |
133 | | * will be called instead of the slow version, with the following arguments: |
134 | | * receiver := the {embedder_object} from above |
135 | | * param := 42 |
136 | | * |
137 | | * Currently supported return types: |
138 | | * - void |
139 | | * - bool |
140 | | * - int32_t |
141 | | * - uint32_t |
142 | | * - float32_t |
143 | | * - float64_t |
144 | | * Currently supported argument types: |
145 | | * - pointer to an embedder type |
146 | | * - JavaScript array of primitive types |
147 | | * - bool |
148 | | * - int32_t |
149 | | * - uint32_t |
150 | | * - int64_t |
151 | | * - uint64_t |
152 | | * - float32_t |
153 | | * - float64_t |
154 | | * |
155 | | * The 64-bit integer types currently have the IDL (unsigned) long long |
156 | | * semantics: https://heycam.github.io/webidl/#abstract-opdef-converttoint |
157 | | * In the future we'll extend the API to also provide conversions from/to |
158 | | * BigInt to preserve full precision. |
159 | | * The floating point types currently have the IDL (unrestricted) semantics, |
160 | | * which is the only one used by WebGL. We plan to add support also for |
161 | | * restricted floats/doubles, similarly to the BigInt conversion policies. |
162 | | * We also differ from the specific NaN bit pattern that WebIDL prescribes |
163 | | * (https://heycam.github.io/webidl/#es-unrestricted-float) in that Blink |
164 | | * passes NaN values as-is, i.e. doesn't normalize them. |
165 | | * |
166 | | * To be supported types: |
167 | | * - TypedArrays and ArrayBuffers |
168 | | * - arrays of embedder types |
169 | | * |
170 | | * |
171 | | * The API offers a limited support for function overloads: |
172 | | * |
173 | | * \code |
174 | | * void FastMethod_2Args(int param, bool another_param); |
175 | | * void FastMethod_3Args(int param, bool another_param, int third_param); |
176 | | * |
177 | | * v8::CFunction fast_method_2args_c_func = |
178 | | * MakeV8CFunction(FastMethod_2Args); |
179 | | * v8::CFunction fast_method_3args_c_func = |
180 | | * MakeV8CFunction(FastMethod_3Args); |
181 | | * const v8::CFunction fast_method_overloads[] = {fast_method_2args_c_func, |
182 | | * fast_method_3args_c_func}; |
183 | | * Local<v8::FunctionTemplate> method_template = |
184 | | * v8::FunctionTemplate::NewWithCFunctionOverloads( |
185 | | * isolate, SlowCallback, data, signature, length, |
186 | | * constructor_behavior, side_effect_type, |
187 | | * {fast_method_overloads, 2}); |
188 | | * \endcode |
189 | | * |
190 | | * In this example a single FunctionTemplate is associated to multiple C++ |
191 | | * functions. The overload resolution is currently only based on the number of |
192 | | * arguments passed in a call. For example, if this method_template is |
193 | | * registered with a wrapper JS object as described above, a call with two |
194 | | * arguments: |
195 | | * obj.method(42, true); |
196 | | * will result in a fast call to FastMethod_2Args, while a call with three or |
197 | | * more arguments: |
198 | | * obj.method(42, true, 11); |
199 | | * will result in a fast call to FastMethod_3Args. Instead a call with less than |
200 | | * two arguments, like: |
201 | | * obj.method(42); |
202 | | * would not result in a fast call but would fall back to executing the |
203 | | * associated SlowCallback. |
204 | | */ |
205 | | |
206 | | #include <stddef.h> |
207 | | #include <stdint.h> |
208 | | |
209 | | #include <tuple> |
210 | | #include <type_traits> |
211 | | |
212 | | #include "v8-external.h" // NOLINT(build/include_directory) |
213 | | #include "v8-internal.h" // NOLINT(build/include_directory) |
214 | | #include "v8-local-handle.h" // NOLINT(build/include_directory) |
215 | | #include "v8-typed-array.h" // NOLINT(build/include_directory) |
216 | | #include "v8-value.h" // NOLINT(build/include_directory) |
217 | | #include "v8config.h" // NOLINT(build/include_directory) |
218 | | |
219 | | namespace v8 { |
220 | | |
221 | | class Isolate; |
222 | | |
223 | | class CTypeInfo { |
224 | | public: |
225 | | enum class Type : uint8_t { |
226 | | kVoid, |
227 | | kBool, |
228 | | kUint8, |
229 | | kInt32, |
230 | | kUint32, |
231 | | kInt64, |
232 | | kUint64, |
233 | | kFloat32, |
234 | | kFloat64, |
235 | | kPointer, |
236 | | kV8Value, |
237 | | kSeqOneByteString, |
238 | | kApiObject, // This will be deprecated once all users have |
239 | | // migrated from v8::ApiObject to v8::Local<v8::Value>. |
240 | | kAny, // This is added to enable untyped representation of fast |
241 | | // call arguments for test purposes. It can represent any of |
242 | | // the other types stored in the same memory as a union |
243 | | // (see AnyCType declared below). This allows for |
244 | | // uniform passing of arguments w.r.t. their location |
245 | | // (in a register or on the stack), independent of their |
246 | | // actual type. It's currently used by the arm64 simulator |
247 | | // and can be added to the other simulators as well when fast |
248 | | // calls having both GP and FP params need to be supported. |
249 | | }; |
250 | | |
251 | | // kCallbackOptionsType is not part of the Type enum |
252 | | // because it is only used internally. Use value 255 that is larger |
253 | | // than any valid Type enum. |
254 | | static constexpr Type kCallbackOptionsType = Type(255); |
255 | | |
256 | | enum class Flags : uint8_t { |
257 | | kNone = 0, |
258 | | kAllowSharedBit = 1 << 0, // Must be an ArrayBuffer or TypedArray |
259 | | kEnforceRangeBit = 1 << 1, // T must be integral |
260 | | kClampBit = 1 << 2, // T must be integral |
261 | | kIsRestrictedBit = 1 << 3, // T must be float or double |
262 | | }; |
263 | | |
264 | | explicit constexpr CTypeInfo(Type type, Flags flags = Flags::kNone) |
265 | 5.18k | : type_(type), flags_(flags) {} |
266 | | |
267 | | typedef uint32_t Identifier; |
268 | | explicit constexpr CTypeInfo(Identifier identifier) |
269 | | : type_(static_cast<Type>((identifier >> 8) & 255)), |
270 | 0 | flags_(static_cast<Flags>(identifier & 255)) {} |
271 | 0 | constexpr Identifier GetId() const { |
272 | 0 | return static_cast<uint8_t>(type_) << 8 | |
273 | 0 | static_cast<uint8_t>(flags_); |
274 | 0 | } |
275 | | |
276 | 0 | constexpr Type GetType() const { return type_; } |
277 | 0 | constexpr Flags GetFlags() const { return flags_; } |
278 | | |
279 | 0 | static constexpr bool IsIntegralType(Type type) { |
280 | 0 | return type == Type::kUint8 || type == Type::kInt32 || |
281 | 0 | type == Type::kUint32 || type == Type::kInt64 || |
282 | 0 | type == Type::kUint64; |
283 | 0 | } |
284 | | |
285 | 0 | static constexpr bool IsFloatingPointType(Type type) { |
286 | 0 | return type == Type::kFloat32 || type == Type::kFloat64; |
287 | 0 | } |
288 | | |
289 | 0 | static constexpr bool IsPrimitive(Type type) { |
290 | 0 | return IsIntegralType(type) || IsFloatingPointType(type) || |
291 | 0 | type == Type::kBool; |
292 | 0 | } |
293 | | |
294 | | private: |
295 | | Type type_; |
296 | | Flags flags_; |
297 | | }; |
298 | | |
299 | | struct FastOneByteString { |
300 | | const char* data; |
301 | | uint32_t length; |
302 | | }; |
303 | | |
304 | | class V8_EXPORT CFunctionInfo { |
305 | | public: |
306 | | enum class Int64Representation : uint8_t { |
307 | | kNumber = 0, // Use numbers to represent 64 bit integers. |
308 | | kBigInt = 1, // Use BigInts to represent 64 bit integers. |
309 | | }; |
310 | | |
311 | | // Construct a struct to hold a CFunction's type information. |
312 | | // |return_info| describes the function's return type. |
313 | | // |arg_info| is an array of |arg_count| CTypeInfos describing the |
314 | | // arguments. Only the last argument may be of the special type |
315 | | // CTypeInfo::kCallbackOptionsType. |
316 | | CFunctionInfo(const CTypeInfo& return_info, unsigned int arg_count, |
317 | | const CTypeInfo* arg_info, |
318 | | Int64Representation repr = Int64Representation::kNumber); |
319 | | |
320 | 0 | const CTypeInfo& ReturnInfo() const { return return_info_; } |
321 | | |
322 | | // The argument count, not including the v8::FastApiCallbackOptions |
323 | | // if present. |
324 | 0 | unsigned int ArgumentCount() const { |
325 | 0 | return HasOptions() ? arg_count_ - 1 : arg_count_; |
326 | 0 | } |
327 | | |
328 | 4.46k | Int64Representation GetInt64Representation() const { return repr_; } |
329 | | |
330 | | // |index| must be less than ArgumentCount(). |
331 | | // Note: if the last argument passed on construction of CFunctionInfo |
332 | | // has type CTypeInfo::kCallbackOptionsType, it is not included in |
333 | | // ArgumentCount(). |
334 | | const CTypeInfo& ArgumentInfo(unsigned int index) const; |
335 | | |
336 | 0 | bool HasOptions() const { |
337 | 0 | // The options arg is always the last one. |
338 | 0 | return arg_count_ > 0 && arg_info_[arg_count_ - 1].GetType() == |
339 | 0 | CTypeInfo::kCallbackOptionsType; |
340 | 0 | } |
341 | | |
342 | | private: |
343 | | const CTypeInfo return_info_; |
344 | | const Int64Representation repr_; |
345 | | const unsigned int arg_count_; |
346 | | const CTypeInfo* arg_info_; |
347 | | }; |
348 | | |
349 | | struct FastApiCallbackOptions; |
350 | | |
351 | | // Provided for testing. |
352 | | union V8_TRIVIAL_ABI AnyCType { |
353 | 0 | AnyCType() : int64_value(0) {} |
354 | | |
355 | | #if defined(V8_ENABLE_LOCAL_OFF_STACK_CHECK) && V8_HAS_ATTRIBUTE_TRIVIAL_ABI |
356 | | // In this case, Local<T> is not trivially copyable and the implicit |
357 | | // copy constructor and copy assignment for the union are deleted. |
358 | | AnyCType(const AnyCType& other) : int64_value(other.int64_value) {} |
359 | | AnyCType& operator=(const AnyCType& other) { |
360 | | int64_value = other.int64_value; |
361 | | return *this; |
362 | | } |
363 | | #endif |
364 | | |
365 | | bool bool_value; |
366 | | int32_t int32_value; |
367 | | uint32_t uint32_value; |
368 | | int64_t int64_value; |
369 | | uint64_t uint64_value; |
370 | | float float_value; |
371 | | double double_value; |
372 | | void* pointer_value; |
373 | | Local<Object> object_value; |
374 | | Local<Array> sequence_value; |
375 | | const FastOneByteString* string_value; |
376 | | FastApiCallbackOptions* options_value; |
377 | | }; |
378 | | |
379 | | static_assert( |
380 | | sizeof(AnyCType) == 8, |
381 | | "The union AnyCType should have size == 64 bits, as this is assumed " |
382 | | "by EffectControlLinearizer."); |
383 | | |
384 | | class V8_EXPORT CFunction { |
385 | | public: |
386 | 0 | constexpr CFunction() : address_(nullptr), type_info_(nullptr) {} |
387 | | |
388 | 0 | const CTypeInfo& ReturnInfo() const { return type_info_->ReturnInfo(); } |
389 | | |
390 | 0 | const CTypeInfo& ArgumentInfo(unsigned int index) const { |
391 | 0 | return type_info_->ArgumentInfo(index); |
392 | 0 | } |
393 | | |
394 | 0 | unsigned int ArgumentCount() const { return type_info_->ArgumentCount(); } |
395 | | |
396 | 0 | const void* GetAddress() const { return address_; } |
397 | 4.46k | CFunctionInfo::Int64Representation GetInt64Representation() const { |
398 | 4.46k | return type_info_->GetInt64Representation(); |
399 | 4.46k | } |
400 | 0 | const CFunctionInfo* GetTypeInfo() const { return type_info_; } |
401 | | |
402 | | enum class OverloadResolution { kImpossible, kAtRuntime, kAtCompileTime }; |
403 | | |
404 | | template <typename F> |
405 | | static CFunction Make(F* func, |
406 | | CFunctionInfo::Int64Representation int64_rep = |
407 | 4.46k | CFunctionInfo::Int64Representation::kNumber) { |
408 | 4.46k | CFunction result = ArgUnwrap<F*>::Make(func, int64_rep); |
409 | 4.46k | result.GetInt64Representation(); |
410 | 4.46k | return result; |
411 | 4.46k | } v8::CFunction v8::CFunction::Make<unsigned int (v8::Local<v8::Value>, v8::Local<v8::Value>, v8::Local<v8::Value>, unsigned int, unsigned int, unsigned int, v8::FastApiCallbackOptions&)>(unsigned int (*)(v8::Local<v8::Value>, v8::Local<v8::Value>, v8::Local<v8::Value>, unsigned int, unsigned int, unsigned int, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Line | Count | Source | 407 | 72 | CFunctionInfo::Int64Representation::kNumber) { | 408 | 72 | CFunction result = ArgUnwrap<F*>::Make(func, int64_rep); | 409 | 72 | result.GetInt64Representation(); | 410 | 72 | return result; | 411 | 72 | } |
v8::CFunction v8::CFunction::Make<unsigned int (v8::Local<v8::Value>, v8::Local<v8::Value>, v8::FastApiCallbackOptions&)>(unsigned int (*)(v8::Local<v8::Value>, v8::Local<v8::Value>, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Line | Count | Source | 407 | 72 | CFunctionInfo::Int64Representation::kNumber) { | 408 | 72 | CFunction result = ArgUnwrap<F*>::Make(func, int64_rep); | 409 | 72 | result.GetInt64Representation(); | 410 | 72 | return result; | 411 | 72 | } |
v8::CFunction v8::CFunction::Make<int (v8::Local<v8::Value>, v8::Local<v8::Value>, v8::Local<v8::Value>, v8::FastApiCallbackOptions&)>(int (*)(v8::Local<v8::Value>, v8::Local<v8::Value>, v8::Local<v8::Value>, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Line | Count | Source | 407 | 72 | CFunctionInfo::Int64Representation::kNumber) { | 408 | 72 | CFunction result = ArgUnwrap<F*>::Make(func, int64_rep); | 409 | 72 | result.GetInt64Representation(); | 410 | 72 | return result; | 411 | 72 | } |
v8::CFunction v8::CFunction::Make<int (v8::Local<v8::Value>, v8::Local<v8::Value>, unsigned int, long, bool, v8::FastApiCallbackOptions&)>(int (*)(v8::Local<v8::Value>, v8::Local<v8::Value>, unsigned int, long, bool, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Line | Count | Source | 407 | 72 | CFunctionInfo::Int64Representation::kNumber) { | 408 | 72 | CFunction result = ArgUnwrap<F*>::Make(func, int64_rep); | 409 | 72 | result.GetInt64Representation(); | 410 | 72 | return result; | 411 | 72 | } |
v8::CFunction v8::CFunction::Make<unsigned int (v8::Local<v8::Value>, v8::Local<v8::Value>, v8::FastOneByteString const&, unsigned int, unsigned int, v8::FastApiCallbackOptions&)>(unsigned int (*)(v8::Local<v8::Value>, v8::Local<v8::Value>, v8::FastOneByteString const&, unsigned int, unsigned int, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Line | Count | Source | 407 | 216 | CFunctionInfo::Int64Representation::kNumber) { | 408 | 216 | CFunction result = ArgUnwrap<F*>::Make(func, int64_rep); | 409 | 216 | result.GetInt64Representation(); | 410 | 216 | return result; | 411 | 216 | } |
v8::CFunction v8::CFunction::Make<double (v8::Local<v8::Value>)>(double (*)(v8::Local<v8::Value>), v8::CFunctionInfo::Int64Representation) Line | Count | Source | 407 | 720 | CFunctionInfo::Int64Representation::kNumber) { | 408 | 720 | CFunction result = ArgUnwrap<F*>::Make(func, int64_rep); | 409 | 720 | result.GetInt64Representation(); | 410 | 720 | return result; | 411 | 720 | } |
v8::CFunction v8::CFunction::Make<unsigned int (v8::Local<v8::Value>)>(unsigned int (*)(v8::Local<v8::Value>), v8::CFunctionInfo::Int64Representation) Line | Count | Source | 407 | 72 | CFunctionInfo::Int64Representation::kNumber) { | 408 | 72 | CFunction result = ArgUnwrap<F*>::Make(func, int64_rep); | 409 | 72 | result.GetInt64Representation(); | 410 | 72 | return result; | 411 | 72 | } |
v8::CFunction v8::CFunction::Make<void (v8::Local<v8::Value>)>(void (*)(v8::Local<v8::Value>), v8::CFunctionInfo::Int64Representation) Line | Count | Source | 407 | 360 | CFunctionInfo::Int64Representation::kNumber) { | 408 | 360 | CFunction result = ArgUnwrap<F*>::Make(func, int64_rep); | 409 | 360 | result.GetInt64Representation(); | 410 | 360 | return result; | 411 | 360 | } |
v8::CFunction v8::CFunction::Make<bool (v8::Local<v8::Value>, v8::Local<v8::Value>)>(bool (*)(v8::Local<v8::Value>, v8::Local<v8::Value>), v8::CFunctionInfo::Int64Representation) Line | Count | Source | 407 | 2.01k | CFunctionInfo::Int64Representation::kNumber) { | 408 | 2.01k | CFunction result = ArgUnwrap<F*>::Make(func, int64_rep); | 409 | 2.01k | result.GetInt64Representation(); | 410 | 2.01k | return result; | 411 | 2.01k | } |
v8::CFunction v8::CFunction::Make<bool (v8::Local<v8::Value>, v8::Local<v8::Value>, v8::FastApiCallbackOptions&)>(bool (*)(v8::Local<v8::Value>, v8::Local<v8::Value>, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Line | Count | Source | 407 | 72 | CFunctionInfo::Int64Representation::kNumber) { | 408 | 72 | CFunction result = ArgUnwrap<F*>::Make(func, int64_rep); | 409 | 72 | result.GetInt64Representation(); | 410 | 72 | return result; | 411 | 72 | } |
v8::CFunction v8::CFunction::Make<bool (v8::Local<v8::Value>, v8::Local<v8::Value>, v8::Local<v8::Value>, v8::FastApiCallbackOptions&)>(bool (*)(v8::Local<v8::Value>, v8::Local<v8::Value>, v8::Local<v8::Value>, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Line | Count | Source | 407 | 144 | CFunctionInfo::Int64Representation::kNumber) { | 408 | 144 | CFunction result = ArgUnwrap<F*>::Make(func, int64_rep); | 409 | 144 | result.GetInt64Representation(); | 410 | 144 | return result; | 411 | 144 | } |
v8::CFunction v8::CFunction::Make<unsigned int (v8::Local<v8::Value>, unsigned int)>(unsigned int (*)(v8::Local<v8::Value>, unsigned int), v8::CFunctionInfo::Int64Representation) Line | Count | Source | 407 | 72 | CFunctionInfo::Int64Representation::kNumber) { | 408 | 72 | CFunction result = ArgUnwrap<F*>::Make(func, int64_rep); | 409 | 72 | result.GetInt64Representation(); | 410 | 72 | return result; | 411 | 72 | } |
Unexecuted instantiation: v8::CFunction v8::CFunction::Make<unsigned int (v8::Local<v8::Object>, unsigned int, unsigned int, v8::FastApiCallbackOptions&)>(unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned int, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Unexecuted instantiation: v8::CFunction v8::CFunction::Make<unsigned int (v8::Local<v8::Object>, unsigned int, unsigned long, unsigned int, v8::FastApiCallbackOptions&)>(unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned long, unsigned int, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Unexecuted instantiation: v8::CFunction v8::CFunction::Make<unsigned int (v8::Local<v8::Object>, unsigned int, unsigned long, unsigned long, unsigned int, v8::FastApiCallbackOptions&)>(unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned long, unsigned long, unsigned int, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Unexecuted instantiation: v8::CFunction v8::CFunction::Make<unsigned int (v8::Local<v8::Object>, unsigned int, unsigned long, unsigned long, v8::FastApiCallbackOptions&)>(unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned long, unsigned long, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Unexecuted instantiation: v8::CFunction v8::CFunction::Make<unsigned int (v8::Local<v8::Object>, unsigned int, v8::FastApiCallbackOptions&)>(unsigned int (*)(v8::Local<v8::Object>, unsigned int, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Unexecuted instantiation: v8::CFunction v8::CFunction::Make<unsigned int (v8::Local<v8::Object>, unsigned int, unsigned long, v8::FastApiCallbackOptions&)>(unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned long, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Unexecuted instantiation: v8::CFunction v8::CFunction::Make<unsigned int (v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, unsigned long, unsigned int, v8::FastApiCallbackOptions&)>(unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, unsigned long, unsigned int, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Unexecuted instantiation: v8::CFunction v8::CFunction::Make<unsigned int (v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, v8::FastApiCallbackOptions&)>(unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Unexecuted instantiation: v8::CFunction v8::CFunction::Make<unsigned int (v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, unsigned int, v8::FastApiCallbackOptions&)>(unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, unsigned int, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Unexecuted instantiation: v8::CFunction v8::CFunction::Make<unsigned int (v8::Local<v8::Object>, unsigned int, long, unsigned int, unsigned int, v8::FastApiCallbackOptions&)>(unsigned int (*)(v8::Local<v8::Object>, unsigned int, long, unsigned int, unsigned int, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Unexecuted instantiation: v8::CFunction v8::CFunction::Make<unsigned int (v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, v8::FastApiCallbackOptions&)>(unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Unexecuted instantiation: v8::CFunction v8::CFunction::Make<unsigned int (v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, unsigned int, unsigned long, unsigned long, unsigned int, v8::FastApiCallbackOptions&)>(unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, unsigned int, unsigned long, unsigned long, unsigned int, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Unexecuted instantiation: v8::CFunction v8::CFunction::Make<unsigned int (v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, v8::FastApiCallbackOptions&)>(unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Unexecuted instantiation: v8::CFunction v8::CFunction::Make<unsigned int (v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned long, unsigned long, unsigned int, unsigned int, v8::FastApiCallbackOptions&)>(unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned long, unsigned long, unsigned int, unsigned int, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Unexecuted instantiation: v8::CFunction v8::CFunction::Make<unsigned int (v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, v8::FastApiCallbackOptions&)>(unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Unexecuted instantiation: v8::CFunction v8::CFunction::Make<void (v8::Local<v8::Object>, unsigned int, v8::FastApiCallbackOptions&)>(void (*)(v8::Local<v8::Object>, unsigned int, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Unexecuted instantiation: v8::CFunction v8::CFunction::Make<unsigned int (v8::Local<v8::Object>, v8::FastApiCallbackOptions&)>(unsigned int (*)(v8::Local<v8::Object>, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) v8::CFunction v8::CFunction::Make<unsigned int (v8::Local<v8::Value>, v8::Local<v8::Value>, unsigned int, v8::FastApiCallbackOptions&)>(unsigned int (*)(v8::Local<v8::Value>, v8::Local<v8::Value>, unsigned int, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Line | Count | Source | 407 | 72 | CFunctionInfo::Int64Representation::kNumber) { | 408 | 72 | CFunction result = ArgUnwrap<F*>::Make(func, int64_rep); | 409 | 72 | result.GetInt64Representation(); | 410 | 72 | return result; | 411 | 72 | } |
v8::CFunction v8::CFunction::Make<void (v8::Local<v8::Object>, long)>(void (*)(v8::Local<v8::Object>, long), v8::CFunctionInfo::Int64Representation) Line | Count | Source | 407 | 72 | CFunctionInfo::Int64Representation::kNumber) { | 408 | 72 | CFunction result = ArgUnwrap<F*>::Make(func, int64_rep); | 409 | 72 | result.GetInt64Representation(); | 410 | 72 | return result; | 411 | 72 | } |
v8::CFunction v8::CFunction::Make<void (v8::Local<v8::Object>, bool)>(void (*)(v8::Local<v8::Object>, bool), v8::CFunctionInfo::Int64Representation) Line | Count | Source | 407 | 144 | CFunctionInfo::Int64Representation::kNumber) { | 408 | 144 | CFunction result = ArgUnwrap<F*>::Make(func, int64_rep); | 409 | 144 | result.GetInt64Representation(); | 410 | 144 | return result; | 411 | 144 | } |
v8::CFunction v8::CFunction::Make<double (v8::Local<v8::Value>, double)>(double (*)(v8::Local<v8::Value>, double), v8::CFunctionInfo::Int64Representation) Line | Count | Source | 407 | 72 | CFunctionInfo::Int64Representation::kNumber) { | 408 | 72 | CFunction result = ArgUnwrap<F*>::Make(func, int64_rep); | 409 | 72 | result.GetInt64Representation(); | 410 | 72 | return result; | 411 | 72 | } |
v8::CFunction v8::CFunction::Make<void (v8::Local<v8::Value>, long)>(void (*)(v8::Local<v8::Value>, long), v8::CFunctionInfo::Int64Representation) Line | Count | Source | 407 | 72 | CFunctionInfo::Int64Representation::kNumber) { | 408 | 72 | CFunction result = ArgUnwrap<F*>::Make(func, int64_rep); | 409 | 72 | result.GetInt64Representation(); | 410 | 72 | return result; | 411 | 72 | } |
v8::CFunction v8::CFunction::Make<void (v8::Local<v8::Value>, bool)>(void (*)(v8::Local<v8::Value>, bool), v8::CFunctionInfo::Int64Representation) Line | Count | Source | 407 | 72 | CFunctionInfo::Int64Representation::kNumber) { | 408 | 72 | CFunction result = ArgUnwrap<F*>::Make(func, int64_rep); | 409 | 72 | result.GetInt64Representation(); | 410 | 72 | return result; | 411 | 72 | } |
|
412 | | |
413 | | // Provided for testing purposes. |
414 | | template <typename R, typename... Args, typename R_Patch, |
415 | | typename... Args_Patch> |
416 | | static CFunction Make(R (*func)(Args...), |
417 | | R_Patch (*patching_func)(Args_Patch...), |
418 | | CFunctionInfo::Int64Representation int64_rep = |
419 | | CFunctionInfo::Int64Representation::kNumber) { |
420 | | CFunction c_func = ArgUnwrap<R (*)(Args...)>::Make(func, int64_rep); |
421 | | static_assert( |
422 | | sizeof...(Args_Patch) == sizeof...(Args), |
423 | | "The patching function must have the same number of arguments."); |
424 | | c_func.address_ = reinterpret_cast<void*>(patching_func); |
425 | | return c_func; |
426 | | } |
427 | | |
428 | | CFunction(const void* address, const CFunctionInfo* type_info); |
429 | | |
430 | | private: |
431 | | const void* address_; |
432 | | const CFunctionInfo* type_info_; |
433 | | |
434 | | template <typename F> |
435 | | class ArgUnwrap { |
436 | | static_assert(sizeof(F) != sizeof(F), |
437 | | "CFunction must be created from a function pointer."); |
438 | | }; |
439 | | |
440 | | template <typename R, typename... Args> |
441 | | class ArgUnwrap<R (*)(Args...)> { |
442 | | public: |
443 | | static CFunction Make(R (*func)(Args...), |
444 | | CFunctionInfo::Int64Representation int64_rep = |
445 | | CFunctionInfo::Int64Representation::kNumber); |
446 | | }; |
447 | | }; |
448 | | |
449 | | /** |
450 | | * A struct which may be passed to a fast call callback, like so: |
451 | | * \code |
452 | | * void FastMethodWithOptions(int param, FastApiCallbackOptions& options); |
453 | | * \endcode |
454 | | */ |
455 | | struct FastApiCallbackOptions { |
456 | | /** |
457 | | * Creates a new instance of FastApiCallbackOptions for testing purpose. The |
458 | | * returned instance may be filled with mock data. |
459 | | */ |
460 | 0 | static FastApiCallbackOptions CreateForTesting(Isolate* isolate) { |
461 | 0 | return {}; |
462 | 0 | } |
463 | | |
464 | | v8::Isolate* isolate = nullptr; |
465 | | |
466 | | /** |
467 | | * The `data` passed to the FunctionTemplate constructor, or `undefined`. |
468 | | */ |
469 | | v8::Local<v8::Value> data; |
470 | | }; |
471 | | |
472 | | namespace internal { |
473 | | |
474 | | // Helper to count the number of occurances of `T` in `List` |
475 | | template <typename T, typename... List> |
476 | | struct count : std::integral_constant<int, 0> {}; |
477 | | template <typename T, typename... Args> |
478 | | struct count<T, T, Args...> |
479 | | : std::integral_constant<std::size_t, 1 + count<T, Args...>::value> {}; |
480 | | template <typename T, typename U, typename... Args> |
481 | | struct count<T, U, Args...> : count<T, Args...> {}; |
482 | | |
483 | | template <CFunctionInfo::Int64Representation Representation, |
484 | | typename RetBuilder, typename... ArgBuilders> |
485 | | class CFunctionInfoImpl : public CFunctionInfo { |
486 | | static constexpr int kOptionsArgCount = |
487 | | count<FastApiCallbackOptions&, ArgBuilders...>(); |
488 | | static constexpr int kReceiverCount = 1; |
489 | | |
490 | | static_assert(kOptionsArgCount == 0 || kOptionsArgCount == 1, |
491 | | "Only one options parameter is supported."); |
492 | | |
493 | | static_assert(sizeof...(ArgBuilders) >= kOptionsArgCount + kReceiverCount, |
494 | | "The receiver or the options argument is missing."); |
495 | | |
496 | | public: |
497 | | constexpr CFunctionInfoImpl() |
498 | 1.29k | : CFunctionInfo(RetBuilder::Build(), sizeof...(ArgBuilders), |
499 | 1.29k | arg_info_storage_, Representation), |
500 | 1.29k | arg_info_storage_{ArgBuilders::Build()...} { |
501 | 1.29k | constexpr CTypeInfo::Type kReturnType = RetBuilder::Build().GetType(); |
502 | 1.29k | static_assert(kReturnType == CTypeInfo::Type::kVoid || |
503 | 1.29k | kReturnType == CTypeInfo::Type::kBool || |
504 | 1.29k | kReturnType == CTypeInfo::Type::kInt32 || |
505 | 1.29k | kReturnType == CTypeInfo::Type::kUint32 || |
506 | 1.29k | kReturnType == CTypeInfo::Type::kInt64 || |
507 | 1.29k | kReturnType == CTypeInfo::Type::kUint64 || |
508 | 1.29k | kReturnType == CTypeInfo::Type::kFloat32 || |
509 | 1.29k | kReturnType == CTypeInfo::Type::kFloat64 || |
510 | 1.29k | kReturnType == CTypeInfo::Type::kPointer || |
511 | 1.29k | kReturnType == CTypeInfo::Type::kAny, |
512 | 1.29k | "String and api object values are not currently " |
513 | 1.29k | "supported return types."); |
514 | 1.29k | } v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)0, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() Line | Count | Source | 498 | 72 | : CFunctionInfo(RetBuilder::Build(), sizeof...(ArgBuilders), | 499 | 72 | arg_info_storage_, Representation), | 500 | 72 | arg_info_storage_{ArgBuilders::Build()...} { | 501 | 72 | constexpr CTypeInfo::Type kReturnType = RetBuilder::Build().GetType(); | 502 | 72 | static_assert(kReturnType == CTypeInfo::Type::kVoid || | 503 | 72 | kReturnType == CTypeInfo::Type::kBool || | 504 | 72 | kReturnType == CTypeInfo::Type::kInt32 || | 505 | 72 | kReturnType == CTypeInfo::Type::kUint32 || | 506 | 72 | kReturnType == CTypeInfo::Type::kInt64 || | 507 | 72 | kReturnType == CTypeInfo::Type::kUint64 || | 508 | 72 | kReturnType == CTypeInfo::Type::kFloat32 || | 509 | 72 | kReturnType == CTypeInfo::Type::kFloat64 || | 510 | 72 | kReturnType == CTypeInfo::Type::kPointer || | 511 | 72 | kReturnType == CTypeInfo::Type::kAny, | 512 | 72 | "String and api object values are not currently " | 513 | 72 | "supported return types."); | 514 | 72 | } |
Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)1, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)0, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() Line | Count | Source | 498 | 72 | : CFunctionInfo(RetBuilder::Build(), sizeof...(ArgBuilders), | 499 | 72 | arg_info_storage_, Representation), | 500 | 72 | arg_info_storage_{ArgBuilders::Build()...} { | 501 | 72 | constexpr CTypeInfo::Type kReturnType = RetBuilder::Build().GetType(); | 502 | 72 | static_assert(kReturnType == CTypeInfo::Type::kVoid || | 503 | 72 | kReturnType == CTypeInfo::Type::kBool || | 504 | 72 | kReturnType == CTypeInfo::Type::kInt32 || | 505 | 72 | kReturnType == CTypeInfo::Type::kUint32 || | 506 | 72 | kReturnType == CTypeInfo::Type::kInt64 || | 507 | 72 | kReturnType == CTypeInfo::Type::kUint64 || | 508 | 72 | kReturnType == CTypeInfo::Type::kFloat32 || | 509 | 72 | kReturnType == CTypeInfo::Type::kFloat64 || | 510 | 72 | kReturnType == CTypeInfo::Type::kPointer || | 511 | 72 | kReturnType == CTypeInfo::Type::kAny, | 512 | 72 | "String and api object values are not currently " | 513 | 72 | "supported return types."); | 514 | 72 | } |
Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)1, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)0, v8::CTypeInfoBuilder<int>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() Line | Count | Source | 498 | 72 | : CFunctionInfo(RetBuilder::Build(), sizeof...(ArgBuilders), | 499 | 72 | arg_info_storage_, Representation), | 500 | 72 | arg_info_storage_{ArgBuilders::Build()...} { | 501 | 72 | constexpr CTypeInfo::Type kReturnType = RetBuilder::Build().GetType(); | 502 | 72 | static_assert(kReturnType == CTypeInfo::Type::kVoid || | 503 | 72 | kReturnType == CTypeInfo::Type::kBool || | 504 | 72 | kReturnType == CTypeInfo::Type::kInt32 || | 505 | 72 | kReturnType == CTypeInfo::Type::kUint32 || | 506 | 72 | kReturnType == CTypeInfo::Type::kInt64 || | 507 | 72 | kReturnType == CTypeInfo::Type::kUint64 || | 508 | 72 | kReturnType == CTypeInfo::Type::kFloat32 || | 509 | 72 | kReturnType == CTypeInfo::Type::kFloat64 || | 510 | 72 | kReturnType == CTypeInfo::Type::kPointer || | 511 | 72 | kReturnType == CTypeInfo::Type::kAny, | 512 | 72 | "String and api object values are not currently " | 513 | 72 | "supported return types."); | 514 | 72 | } |
Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)1, v8::CTypeInfoBuilder<int>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)0, v8::CTypeInfoBuilder<int>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<long>, v8::CTypeInfoBuilder<bool>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() Line | Count | Source | 498 | 72 | : CFunctionInfo(RetBuilder::Build(), sizeof...(ArgBuilders), | 499 | 72 | arg_info_storage_, Representation), | 500 | 72 | arg_info_storage_{ArgBuilders::Build()...} { | 501 | 72 | constexpr CTypeInfo::Type kReturnType = RetBuilder::Build().GetType(); | 502 | 72 | static_assert(kReturnType == CTypeInfo::Type::kVoid || | 503 | 72 | kReturnType == CTypeInfo::Type::kBool || | 504 | 72 | kReturnType == CTypeInfo::Type::kInt32 || | 505 | 72 | kReturnType == CTypeInfo::Type::kUint32 || | 506 | 72 | kReturnType == CTypeInfo::Type::kInt64 || | 507 | 72 | kReturnType == CTypeInfo::Type::kUint64 || | 508 | 72 | kReturnType == CTypeInfo::Type::kFloat32 || | 509 | 72 | kReturnType == CTypeInfo::Type::kFloat64 || | 510 | 72 | kReturnType == CTypeInfo::Type::kPointer || | 511 | 72 | kReturnType == CTypeInfo::Type::kAny, | 512 | 72 | "String and api object values are not currently " | 513 | 72 | "supported return types."); | 514 | 72 | } |
Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)1, v8::CTypeInfoBuilder<int>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<long>, v8::CTypeInfoBuilder<bool>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)0, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::FastOneByteString const&>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() Line | Count | Source | 498 | 72 | : CFunctionInfo(RetBuilder::Build(), sizeof...(ArgBuilders), | 499 | 72 | arg_info_storage_, Representation), | 500 | 72 | arg_info_storage_{ArgBuilders::Build()...} { | 501 | 72 | constexpr CTypeInfo::Type kReturnType = RetBuilder::Build().GetType(); | 502 | 72 | static_assert(kReturnType == CTypeInfo::Type::kVoid || | 503 | 72 | kReturnType == CTypeInfo::Type::kBool || | 504 | 72 | kReturnType == CTypeInfo::Type::kInt32 || | 505 | 72 | kReturnType == CTypeInfo::Type::kUint32 || | 506 | 72 | kReturnType == CTypeInfo::Type::kInt64 || | 507 | 72 | kReturnType == CTypeInfo::Type::kUint64 || | 508 | 72 | kReturnType == CTypeInfo::Type::kFloat32 || | 509 | 72 | kReturnType == CTypeInfo::Type::kFloat64 || | 510 | 72 | kReturnType == CTypeInfo::Type::kPointer || | 511 | 72 | kReturnType == CTypeInfo::Type::kAny, | 512 | 72 | "String and api object values are not currently " | 513 | 72 | "supported return types."); | 514 | 72 | } |
Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)1, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::FastOneByteString const&>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)0, v8::CTypeInfoBuilder<double>, v8::CTypeInfoBuilder<v8::Local<v8::Value>> >::CFunctionInfoImpl() Line | Count | Source | 498 | 72 | : CFunctionInfo(RetBuilder::Build(), sizeof...(ArgBuilders), | 499 | 72 | arg_info_storage_, Representation), | 500 | 72 | arg_info_storage_{ArgBuilders::Build()...} { | 501 | 72 | constexpr CTypeInfo::Type kReturnType = RetBuilder::Build().GetType(); | 502 | 72 | static_assert(kReturnType == CTypeInfo::Type::kVoid || | 503 | 72 | kReturnType == CTypeInfo::Type::kBool || | 504 | 72 | kReturnType == CTypeInfo::Type::kInt32 || | 505 | 72 | kReturnType == CTypeInfo::Type::kUint32 || | 506 | 72 | kReturnType == CTypeInfo::Type::kInt64 || | 507 | 72 | kReturnType == CTypeInfo::Type::kUint64 || | 508 | 72 | kReturnType == CTypeInfo::Type::kFloat32 || | 509 | 72 | kReturnType == CTypeInfo::Type::kFloat64 || | 510 | 72 | kReturnType == CTypeInfo::Type::kPointer || | 511 | 72 | kReturnType == CTypeInfo::Type::kAny, | 512 | 72 | "String and api object values are not currently " | 513 | 72 | "supported return types."); | 514 | 72 | } |
Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)1, v8::CTypeInfoBuilder<double>, v8::CTypeInfoBuilder<v8::Local<v8::Value>> >::CFunctionInfoImpl() v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)0, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Value>> >::CFunctionInfoImpl() Line | Count | Source | 498 | 72 | : CFunctionInfo(RetBuilder::Build(), sizeof...(ArgBuilders), | 499 | 72 | arg_info_storage_, Representation), | 500 | 72 | arg_info_storage_{ArgBuilders::Build()...} { | 501 | 72 | constexpr CTypeInfo::Type kReturnType = RetBuilder::Build().GetType(); | 502 | 72 | static_assert(kReturnType == CTypeInfo::Type::kVoid || | 503 | 72 | kReturnType == CTypeInfo::Type::kBool || | 504 | 72 | kReturnType == CTypeInfo::Type::kInt32 || | 505 | 72 | kReturnType == CTypeInfo::Type::kUint32 || | 506 | 72 | kReturnType == CTypeInfo::Type::kInt64 || | 507 | 72 | kReturnType == CTypeInfo::Type::kUint64 || | 508 | 72 | kReturnType == CTypeInfo::Type::kFloat32 || | 509 | 72 | kReturnType == CTypeInfo::Type::kFloat64 || | 510 | 72 | kReturnType == CTypeInfo::Type::kPointer || | 511 | 72 | kReturnType == CTypeInfo::Type::kAny, | 512 | 72 | "String and api object values are not currently " | 513 | 72 | "supported return types."); | 514 | 72 | } |
Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)1, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Value>> >::CFunctionInfoImpl() v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)0, v8::CTypeInfoBuilder<void>, v8::CTypeInfoBuilder<v8::Local<v8::Value>> >::CFunctionInfoImpl() Line | Count | Source | 498 | 72 | : CFunctionInfo(RetBuilder::Build(), sizeof...(ArgBuilders), | 499 | 72 | arg_info_storage_, Representation), | 500 | 72 | arg_info_storage_{ArgBuilders::Build()...} { | 501 | 72 | constexpr CTypeInfo::Type kReturnType = RetBuilder::Build().GetType(); | 502 | 72 | static_assert(kReturnType == CTypeInfo::Type::kVoid || | 503 | 72 | kReturnType == CTypeInfo::Type::kBool || | 504 | 72 | kReturnType == CTypeInfo::Type::kInt32 || | 505 | 72 | kReturnType == CTypeInfo::Type::kUint32 || | 506 | 72 | kReturnType == CTypeInfo::Type::kInt64 || | 507 | 72 | kReturnType == CTypeInfo::Type::kUint64 || | 508 | 72 | kReturnType == CTypeInfo::Type::kFloat32 || | 509 | 72 | kReturnType == CTypeInfo::Type::kFloat64 || | 510 | 72 | kReturnType == CTypeInfo::Type::kPointer || | 511 | 72 | kReturnType == CTypeInfo::Type::kAny, | 512 | 72 | "String and api object values are not currently " | 513 | 72 | "supported return types."); | 514 | 72 | } |
Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)1, v8::CTypeInfoBuilder<void>, v8::CTypeInfoBuilder<v8::Local<v8::Value>> >::CFunctionInfoImpl() v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)0, v8::CTypeInfoBuilder<bool>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>> >::CFunctionInfoImpl() Line | Count | Source | 498 | 72 | : CFunctionInfo(RetBuilder::Build(), sizeof...(ArgBuilders), | 499 | 72 | arg_info_storage_, Representation), | 500 | 72 | arg_info_storage_{ArgBuilders::Build()...} { | 501 | 72 | constexpr CTypeInfo::Type kReturnType = RetBuilder::Build().GetType(); | 502 | 72 | static_assert(kReturnType == CTypeInfo::Type::kVoid || | 503 | 72 | kReturnType == CTypeInfo::Type::kBool || | 504 | 72 | kReturnType == CTypeInfo::Type::kInt32 || | 505 | 72 | kReturnType == CTypeInfo::Type::kUint32 || | 506 | 72 | kReturnType == CTypeInfo::Type::kInt64 || | 507 | 72 | kReturnType == CTypeInfo::Type::kUint64 || | 508 | 72 | kReturnType == CTypeInfo::Type::kFloat32 || | 509 | 72 | kReturnType == CTypeInfo::Type::kFloat64 || | 510 | 72 | kReturnType == CTypeInfo::Type::kPointer || | 511 | 72 | kReturnType == CTypeInfo::Type::kAny, | 512 | 72 | "String and api object values are not currently " | 513 | 72 | "supported return types."); | 514 | 72 | } |
Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)1, v8::CTypeInfoBuilder<bool>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>> >::CFunctionInfoImpl() v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)0, v8::CTypeInfoBuilder<bool>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() Line | Count | Source | 498 | 72 | : CFunctionInfo(RetBuilder::Build(), sizeof...(ArgBuilders), | 499 | 72 | arg_info_storage_, Representation), | 500 | 72 | arg_info_storage_{ArgBuilders::Build()...} { | 501 | 72 | constexpr CTypeInfo::Type kReturnType = RetBuilder::Build().GetType(); | 502 | 72 | static_assert(kReturnType == CTypeInfo::Type::kVoid || | 503 | 72 | kReturnType == CTypeInfo::Type::kBool || | 504 | 72 | kReturnType == CTypeInfo::Type::kInt32 || | 505 | 72 | kReturnType == CTypeInfo::Type::kUint32 || | 506 | 72 | kReturnType == CTypeInfo::Type::kInt64 || | 507 | 72 | kReturnType == CTypeInfo::Type::kUint64 || | 508 | 72 | kReturnType == CTypeInfo::Type::kFloat32 || | 509 | 72 | kReturnType == CTypeInfo::Type::kFloat64 || | 510 | 72 | kReturnType == CTypeInfo::Type::kPointer || | 511 | 72 | kReturnType == CTypeInfo::Type::kAny, | 512 | 72 | "String and api object values are not currently " | 513 | 72 | "supported return types."); | 514 | 72 | } |
Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)1, v8::CTypeInfoBuilder<bool>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)0, v8::CTypeInfoBuilder<bool>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() Line | Count | Source | 498 | 72 | : CFunctionInfo(RetBuilder::Build(), sizeof...(ArgBuilders), | 499 | 72 | arg_info_storage_, Representation), | 500 | 72 | arg_info_storage_{ArgBuilders::Build()...} { | 501 | 72 | constexpr CTypeInfo::Type kReturnType = RetBuilder::Build().GetType(); | 502 | 72 | static_assert(kReturnType == CTypeInfo::Type::kVoid || | 503 | 72 | kReturnType == CTypeInfo::Type::kBool || | 504 | 72 | kReturnType == CTypeInfo::Type::kInt32 || | 505 | 72 | kReturnType == CTypeInfo::Type::kUint32 || | 506 | 72 | kReturnType == CTypeInfo::Type::kInt64 || | 507 | 72 | kReturnType == CTypeInfo::Type::kUint64 || | 508 | 72 | kReturnType == CTypeInfo::Type::kFloat32 || | 509 | 72 | kReturnType == CTypeInfo::Type::kFloat64 || | 510 | 72 | kReturnType == CTypeInfo::Type::kPointer || | 511 | 72 | kReturnType == CTypeInfo::Type::kAny, | 512 | 72 | "String and api object values are not currently " | 513 | 72 | "supported return types."); | 514 | 72 | } |
Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)1, v8::CTypeInfoBuilder<bool>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)0, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<unsigned int> >::CFunctionInfoImpl() Line | Count | Source | 498 | 72 | : CFunctionInfo(RetBuilder::Build(), sizeof...(ArgBuilders), | 499 | 72 | arg_info_storage_, Representation), | 500 | 72 | arg_info_storage_{ArgBuilders::Build()...} { | 501 | 72 | constexpr CTypeInfo::Type kReturnType = RetBuilder::Build().GetType(); | 502 | 72 | static_assert(kReturnType == CTypeInfo::Type::kVoid || | 503 | 72 | kReturnType == CTypeInfo::Type::kBool || | 504 | 72 | kReturnType == CTypeInfo::Type::kInt32 || | 505 | 72 | kReturnType == CTypeInfo::Type::kUint32 || | 506 | 72 | kReturnType == CTypeInfo::Type::kInt64 || | 507 | 72 | kReturnType == CTypeInfo::Type::kUint64 || | 508 | 72 | kReturnType == CTypeInfo::Type::kFloat32 || | 509 | 72 | kReturnType == CTypeInfo::Type::kFloat64 || | 510 | 72 | kReturnType == CTypeInfo::Type::kPointer || | 511 | 72 | kReturnType == CTypeInfo::Type::kAny, | 512 | 72 | "String and api object values are not currently " | 513 | 72 | "supported return types."); | 514 | 72 | } |
Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)1, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<unsigned int> >::CFunctionInfoImpl() Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)0, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)1, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)0, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)1, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)0, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)1, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)0, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)1, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)0, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)1, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)0, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)1, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)0, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)1, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)0, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)1, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)0, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)1, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)0, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<long>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)1, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<long>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)0, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)1, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)0, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)1, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)0, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)1, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)0, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)1, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)0, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)1, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)0, v8::CTypeInfoBuilder<void>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)1, v8::CTypeInfoBuilder<void>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)0, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)1, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)0, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() Line | Count | Source | 498 | 72 | : CFunctionInfo(RetBuilder::Build(), sizeof...(ArgBuilders), | 499 | 72 | arg_info_storage_, Representation), | 500 | 72 | arg_info_storage_{ArgBuilders::Build()...} { | 501 | 72 | constexpr CTypeInfo::Type kReturnType = RetBuilder::Build().GetType(); | 502 | 72 | static_assert(kReturnType == CTypeInfo::Type::kVoid || | 503 | 72 | kReturnType == CTypeInfo::Type::kBool || | 504 | 72 | kReturnType == CTypeInfo::Type::kInt32 || | 505 | 72 | kReturnType == CTypeInfo::Type::kUint32 || | 506 | 72 | kReturnType == CTypeInfo::Type::kInt64 || | 507 | 72 | kReturnType == CTypeInfo::Type::kUint64 || | 508 | 72 | kReturnType == CTypeInfo::Type::kFloat32 || | 509 | 72 | kReturnType == CTypeInfo::Type::kFloat64 || | 510 | 72 | kReturnType == CTypeInfo::Type::kPointer || | 511 | 72 | kReturnType == CTypeInfo::Type::kAny, | 512 | 72 | "String and api object values are not currently " | 513 | 72 | "supported return types."); | 514 | 72 | } |
Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)1, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionInfoImpl() v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)0, v8::CTypeInfoBuilder<void>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<long> >::CFunctionInfoImpl() Line | Count | Source | 498 | 72 | : CFunctionInfo(RetBuilder::Build(), sizeof...(ArgBuilders), | 499 | 72 | arg_info_storage_, Representation), | 500 | 72 | arg_info_storage_{ArgBuilders::Build()...} { | 501 | 72 | constexpr CTypeInfo::Type kReturnType = RetBuilder::Build().GetType(); | 502 | 72 | static_assert(kReturnType == CTypeInfo::Type::kVoid || | 503 | 72 | kReturnType == CTypeInfo::Type::kBool || | 504 | 72 | kReturnType == CTypeInfo::Type::kInt32 || | 505 | 72 | kReturnType == CTypeInfo::Type::kUint32 || | 506 | 72 | kReturnType == CTypeInfo::Type::kInt64 || | 507 | 72 | kReturnType == CTypeInfo::Type::kUint64 || | 508 | 72 | kReturnType == CTypeInfo::Type::kFloat32 || | 509 | 72 | kReturnType == CTypeInfo::Type::kFloat64 || | 510 | 72 | kReturnType == CTypeInfo::Type::kPointer || | 511 | 72 | kReturnType == CTypeInfo::Type::kAny, | 512 | 72 | "String and api object values are not currently " | 513 | 72 | "supported return types."); | 514 | 72 | } |
Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)1, v8::CTypeInfoBuilder<void>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<long> >::CFunctionInfoImpl() v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)0, v8::CTypeInfoBuilder<void>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<bool> >::CFunctionInfoImpl() Line | Count | Source | 498 | 72 | : CFunctionInfo(RetBuilder::Build(), sizeof...(ArgBuilders), | 499 | 72 | arg_info_storage_, Representation), | 500 | 72 | arg_info_storage_{ArgBuilders::Build()...} { | 501 | 72 | constexpr CTypeInfo::Type kReturnType = RetBuilder::Build().GetType(); | 502 | 72 | static_assert(kReturnType == CTypeInfo::Type::kVoid || | 503 | 72 | kReturnType == CTypeInfo::Type::kBool || | 504 | 72 | kReturnType == CTypeInfo::Type::kInt32 || | 505 | 72 | kReturnType == CTypeInfo::Type::kUint32 || | 506 | 72 | kReturnType == CTypeInfo::Type::kInt64 || | 507 | 72 | kReturnType == CTypeInfo::Type::kUint64 || | 508 | 72 | kReturnType == CTypeInfo::Type::kFloat32 || | 509 | 72 | kReturnType == CTypeInfo::Type::kFloat64 || | 510 | 72 | kReturnType == CTypeInfo::Type::kPointer || | 511 | 72 | kReturnType == CTypeInfo::Type::kAny, | 512 | 72 | "String and api object values are not currently " | 513 | 72 | "supported return types."); | 514 | 72 | } |
Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)1, v8::CTypeInfoBuilder<void>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<bool> >::CFunctionInfoImpl() v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)0, v8::CTypeInfoBuilder<double>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<double> >::CFunctionInfoImpl() Line | Count | Source | 498 | 72 | : CFunctionInfo(RetBuilder::Build(), sizeof...(ArgBuilders), | 499 | 72 | arg_info_storage_, Representation), | 500 | 72 | arg_info_storage_{ArgBuilders::Build()...} { | 501 | 72 | constexpr CTypeInfo::Type kReturnType = RetBuilder::Build().GetType(); | 502 | 72 | static_assert(kReturnType == CTypeInfo::Type::kVoid || | 503 | 72 | kReturnType == CTypeInfo::Type::kBool || | 504 | 72 | kReturnType == CTypeInfo::Type::kInt32 || | 505 | 72 | kReturnType == CTypeInfo::Type::kUint32 || | 506 | 72 | kReturnType == CTypeInfo::Type::kInt64 || | 507 | 72 | kReturnType == CTypeInfo::Type::kUint64 || | 508 | 72 | kReturnType == CTypeInfo::Type::kFloat32 || | 509 | 72 | kReturnType == CTypeInfo::Type::kFloat64 || | 510 | 72 | kReturnType == CTypeInfo::Type::kPointer || | 511 | 72 | kReturnType == CTypeInfo::Type::kAny, | 512 | 72 | "String and api object values are not currently " | 513 | 72 | "supported return types."); | 514 | 72 | } |
Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)1, v8::CTypeInfoBuilder<double>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<double> >::CFunctionInfoImpl() v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)0, v8::CTypeInfoBuilder<void>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<long> >::CFunctionInfoImpl() Line | Count | Source | 498 | 72 | : CFunctionInfo(RetBuilder::Build(), sizeof...(ArgBuilders), | 499 | 72 | arg_info_storage_, Representation), | 500 | 72 | arg_info_storage_{ArgBuilders::Build()...} { | 501 | 72 | constexpr CTypeInfo::Type kReturnType = RetBuilder::Build().GetType(); | 502 | 72 | static_assert(kReturnType == CTypeInfo::Type::kVoid || | 503 | 72 | kReturnType == CTypeInfo::Type::kBool || | 504 | 72 | kReturnType == CTypeInfo::Type::kInt32 || | 505 | 72 | kReturnType == CTypeInfo::Type::kUint32 || | 506 | 72 | kReturnType == CTypeInfo::Type::kInt64 || | 507 | 72 | kReturnType == CTypeInfo::Type::kUint64 || | 508 | 72 | kReturnType == CTypeInfo::Type::kFloat32 || | 509 | 72 | kReturnType == CTypeInfo::Type::kFloat64 || | 510 | 72 | kReturnType == CTypeInfo::Type::kPointer || | 511 | 72 | kReturnType == CTypeInfo::Type::kAny, | 512 | 72 | "String and api object values are not currently " | 513 | 72 | "supported return types."); | 514 | 72 | } |
Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)1, v8::CTypeInfoBuilder<void>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<long> >::CFunctionInfoImpl() v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)0, v8::CTypeInfoBuilder<void>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<bool> >::CFunctionInfoImpl() Line | Count | Source | 498 | 72 | : CFunctionInfo(RetBuilder::Build(), sizeof...(ArgBuilders), | 499 | 72 | arg_info_storage_, Representation), | 500 | 72 | arg_info_storage_{ArgBuilders::Build()...} { | 501 | 72 | constexpr CTypeInfo::Type kReturnType = RetBuilder::Build().GetType(); | 502 | 72 | static_assert(kReturnType == CTypeInfo::Type::kVoid || | 503 | 72 | kReturnType == CTypeInfo::Type::kBool || | 504 | 72 | kReturnType == CTypeInfo::Type::kInt32 || | 505 | 72 | kReturnType == CTypeInfo::Type::kUint32 || | 506 | 72 | kReturnType == CTypeInfo::Type::kInt64 || | 507 | 72 | kReturnType == CTypeInfo::Type::kUint64 || | 508 | 72 | kReturnType == CTypeInfo::Type::kFloat32 || | 509 | 72 | kReturnType == CTypeInfo::Type::kFloat64 || | 510 | 72 | kReturnType == CTypeInfo::Type::kPointer || | 511 | 72 | kReturnType == CTypeInfo::Type::kAny, | 512 | 72 | "String and api object values are not currently " | 513 | 72 | "supported return types."); | 514 | 72 | } |
Unexecuted instantiation: v8::internal::CFunctionInfoImpl<(v8::CFunctionInfo::Int64Representation)1, v8::CTypeInfoBuilder<void>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<bool> >::CFunctionInfoImpl() |
515 | | |
516 | | private: |
517 | | const CTypeInfo arg_info_storage_[sizeof...(ArgBuilders)]; |
518 | | }; |
519 | | |
520 | | template <typename T> |
521 | | struct TypeInfoHelper { |
522 | | static_assert(sizeof(T) != sizeof(T), "This type is not supported"); |
523 | | }; |
524 | | |
525 | | #define SPECIALIZE_GET_TYPE_INFO_HELPER_FOR(T, Enum) \ |
526 | | template <> \ |
527 | | struct TypeInfoHelper<T> { \ |
528 | 0 | static constexpr CTypeInfo::Flags Flags() { \ |
529 | 0 | return CTypeInfo::Flags::kNone; \ |
530 | 0 | } \ Unexecuted instantiation: v8::internal::TypeInfoHelper<bool>::Flags() Unexecuted instantiation: v8::internal::TypeInfoHelper<unsigned char>::Flags() Unexecuted instantiation: v8::internal::TypeInfoHelper<int>::Flags() Unexecuted instantiation: v8::internal::TypeInfoHelper<unsigned int>::Flags() Unexecuted instantiation: v8::internal::TypeInfoHelper<long>::Flags() Unexecuted instantiation: v8::internal::TypeInfoHelper<unsigned long>::Flags() Unexecuted instantiation: v8::internal::TypeInfoHelper<float>::Flags() Unexecuted instantiation: v8::internal::TypeInfoHelper<double>::Flags() Unexecuted instantiation: v8::internal::TypeInfoHelper<void*>::Flags() Unexecuted instantiation: v8::internal::TypeInfoHelper<void>::Flags() Unexecuted instantiation: v8::internal::TypeInfoHelper<v8::Local<v8::Value> >::Flags() Unexecuted instantiation: v8::internal::TypeInfoHelper<v8::Local<v8::Object> >::Flags() Unexecuted instantiation: v8::internal::TypeInfoHelper<v8::Local<v8::Array> >::Flags() Unexecuted instantiation: v8::internal::TypeInfoHelper<v8::AnyCType>::Flags() |
531 | | \ |
532 | 4.53k | static constexpr CTypeInfo::Type Type() { return CTypeInfo::Type::Enum; } \v8::internal::TypeInfoHelper<bool>::Type() Line | Count | Source | 532 | 432 | static constexpr CTypeInfo::Type Type() { return CTypeInfo::Type::Enum; } \ |
Unexecuted instantiation: v8::internal::TypeInfoHelper<unsigned char>::Type() v8::internal::TypeInfoHelper<int>::Type() Line | Count | Source | 532 | 144 | static constexpr CTypeInfo::Type Type() { return CTypeInfo::Type::Enum; } \ |
v8::internal::TypeInfoHelper<unsigned int>::Type() Line | Count | Source | 532 | 1.00k | static constexpr CTypeInfo::Type Type() { return CTypeInfo::Type::Enum; } \ |
v8::internal::TypeInfoHelper<long>::Type() Line | Count | Source | 532 | 216 | static constexpr CTypeInfo::Type Type() { return CTypeInfo::Type::Enum; } \ |
Unexecuted instantiation: v8::internal::TypeInfoHelper<unsigned long>::Type() Unexecuted instantiation: v8::internal::TypeInfoHelper<float>::Type() v8::internal::TypeInfoHelper<double>::Type() Line | Count | Source | 532 | 216 | static constexpr CTypeInfo::Type Type() { return CTypeInfo::Type::Enum; } \ |
Unexecuted instantiation: v8::internal::TypeInfoHelper<void*>::Type() v8::internal::TypeInfoHelper<void>::Type() Line | Count | Source | 532 | 360 | static constexpr CTypeInfo::Type Type() { return CTypeInfo::Type::Enum; } \ |
v8::internal::TypeInfoHelper<v8::Local<v8::Value> >::Type() Line | Count | Source | 532 | 2.01k | static constexpr CTypeInfo::Type Type() { return CTypeInfo::Type::Enum; } \ |
v8::internal::TypeInfoHelper<v8::Local<v8::Object> >::Type() Line | Count | Source | 532 | 144 | static constexpr CTypeInfo::Type Type() { return CTypeInfo::Type::Enum; } \ |
Unexecuted instantiation: v8::internal::TypeInfoHelper<v8::Local<v8::Array> >::Type() Unexecuted instantiation: v8::internal::TypeInfoHelper<v8::AnyCType>::Type() |
533 | | }; |
534 | | |
535 | | template <CTypeInfo::Type type> |
536 | | struct CTypeInfoTraits {}; |
537 | | |
538 | | #define DEFINE_TYPE_INFO_TRAITS(CType, Enum) \ |
539 | | template <> \ |
540 | | struct CTypeInfoTraits<CTypeInfo::Type::Enum> { \ |
541 | | using ctype = CType; \ |
542 | | }; |
543 | | |
544 | | #define PRIMITIVE_C_TYPES(V) \ |
545 | | V(bool, kBool) \ |
546 | | V(uint8_t, kUint8) \ |
547 | | V(int32_t, kInt32) \ |
548 | | V(uint32_t, kUint32) \ |
549 | | V(int64_t, kInt64) \ |
550 | | V(uint64_t, kUint64) \ |
551 | | V(float, kFloat32) \ |
552 | | V(double, kFloat64) \ |
553 | | V(void*, kPointer) |
554 | | |
555 | | // Same as above, but includes deprecated types for compatibility. |
556 | | #define ALL_C_TYPES(V) \ |
557 | | PRIMITIVE_C_TYPES(V) \ |
558 | | V(void, kVoid) \ |
559 | | V(v8::Local<v8::Value>, kV8Value) \ |
560 | | V(v8::Local<v8::Object>, kV8Value) \ |
561 | | V(v8::Local<v8::Array>, kV8Value) \ |
562 | | V(AnyCType, kAny) |
563 | | |
564 | | // ApiObject was a temporary solution to wrap the pointer to the v8::Value. |
565 | | // Please use v8::Local<v8::Value> in new code for the arguments and |
566 | | // v8::Local<v8::Object> for the receiver, as ApiObject will be deprecated. |
567 | | |
568 | | ALL_C_TYPES(SPECIALIZE_GET_TYPE_INFO_HELPER_FOR) |
569 | | PRIMITIVE_C_TYPES(DEFINE_TYPE_INFO_TRAITS) |
570 | | |
571 | | #undef PRIMITIVE_C_TYPES |
572 | | #undef ALL_C_TYPES |
573 | | |
574 | | #undef TYPED_ARRAY_C_TYPES |
575 | | |
576 | | template <> |
577 | | struct TypeInfoHelper<FastApiCallbackOptions&> { |
578 | 0 | static constexpr CTypeInfo::Flags Flags() { return CTypeInfo::Flags::kNone; } |
579 | | |
580 | 576 | static constexpr CTypeInfo::Type Type() { |
581 | 576 | return CTypeInfo::kCallbackOptionsType; |
582 | 576 | } |
583 | | }; |
584 | | |
585 | | template <> |
586 | | struct TypeInfoHelper<const FastOneByteString&> { |
587 | 0 | static constexpr CTypeInfo::Flags Flags() { return CTypeInfo::Flags::kNone; } |
588 | | |
589 | 72 | static constexpr CTypeInfo::Type Type() { |
590 | 72 | return CTypeInfo::Type::kSeqOneByteString; |
591 | 72 | } |
592 | | }; |
593 | | |
594 | | #define STATIC_ASSERT_IMPLIES(COND, ASSERTION, MSG) \ |
595 | 15.5k | static_assert(((COND) == 0) || (ASSERTION), MSG) |
596 | | |
597 | | } // namespace internal |
598 | | |
599 | | template <typename T, CTypeInfo::Flags... Flags> |
600 | | class V8_EXPORT CTypeInfoBuilder { |
601 | | public: |
602 | | using BaseType = T; |
603 | | |
604 | 5.18k | static constexpr CTypeInfo Build() { |
605 | 5.18k | constexpr CTypeInfo::Flags kFlags = |
606 | 5.18k | MergeFlags(internal::TypeInfoHelper<T>::Flags(), Flags...); |
607 | 5.18k | constexpr CTypeInfo::Type kType = internal::TypeInfoHelper<T>::Type(); |
608 | | |
609 | 5.18k | STATIC_ASSERT_IMPLIES( |
610 | 5.18k | uint8_t(kFlags) & uint8_t(CTypeInfo::Flags::kEnforceRangeBit), |
611 | 5.18k | CTypeInfo::IsIntegralType(kType), |
612 | 5.18k | "kEnforceRangeBit is only allowed for integral types."); |
613 | 5.18k | STATIC_ASSERT_IMPLIES( |
614 | 5.18k | uint8_t(kFlags) & uint8_t(CTypeInfo::Flags::kClampBit), |
615 | 5.18k | CTypeInfo::IsIntegralType(kType), |
616 | 5.18k | "kClampBit is only allowed for integral types."); |
617 | 5.18k | STATIC_ASSERT_IMPLIES( |
618 | 5.18k | uint8_t(kFlags) & uint8_t(CTypeInfo::Flags::kIsRestrictedBit), |
619 | 5.18k | CTypeInfo::IsFloatingPointType(kType), |
620 | 5.18k | "kIsRestrictedBit is only allowed for floating point types."); |
621 | | |
622 | | // Return the same type with the merged flags. |
623 | 5.18k | return CTypeInfo(internal::TypeInfoHelper<T>::Type(), kFlags); |
624 | 5.18k | } v8::CTypeInfoBuilder<int>::Build() Line | Count | Source | 604 | 144 | static constexpr CTypeInfo Build() { | 605 | 144 | constexpr CTypeInfo::Flags kFlags = | 606 | 144 | MergeFlags(internal::TypeInfoHelper<T>::Flags(), Flags...); | 607 | 144 | constexpr CTypeInfo::Type kType = internal::TypeInfoHelper<T>::Type(); | 608 | | | 609 | 144 | STATIC_ASSERT_IMPLIES( | 610 | 144 | uint8_t(kFlags) & uint8_t(CTypeInfo::Flags::kEnforceRangeBit), | 611 | 144 | CTypeInfo::IsIntegralType(kType), | 612 | 144 | "kEnforceRangeBit is only allowed for integral types."); | 613 | 144 | STATIC_ASSERT_IMPLIES( | 614 | 144 | uint8_t(kFlags) & uint8_t(CTypeInfo::Flags::kClampBit), | 615 | 144 | CTypeInfo::IsIntegralType(kType), | 616 | 144 | "kClampBit is only allowed for integral types."); | 617 | 144 | STATIC_ASSERT_IMPLIES( | 618 | 144 | uint8_t(kFlags) & uint8_t(CTypeInfo::Flags::kIsRestrictedBit), | 619 | 144 | CTypeInfo::IsFloatingPointType(kType), | 620 | 144 | "kIsRestrictedBit is only allowed for floating point types."); | 621 | | | 622 | | // Return the same type with the merged flags. | 623 | 144 | return CTypeInfo(internal::TypeInfoHelper<T>::Type(), kFlags); | 624 | 144 | } |
v8::CTypeInfoBuilder<unsigned int>::Build() Line | Count | Source | 604 | 1.00k | static constexpr CTypeInfo Build() { | 605 | 1.00k | constexpr CTypeInfo::Flags kFlags = | 606 | 1.00k | MergeFlags(internal::TypeInfoHelper<T>::Flags(), Flags...); | 607 | 1.00k | constexpr CTypeInfo::Type kType = internal::TypeInfoHelper<T>::Type(); | 608 | | | 609 | 1.00k | STATIC_ASSERT_IMPLIES( | 610 | 1.00k | uint8_t(kFlags) & uint8_t(CTypeInfo::Flags::kEnforceRangeBit), | 611 | 1.00k | CTypeInfo::IsIntegralType(kType), | 612 | 1.00k | "kEnforceRangeBit is only allowed for integral types."); | 613 | 1.00k | STATIC_ASSERT_IMPLIES( | 614 | 1.00k | uint8_t(kFlags) & uint8_t(CTypeInfo::Flags::kClampBit), | 615 | 1.00k | CTypeInfo::IsIntegralType(kType), | 616 | 1.00k | "kClampBit is only allowed for integral types."); | 617 | 1.00k | STATIC_ASSERT_IMPLIES( | 618 | 1.00k | uint8_t(kFlags) & uint8_t(CTypeInfo::Flags::kIsRestrictedBit), | 619 | 1.00k | CTypeInfo::IsFloatingPointType(kType), | 620 | 1.00k | "kIsRestrictedBit is only allowed for floating point types."); | 621 | | | 622 | | // Return the same type with the merged flags. | 623 | 1.00k | return CTypeInfo(internal::TypeInfoHelper<T>::Type(), kFlags); | 624 | 1.00k | } |
Unexecuted instantiation: v8::CTypeInfoBuilder<float>::Build() v8::CTypeInfoBuilder<double>::Build() Line | Count | Source | 604 | 216 | static constexpr CTypeInfo Build() { | 605 | 216 | constexpr CTypeInfo::Flags kFlags = | 606 | 216 | MergeFlags(internal::TypeInfoHelper<T>::Flags(), Flags...); | 607 | 216 | constexpr CTypeInfo::Type kType = internal::TypeInfoHelper<T>::Type(); | 608 | | | 609 | 216 | STATIC_ASSERT_IMPLIES( | 610 | 216 | uint8_t(kFlags) & uint8_t(CTypeInfo::Flags::kEnforceRangeBit), | 611 | 216 | CTypeInfo::IsIntegralType(kType), | 612 | 216 | "kEnforceRangeBit is only allowed for integral types."); | 613 | 216 | STATIC_ASSERT_IMPLIES( | 614 | 216 | uint8_t(kFlags) & uint8_t(CTypeInfo::Flags::kClampBit), | 615 | 216 | CTypeInfo::IsIntegralType(kType), | 616 | 216 | "kClampBit is only allowed for integral types."); | 617 | 216 | STATIC_ASSERT_IMPLIES( | 618 | 216 | uint8_t(kFlags) & uint8_t(CTypeInfo::Flags::kIsRestrictedBit), | 619 | 216 | CTypeInfo::IsFloatingPointType(kType), | 620 | 216 | "kIsRestrictedBit is only allowed for floating point types."); | 621 | | | 622 | | // Return the same type with the merged flags. | 623 | 216 | return CTypeInfo(internal::TypeInfoHelper<T>::Type(), kFlags); | 624 | 216 | } |
v8::CTypeInfoBuilder<v8::Local<v8::Value>>::Build() Line | Count | Source | 604 | 2.01k | static constexpr CTypeInfo Build() { | 605 | 2.01k | constexpr CTypeInfo::Flags kFlags = | 606 | 2.01k | MergeFlags(internal::TypeInfoHelper<T>::Flags(), Flags...); | 607 | 2.01k | constexpr CTypeInfo::Type kType = internal::TypeInfoHelper<T>::Type(); | 608 | | | 609 | 2.01k | STATIC_ASSERT_IMPLIES( | 610 | 2.01k | uint8_t(kFlags) & uint8_t(CTypeInfo::Flags::kEnforceRangeBit), | 611 | 2.01k | CTypeInfo::IsIntegralType(kType), | 612 | 2.01k | "kEnforceRangeBit is only allowed for integral types."); | 613 | 2.01k | STATIC_ASSERT_IMPLIES( | 614 | 2.01k | uint8_t(kFlags) & uint8_t(CTypeInfo::Flags::kClampBit), | 615 | 2.01k | CTypeInfo::IsIntegralType(kType), | 616 | 2.01k | "kClampBit is only allowed for integral types."); | 617 | 2.01k | STATIC_ASSERT_IMPLIES( | 618 | 2.01k | uint8_t(kFlags) & uint8_t(CTypeInfo::Flags::kIsRestrictedBit), | 619 | 2.01k | CTypeInfo::IsFloatingPointType(kType), | 620 | 2.01k | "kIsRestrictedBit is only allowed for floating point types."); | 621 | | | 622 | | // Return the same type with the merged flags. | 623 | 2.01k | return CTypeInfo(internal::TypeInfoHelper<T>::Type(), kFlags); | 624 | 2.01k | } |
v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&>::Build() Line | Count | Source | 604 | 576 | static constexpr CTypeInfo Build() { | 605 | 576 | constexpr CTypeInfo::Flags kFlags = | 606 | 576 | MergeFlags(internal::TypeInfoHelper<T>::Flags(), Flags...); | 607 | 576 | constexpr CTypeInfo::Type kType = internal::TypeInfoHelper<T>::Type(); | 608 | | | 609 | 576 | STATIC_ASSERT_IMPLIES( | 610 | 576 | uint8_t(kFlags) & uint8_t(CTypeInfo::Flags::kEnforceRangeBit), | 611 | 576 | CTypeInfo::IsIntegralType(kType), | 612 | 576 | "kEnforceRangeBit is only allowed for integral types."); | 613 | 576 | STATIC_ASSERT_IMPLIES( | 614 | 576 | uint8_t(kFlags) & uint8_t(CTypeInfo::Flags::kClampBit), | 615 | 576 | CTypeInfo::IsIntegralType(kType), | 616 | 576 | "kClampBit is only allowed for integral types."); | 617 | 576 | STATIC_ASSERT_IMPLIES( | 618 | 576 | uint8_t(kFlags) & uint8_t(CTypeInfo::Flags::kIsRestrictedBit), | 619 | 576 | CTypeInfo::IsFloatingPointType(kType), | 620 | 576 | "kIsRestrictedBit is only allowed for floating point types."); | 621 | | | 622 | | // Return the same type with the merged flags. | 623 | 576 | return CTypeInfo(internal::TypeInfoHelper<T>::Type(), kFlags); | 624 | 576 | } |
v8::CTypeInfoBuilder<long>::Build() Line | Count | Source | 604 | 216 | static constexpr CTypeInfo Build() { | 605 | 216 | constexpr CTypeInfo::Flags kFlags = | 606 | 216 | MergeFlags(internal::TypeInfoHelper<T>::Flags(), Flags...); | 607 | 216 | constexpr CTypeInfo::Type kType = internal::TypeInfoHelper<T>::Type(); | 608 | | | 609 | 216 | STATIC_ASSERT_IMPLIES( | 610 | 216 | uint8_t(kFlags) & uint8_t(CTypeInfo::Flags::kEnforceRangeBit), | 611 | 216 | CTypeInfo::IsIntegralType(kType), | 612 | 216 | "kEnforceRangeBit is only allowed for integral types."); | 613 | 216 | STATIC_ASSERT_IMPLIES( | 614 | 216 | uint8_t(kFlags) & uint8_t(CTypeInfo::Flags::kClampBit), | 615 | 216 | CTypeInfo::IsIntegralType(kType), | 616 | 216 | "kClampBit is only allowed for integral types."); | 617 | 216 | STATIC_ASSERT_IMPLIES( | 618 | 216 | uint8_t(kFlags) & uint8_t(CTypeInfo::Flags::kIsRestrictedBit), | 619 | 216 | CTypeInfo::IsFloatingPointType(kType), | 620 | 216 | "kIsRestrictedBit is only allowed for floating point types."); | 621 | | | 622 | | // Return the same type with the merged flags. | 623 | 216 | return CTypeInfo(internal::TypeInfoHelper<T>::Type(), kFlags); | 624 | 216 | } |
v8::CTypeInfoBuilder<bool>::Build() Line | Count | Source | 604 | 432 | static constexpr CTypeInfo Build() { | 605 | 432 | constexpr CTypeInfo::Flags kFlags = | 606 | 432 | MergeFlags(internal::TypeInfoHelper<T>::Flags(), Flags...); | 607 | 432 | constexpr CTypeInfo::Type kType = internal::TypeInfoHelper<T>::Type(); | 608 | | | 609 | 432 | STATIC_ASSERT_IMPLIES( | 610 | 432 | uint8_t(kFlags) & uint8_t(CTypeInfo::Flags::kEnforceRangeBit), | 611 | 432 | CTypeInfo::IsIntegralType(kType), | 612 | 432 | "kEnforceRangeBit is only allowed for integral types."); | 613 | 432 | STATIC_ASSERT_IMPLIES( | 614 | 432 | uint8_t(kFlags) & uint8_t(CTypeInfo::Flags::kClampBit), | 615 | 432 | CTypeInfo::IsIntegralType(kType), | 616 | 432 | "kClampBit is only allowed for integral types."); | 617 | 432 | STATIC_ASSERT_IMPLIES( | 618 | 432 | uint8_t(kFlags) & uint8_t(CTypeInfo::Flags::kIsRestrictedBit), | 619 | 432 | CTypeInfo::IsFloatingPointType(kType), | 620 | 432 | "kIsRestrictedBit is only allowed for floating point types."); | 621 | | | 622 | | // Return the same type with the merged flags. | 623 | 432 | return CTypeInfo(internal::TypeInfoHelper<T>::Type(), kFlags); | 624 | 432 | } |
v8::CTypeInfoBuilder<v8::FastOneByteString const&>::Build() Line | Count | Source | 604 | 72 | static constexpr CTypeInfo Build() { | 605 | 72 | constexpr CTypeInfo::Flags kFlags = | 606 | 72 | MergeFlags(internal::TypeInfoHelper<T>::Flags(), Flags...); | 607 | 72 | constexpr CTypeInfo::Type kType = internal::TypeInfoHelper<T>::Type(); | 608 | | | 609 | 72 | STATIC_ASSERT_IMPLIES( | 610 | 72 | uint8_t(kFlags) & uint8_t(CTypeInfo::Flags::kEnforceRangeBit), | 611 | 72 | CTypeInfo::IsIntegralType(kType), | 612 | 72 | "kEnforceRangeBit is only allowed for integral types."); | 613 | 72 | STATIC_ASSERT_IMPLIES( | 614 | 72 | uint8_t(kFlags) & uint8_t(CTypeInfo::Flags::kClampBit), | 615 | 72 | CTypeInfo::IsIntegralType(kType), | 616 | 72 | "kClampBit is only allowed for integral types."); | 617 | 72 | STATIC_ASSERT_IMPLIES( | 618 | 72 | uint8_t(kFlags) & uint8_t(CTypeInfo::Flags::kIsRestrictedBit), | 619 | 72 | CTypeInfo::IsFloatingPointType(kType), | 620 | 72 | "kIsRestrictedBit is only allowed for floating point types."); | 621 | | | 622 | | // Return the same type with the merged flags. | 623 | 72 | return CTypeInfo(internal::TypeInfoHelper<T>::Type(), kFlags); | 624 | 72 | } |
v8::CTypeInfoBuilder<void>::Build() Line | Count | Source | 604 | 360 | static constexpr CTypeInfo Build() { | 605 | 360 | constexpr CTypeInfo::Flags kFlags = | 606 | 360 | MergeFlags(internal::TypeInfoHelper<T>::Flags(), Flags...); | 607 | 360 | constexpr CTypeInfo::Type kType = internal::TypeInfoHelper<T>::Type(); | 608 | | | 609 | 360 | STATIC_ASSERT_IMPLIES( | 610 | 360 | uint8_t(kFlags) & uint8_t(CTypeInfo::Flags::kEnforceRangeBit), | 611 | 360 | CTypeInfo::IsIntegralType(kType), | 612 | 360 | "kEnforceRangeBit is only allowed for integral types."); | 613 | 360 | STATIC_ASSERT_IMPLIES( | 614 | 360 | uint8_t(kFlags) & uint8_t(CTypeInfo::Flags::kClampBit), | 615 | 360 | CTypeInfo::IsIntegralType(kType), | 616 | 360 | "kClampBit is only allowed for integral types."); | 617 | 360 | STATIC_ASSERT_IMPLIES( | 618 | 360 | uint8_t(kFlags) & uint8_t(CTypeInfo::Flags::kIsRestrictedBit), | 619 | 360 | CTypeInfo::IsFloatingPointType(kType), | 620 | 360 | "kIsRestrictedBit is only allowed for floating point types."); | 621 | | | 622 | | // Return the same type with the merged flags. | 623 | 360 | return CTypeInfo(internal::TypeInfoHelper<T>::Type(), kFlags); | 624 | 360 | } |
v8::CTypeInfoBuilder<v8::Local<v8::Object>>::Build() Line | Count | Source | 604 | 144 | static constexpr CTypeInfo Build() { | 605 | 144 | constexpr CTypeInfo::Flags kFlags = | 606 | 144 | MergeFlags(internal::TypeInfoHelper<T>::Flags(), Flags...); | 607 | 144 | constexpr CTypeInfo::Type kType = internal::TypeInfoHelper<T>::Type(); | 608 | | | 609 | 144 | STATIC_ASSERT_IMPLIES( | 610 | 144 | uint8_t(kFlags) & uint8_t(CTypeInfo::Flags::kEnforceRangeBit), | 611 | 144 | CTypeInfo::IsIntegralType(kType), | 612 | 144 | "kEnforceRangeBit is only allowed for integral types."); | 613 | 144 | STATIC_ASSERT_IMPLIES( | 614 | 144 | uint8_t(kFlags) & uint8_t(CTypeInfo::Flags::kClampBit), | 615 | 144 | CTypeInfo::IsIntegralType(kType), | 616 | 144 | "kClampBit is only allowed for integral types."); | 617 | 144 | STATIC_ASSERT_IMPLIES( | 618 | 144 | uint8_t(kFlags) & uint8_t(CTypeInfo::Flags::kIsRestrictedBit), | 619 | 144 | CTypeInfo::IsFloatingPointType(kType), | 620 | 144 | "kIsRestrictedBit is only allowed for floating point types."); | 621 | | | 622 | | // Return the same type with the merged flags. | 623 | 144 | return CTypeInfo(internal::TypeInfoHelper<T>::Type(), kFlags); | 624 | 144 | } |
Unexecuted instantiation: v8::CTypeInfoBuilder<unsigned long>::Build() |
625 | | |
626 | | private: |
627 | | template <typename... Rest> |
628 | | static constexpr CTypeInfo::Flags MergeFlags(CTypeInfo::Flags flags, |
629 | 0 | Rest... rest) { |
630 | 0 | return CTypeInfo::Flags(uint8_t(flags) | uint8_t(MergeFlags(rest...))); |
631 | 0 | } Unexecuted instantiation: v8::CTypeInfo::Flags v8::CTypeInfoBuilder<int>::MergeFlags<>(v8::CTypeInfo::Flags) Unexecuted instantiation: v8::CTypeInfo::Flags v8::CTypeInfoBuilder<unsigned int>::MergeFlags<>(v8::CTypeInfo::Flags) Unexecuted instantiation: v8::CTypeInfo::Flags v8::CTypeInfoBuilder<float>::MergeFlags<>(v8::CTypeInfo::Flags) Unexecuted instantiation: v8::CTypeInfo::Flags v8::CTypeInfoBuilder<double>::MergeFlags<>(v8::CTypeInfo::Flags) Unexecuted instantiation: v8::CTypeInfo::Flags v8::CTypeInfoBuilder<v8::Local<v8::Value>>::MergeFlags<>(v8::CTypeInfo::Flags) Unexecuted instantiation: v8::CTypeInfo::Flags v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&>::MergeFlags<>(v8::CTypeInfo::Flags) Unexecuted instantiation: v8::CTypeInfo::Flags v8::CTypeInfoBuilder<long>::MergeFlags<>(v8::CTypeInfo::Flags) Unexecuted instantiation: v8::CTypeInfo::Flags v8::CTypeInfoBuilder<bool>::MergeFlags<>(v8::CTypeInfo::Flags) Unexecuted instantiation: v8::CTypeInfo::Flags v8::CTypeInfoBuilder<v8::FastOneByteString const&>::MergeFlags<>(v8::CTypeInfo::Flags) Unexecuted instantiation: v8::CTypeInfo::Flags v8::CTypeInfoBuilder<void>::MergeFlags<>(v8::CTypeInfo::Flags) Unexecuted instantiation: v8::CTypeInfo::Flags v8::CTypeInfoBuilder<v8::Local<v8::Object>>::MergeFlags<>(v8::CTypeInfo::Flags) Unexecuted instantiation: v8::CTypeInfo::Flags v8::CTypeInfoBuilder<unsigned long>::MergeFlags<>(v8::CTypeInfo::Flags) |
632 | 0 | static constexpr CTypeInfo::Flags MergeFlags() { return CTypeInfo::Flags(0); }Unexecuted instantiation: v8::CTypeInfoBuilder<int>::MergeFlags() Unexecuted instantiation: v8::CTypeInfoBuilder<unsigned int>::MergeFlags() Unexecuted instantiation: v8::CTypeInfoBuilder<float>::MergeFlags() Unexecuted instantiation: v8::CTypeInfoBuilder<double>::MergeFlags() Unexecuted instantiation: v8::CTypeInfoBuilder<v8::Local<v8::Value>>::MergeFlags() Unexecuted instantiation: v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&>::MergeFlags() Unexecuted instantiation: v8::CTypeInfoBuilder<long>::MergeFlags() Unexecuted instantiation: v8::CTypeInfoBuilder<bool>::MergeFlags() Unexecuted instantiation: v8::CTypeInfoBuilder<v8::FastOneByteString const&>::MergeFlags() Unexecuted instantiation: v8::CTypeInfoBuilder<void>::MergeFlags() Unexecuted instantiation: v8::CTypeInfoBuilder<v8::Local<v8::Object>>::MergeFlags() Unexecuted instantiation: v8::CTypeInfoBuilder<unsigned long>::MergeFlags() |
633 | | }; |
634 | | |
635 | | namespace internal { |
636 | | template <typename RetBuilder, typename... ArgBuilders> |
637 | | class CFunctionBuilderWithFunction { |
638 | | public: |
639 | 4.46k | explicit constexpr CFunctionBuilderWithFunction(const void* fn) : fn_(fn) {}v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionBuilderWithFunction(void const*) Line | Count | Source | 639 | 72 | explicit constexpr CFunctionBuilderWithFunction(const void* fn) : fn_(fn) {} |
v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionBuilderWithFunction(void const*) Line | Count | Source | 639 | 72 | explicit constexpr CFunctionBuilderWithFunction(const void* fn) : fn_(fn) {} |
v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<int>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionBuilderWithFunction(void const*) Line | Count | Source | 639 | 72 | explicit constexpr CFunctionBuilderWithFunction(const void* fn) : fn_(fn) {} |
v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<int>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<long>, v8::CTypeInfoBuilder<bool>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionBuilderWithFunction(void const*) Line | Count | Source | 639 | 72 | explicit constexpr CFunctionBuilderWithFunction(const void* fn) : fn_(fn) {} |
v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::FastOneByteString const&>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionBuilderWithFunction(void const*) Line | Count | Source | 639 | 216 | explicit constexpr CFunctionBuilderWithFunction(const void* fn) : fn_(fn) {} |
v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<double>, v8::CTypeInfoBuilder<v8::Local<v8::Value>> >::CFunctionBuilderWithFunction(void const*) Line | Count | Source | 639 | 720 | explicit constexpr CFunctionBuilderWithFunction(const void* fn) : fn_(fn) {} |
v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Value>> >::CFunctionBuilderWithFunction(void const*) Line | Count | Source | 639 | 72 | explicit constexpr CFunctionBuilderWithFunction(const void* fn) : fn_(fn) {} |
v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<void>, v8::CTypeInfoBuilder<v8::Local<v8::Value>> >::CFunctionBuilderWithFunction(void const*) Line | Count | Source | 639 | 360 | explicit constexpr CFunctionBuilderWithFunction(const void* fn) : fn_(fn) {} |
v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<bool>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>> >::CFunctionBuilderWithFunction(void const*) Line | Count | Source | 639 | 2.01k | explicit constexpr CFunctionBuilderWithFunction(const void* fn) : fn_(fn) {} |
v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<bool>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionBuilderWithFunction(void const*) Line | Count | Source | 639 | 72 | explicit constexpr CFunctionBuilderWithFunction(const void* fn) : fn_(fn) {} |
v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<bool>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionBuilderWithFunction(void const*) Line | Count | Source | 639 | 144 | explicit constexpr CFunctionBuilderWithFunction(const void* fn) : fn_(fn) {} |
v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<unsigned int> >::CFunctionBuilderWithFunction(void const*) Line | Count | Source | 639 | 72 | explicit constexpr CFunctionBuilderWithFunction(const void* fn) : fn_(fn) {} |
Unexecuted instantiation: v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionBuilderWithFunction(void const*) Unexecuted instantiation: v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionBuilderWithFunction(void const*) Unexecuted instantiation: v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionBuilderWithFunction(void const*) Unexecuted instantiation: v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionBuilderWithFunction(void const*) Unexecuted instantiation: v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionBuilderWithFunction(void const*) Unexecuted instantiation: v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionBuilderWithFunction(void const*) Unexecuted instantiation: v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionBuilderWithFunction(void const*) Unexecuted instantiation: v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionBuilderWithFunction(void const*) Unexecuted instantiation: v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionBuilderWithFunction(void const*) Unexecuted instantiation: v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<long>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionBuilderWithFunction(void const*) Unexecuted instantiation: v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionBuilderWithFunction(void const*) Unexecuted instantiation: v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionBuilderWithFunction(void const*) Unexecuted instantiation: v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionBuilderWithFunction(void const*) Unexecuted instantiation: v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionBuilderWithFunction(void const*) Unexecuted instantiation: v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionBuilderWithFunction(void const*) Unexecuted instantiation: v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<void>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionBuilderWithFunction(void const*) Unexecuted instantiation: v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionBuilderWithFunction(void const*) v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::CFunctionBuilderWithFunction(void const*) Line | Count | Source | 639 | 72 | explicit constexpr CFunctionBuilderWithFunction(const void* fn) : fn_(fn) {} |
v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<void>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<long> >::CFunctionBuilderWithFunction(void const*) Line | Count | Source | 639 | 72 | explicit constexpr CFunctionBuilderWithFunction(const void* fn) : fn_(fn) {} |
v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<void>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<bool> >::CFunctionBuilderWithFunction(void const*) Line | Count | Source | 639 | 144 | explicit constexpr CFunctionBuilderWithFunction(const void* fn) : fn_(fn) {} |
v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<double>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<double> >::CFunctionBuilderWithFunction(void const*) Line | Count | Source | 639 | 72 | explicit constexpr CFunctionBuilderWithFunction(const void* fn) : fn_(fn) {} |
v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<void>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<long> >::CFunctionBuilderWithFunction(void const*) Line | Count | Source | 639 | 72 | explicit constexpr CFunctionBuilderWithFunction(const void* fn) : fn_(fn) {} |
v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<void>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<bool> >::CFunctionBuilderWithFunction(void const*) Line | Count | Source | 639 | 72 | explicit constexpr CFunctionBuilderWithFunction(const void* fn) : fn_(fn) {} |
|
640 | | |
641 | | template <CTypeInfo::Flags... Flags> |
642 | | constexpr auto Ret() { |
643 | | return CFunctionBuilderWithFunction< |
644 | | CTypeInfoBuilder<typename RetBuilder::BaseType, Flags...>, |
645 | | ArgBuilders...>(fn_); |
646 | | } |
647 | | |
648 | | template <unsigned int N, CTypeInfo::Flags... Flags> |
649 | | constexpr auto Arg() { |
650 | | // Return a copy of the builder with the Nth arg builder merged with |
651 | | // template parameter pack Flags. |
652 | | return ArgImpl<N, Flags...>( |
653 | | std::make_index_sequence<sizeof...(ArgBuilders)>()); |
654 | | } |
655 | | |
656 | | // Provided for testing purposes. |
657 | | template <typename Ret, typename... Args> |
658 | | auto Patch(Ret (*patching_func)(Args...)) { |
659 | | static_assert( |
660 | | sizeof...(Args) == sizeof...(ArgBuilders), |
661 | | "The patching function must have the same number of arguments."); |
662 | | fn_ = reinterpret_cast<void*>(patching_func); |
663 | | return *this; |
664 | | } |
665 | | |
666 | | template <CFunctionInfo::Int64Representation Representation = |
667 | | CFunctionInfo::Int64Representation::kNumber> |
668 | 4.46k | auto Build() { |
669 | 4.46k | static CFunctionInfoImpl<Representation, RetBuilder, ArgBuilders...> |
670 | 4.46k | instance; |
671 | 4.46k | return CFunction(fn_, &instance); |
672 | 4.46k | } auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)0>() Line | Count | Source | 668 | 72 | auto Build() { | 669 | 72 | static CFunctionInfoImpl<Representation, RetBuilder, ArgBuilders...> | 670 | 72 | instance; | 671 | 72 | return CFunction(fn_, &instance); | 672 | 72 | } |
Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)1>() auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)0>() Line | Count | Source | 668 | 72 | auto Build() { | 669 | 72 | static CFunctionInfoImpl<Representation, RetBuilder, ArgBuilders...> | 670 | 72 | instance; | 671 | 72 | return CFunction(fn_, &instance); | 672 | 72 | } |
Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)1>() auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<int>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)0>() Line | Count | Source | 668 | 72 | auto Build() { | 669 | 72 | static CFunctionInfoImpl<Representation, RetBuilder, ArgBuilders...> | 670 | 72 | instance; | 671 | 72 | return CFunction(fn_, &instance); | 672 | 72 | } |
Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<int>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)1>() auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<int>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<long>, v8::CTypeInfoBuilder<bool>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)0>() Line | Count | Source | 668 | 72 | auto Build() { | 669 | 72 | static CFunctionInfoImpl<Representation, RetBuilder, ArgBuilders...> | 670 | 72 | instance; | 671 | 72 | return CFunction(fn_, &instance); | 672 | 72 | } |
Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<int>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<long>, v8::CTypeInfoBuilder<bool>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)1>() auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::FastOneByteString const&>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)0>() Line | Count | Source | 668 | 216 | auto Build() { | 669 | 216 | static CFunctionInfoImpl<Representation, RetBuilder, ArgBuilders...> | 670 | 216 | instance; | 671 | 216 | return CFunction(fn_, &instance); | 672 | 216 | } |
Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::FastOneByteString const&>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)1>() auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<double>, v8::CTypeInfoBuilder<v8::Local<v8::Value>> >::Build<(v8::CFunctionInfo::Int64Representation)0>() Line | Count | Source | 668 | 720 | auto Build() { | 669 | 720 | static CFunctionInfoImpl<Representation, RetBuilder, ArgBuilders...> | 670 | 720 | instance; | 671 | 720 | return CFunction(fn_, &instance); | 672 | 720 | } |
Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<double>, v8::CTypeInfoBuilder<v8::Local<v8::Value>> >::Build<(v8::CFunctionInfo::Int64Representation)1>() auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Value>> >::Build<(v8::CFunctionInfo::Int64Representation)0>() Line | Count | Source | 668 | 72 | auto Build() { | 669 | 72 | static CFunctionInfoImpl<Representation, RetBuilder, ArgBuilders...> | 670 | 72 | instance; | 671 | 72 | return CFunction(fn_, &instance); | 672 | 72 | } |
Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Value>> >::Build<(v8::CFunctionInfo::Int64Representation)1>() auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<void>, v8::CTypeInfoBuilder<v8::Local<v8::Value>> >::Build<(v8::CFunctionInfo::Int64Representation)0>() Line | Count | Source | 668 | 360 | auto Build() { | 669 | 360 | static CFunctionInfoImpl<Representation, RetBuilder, ArgBuilders...> | 670 | 360 | instance; | 671 | 360 | return CFunction(fn_, &instance); | 672 | 360 | } |
Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<void>, v8::CTypeInfoBuilder<v8::Local<v8::Value>> >::Build<(v8::CFunctionInfo::Int64Representation)1>() auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<bool>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>> >::Build<(v8::CFunctionInfo::Int64Representation)0>() Line | Count | Source | 668 | 2.01k | auto Build() { | 669 | 2.01k | static CFunctionInfoImpl<Representation, RetBuilder, ArgBuilders...> | 670 | 2.01k | instance; | 671 | 2.01k | return CFunction(fn_, &instance); | 672 | 2.01k | } |
Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<bool>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>> >::Build<(v8::CFunctionInfo::Int64Representation)1>() auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<bool>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)0>() Line | Count | Source | 668 | 72 | auto Build() { | 669 | 72 | static CFunctionInfoImpl<Representation, RetBuilder, ArgBuilders...> | 670 | 72 | instance; | 671 | 72 | return CFunction(fn_, &instance); | 672 | 72 | } |
Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<bool>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)1>() auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<bool>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)0>() Line | Count | Source | 668 | 144 | auto Build() { | 669 | 144 | static CFunctionInfoImpl<Representation, RetBuilder, ArgBuilders...> | 670 | 144 | instance; | 671 | 144 | return CFunction(fn_, &instance); | 672 | 144 | } |
Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<bool>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)1>() auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<unsigned int> >::Build<(v8::CFunctionInfo::Int64Representation)0>() Line | Count | Source | 668 | 72 | auto Build() { | 669 | 72 | static CFunctionInfoImpl<Representation, RetBuilder, ArgBuilders...> | 670 | 72 | instance; | 671 | 72 | return CFunction(fn_, &instance); | 672 | 72 | } |
Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<unsigned int> >::Build<(v8::CFunctionInfo::Int64Representation)1>() Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)0>() Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)1>() Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)0>() Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)1>() Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)0>() Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)1>() Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)0>() Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)1>() Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)0>() Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)1>() Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)0>() Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)1>() Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)0>() Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)1>() Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)0>() Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)1>() Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)0>() Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)1>() Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<long>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)0>() Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<long>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)1>() Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)0>() Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)1>() Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)0>() Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)1>() Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)0>() Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)1>() Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)0>() Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned long>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)1>() Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)0>() Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)1>() Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<void>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)0>() Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<void>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)1>() Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)0>() Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)1>() auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)0>() Line | Count | Source | 668 | 72 | auto Build() { | 669 | 72 | static CFunctionInfoImpl<Representation, RetBuilder, ArgBuilders...> | 670 | 72 | instance; | 671 | 72 | return CFunction(fn_, &instance); | 672 | 72 | } |
Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<unsigned int>, v8::CTypeInfoBuilder<v8::FastApiCallbackOptions&> >::Build<(v8::CFunctionInfo::Int64Representation)1>() auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<void>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<long> >::Build<(v8::CFunctionInfo::Int64Representation)0>() Line | Count | Source | 668 | 72 | auto Build() { | 669 | 72 | static CFunctionInfoImpl<Representation, RetBuilder, ArgBuilders...> | 670 | 72 | instance; | 671 | 72 | return CFunction(fn_, &instance); | 672 | 72 | } |
Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<void>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<long> >::Build<(v8::CFunctionInfo::Int64Representation)1>() auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<void>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<bool> >::Build<(v8::CFunctionInfo::Int64Representation)0>() Line | Count | Source | 668 | 144 | auto Build() { | 669 | 144 | static CFunctionInfoImpl<Representation, RetBuilder, ArgBuilders...> | 670 | 144 | instance; | 671 | 144 | return CFunction(fn_, &instance); | 672 | 144 | } |
Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<void>, v8::CTypeInfoBuilder<v8::Local<v8::Object>>, v8::CTypeInfoBuilder<bool> >::Build<(v8::CFunctionInfo::Int64Representation)1>() auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<double>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<double> >::Build<(v8::CFunctionInfo::Int64Representation)0>() Line | Count | Source | 668 | 72 | auto Build() { | 669 | 72 | static CFunctionInfoImpl<Representation, RetBuilder, ArgBuilders...> | 670 | 72 | instance; | 671 | 72 | return CFunction(fn_, &instance); | 672 | 72 | } |
Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<double>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<double> >::Build<(v8::CFunctionInfo::Int64Representation)1>() auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<void>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<long> >::Build<(v8::CFunctionInfo::Int64Representation)0>() Line | Count | Source | 668 | 72 | auto Build() { | 669 | 72 | static CFunctionInfoImpl<Representation, RetBuilder, ArgBuilders...> | 670 | 72 | instance; | 671 | 72 | return CFunction(fn_, &instance); | 672 | 72 | } |
Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<void>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<long> >::Build<(v8::CFunctionInfo::Int64Representation)1>() auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<void>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<bool> >::Build<(v8::CFunctionInfo::Int64Representation)0>() Line | Count | Source | 668 | 72 | auto Build() { | 669 | 72 | static CFunctionInfoImpl<Representation, RetBuilder, ArgBuilders...> | 670 | 72 | instance; | 671 | 72 | return CFunction(fn_, &instance); | 672 | 72 | } |
Unexecuted instantiation: auto v8::internal::CFunctionBuilderWithFunction<v8::CTypeInfoBuilder<void>, v8::CTypeInfoBuilder<v8::Local<v8::Value>>, v8::CTypeInfoBuilder<bool> >::Build<(v8::CFunctionInfo::Int64Representation)1>() |
673 | | |
674 | | private: |
675 | | template <bool Merge, unsigned int N, CTypeInfo::Flags... Flags> |
676 | | struct GetArgBuilder; |
677 | | |
678 | | // Returns the same ArgBuilder as the one at index N, including its flags. |
679 | | // Flags in the template parameter pack are ignored. |
680 | | template <unsigned int N, CTypeInfo::Flags... Flags> |
681 | | struct GetArgBuilder<false, N, Flags...> { |
682 | | using type = std::tuple_element_t<N, std::tuple<ArgBuilders...>>; |
683 | | }; |
684 | | |
685 | | // Returns an ArgBuilder with the same base type as the one at index N, |
686 | | // but merges the flags with the flags in the template parameter pack. |
687 | | template <unsigned int N, CTypeInfo::Flags... Flags> |
688 | | struct GetArgBuilder<true, N, Flags...> { |
689 | | using type = CTypeInfoBuilder< |
690 | | typename std::tuple_element_t<N, std::tuple<ArgBuilders...>>::BaseType, |
691 | | std::tuple_element_t<N, std::tuple<ArgBuilders...>>::Build().GetFlags(), |
692 | | Flags...>; |
693 | | }; |
694 | | |
695 | | // Return a copy of the CFunctionBuilder, but merges the Flags on |
696 | | // ArgBuilder index N with the new Flags passed in the template parameter |
697 | | // pack. |
698 | | template <unsigned int N, CTypeInfo::Flags... Flags, size_t... I> |
699 | | constexpr auto ArgImpl(std::index_sequence<I...>) { |
700 | | return CFunctionBuilderWithFunction< |
701 | | RetBuilder, typename GetArgBuilder<N == I, I, Flags...>::type...>(fn_); |
702 | | } |
703 | | |
704 | | const void* fn_; |
705 | | }; |
706 | | |
707 | | class CFunctionBuilder { |
708 | | public: |
709 | 4.46k | constexpr CFunctionBuilder() {} |
710 | | |
711 | | template <typename R, typename... Args> |
712 | 4.46k | constexpr auto Fn(R (*fn)(Args...)) { |
713 | 4.46k | return CFunctionBuilderWithFunction<CTypeInfoBuilder<R>, |
714 | 4.46k | CTypeInfoBuilder<Args>...>( |
715 | 4.46k | reinterpret_cast<const void*>(fn)); |
716 | 4.46k | } auto v8::internal::CFunctionBuilder::Fn<unsigned int, v8::Local<v8::Value>, v8::Local<v8::Value>, v8::Local<v8::Value>, unsigned int, unsigned int, unsigned int, v8::FastApiCallbackOptions&>(unsigned int (*)(v8::Local<v8::Value>, v8::Local<v8::Value>, v8::Local<v8::Value>, unsigned int, unsigned int, unsigned int, v8::FastApiCallbackOptions&)) Line | Count | Source | 712 | 72 | constexpr auto Fn(R (*fn)(Args...)) { | 713 | 72 | return CFunctionBuilderWithFunction<CTypeInfoBuilder<R>, | 714 | 72 | CTypeInfoBuilder<Args>...>( | 715 | 72 | reinterpret_cast<const void*>(fn)); | 716 | 72 | } |
auto v8::internal::CFunctionBuilder::Fn<unsigned int, v8::Local<v8::Value>, v8::Local<v8::Value>, v8::FastApiCallbackOptions&>(unsigned int (*)(v8::Local<v8::Value>, v8::Local<v8::Value>, v8::FastApiCallbackOptions&)) Line | Count | Source | 712 | 72 | constexpr auto Fn(R (*fn)(Args...)) { | 713 | 72 | return CFunctionBuilderWithFunction<CTypeInfoBuilder<R>, | 714 | 72 | CTypeInfoBuilder<Args>...>( | 715 | 72 | reinterpret_cast<const void*>(fn)); | 716 | 72 | } |
auto v8::internal::CFunctionBuilder::Fn<int, v8::Local<v8::Value>, v8::Local<v8::Value>, v8::Local<v8::Value>, v8::FastApiCallbackOptions&>(int (*)(v8::Local<v8::Value>, v8::Local<v8::Value>, v8::Local<v8::Value>, v8::FastApiCallbackOptions&)) Line | Count | Source | 712 | 72 | constexpr auto Fn(R (*fn)(Args...)) { | 713 | 72 | return CFunctionBuilderWithFunction<CTypeInfoBuilder<R>, | 714 | 72 | CTypeInfoBuilder<Args>...>( | 715 | 72 | reinterpret_cast<const void*>(fn)); | 716 | 72 | } |
auto v8::internal::CFunctionBuilder::Fn<int, v8::Local<v8::Value>, v8::Local<v8::Value>, unsigned int, long, bool, v8::FastApiCallbackOptions&>(int (*)(v8::Local<v8::Value>, v8::Local<v8::Value>, unsigned int, long, bool, v8::FastApiCallbackOptions&)) Line | Count | Source | 712 | 72 | constexpr auto Fn(R (*fn)(Args...)) { | 713 | 72 | return CFunctionBuilderWithFunction<CTypeInfoBuilder<R>, | 714 | 72 | CTypeInfoBuilder<Args>...>( | 715 | 72 | reinterpret_cast<const void*>(fn)); | 716 | 72 | } |
auto v8::internal::CFunctionBuilder::Fn<unsigned int, v8::Local<v8::Value>, v8::Local<v8::Value>, v8::FastOneByteString const&, unsigned int, unsigned int, v8::FastApiCallbackOptions&>(unsigned int (*)(v8::Local<v8::Value>, v8::Local<v8::Value>, v8::FastOneByteString const&, unsigned int, unsigned int, v8::FastApiCallbackOptions&)) Line | Count | Source | 712 | 216 | constexpr auto Fn(R (*fn)(Args...)) { | 713 | 216 | return CFunctionBuilderWithFunction<CTypeInfoBuilder<R>, | 714 | 216 | CTypeInfoBuilder<Args>...>( | 715 | 216 | reinterpret_cast<const void*>(fn)); | 716 | 216 | } |
auto v8::internal::CFunctionBuilder::Fn<double, v8::Local<v8::Value> >(double (*)(v8::Local<v8::Value>)) Line | Count | Source | 712 | 720 | constexpr auto Fn(R (*fn)(Args...)) { | 713 | 720 | return CFunctionBuilderWithFunction<CTypeInfoBuilder<R>, | 714 | 720 | CTypeInfoBuilder<Args>...>( | 715 | 720 | reinterpret_cast<const void*>(fn)); | 716 | 720 | } |
auto v8::internal::CFunctionBuilder::Fn<unsigned int, v8::Local<v8::Value> >(unsigned int (*)(v8::Local<v8::Value>)) Line | Count | Source | 712 | 72 | constexpr auto Fn(R (*fn)(Args...)) { | 713 | 72 | return CFunctionBuilderWithFunction<CTypeInfoBuilder<R>, | 714 | 72 | CTypeInfoBuilder<Args>...>( | 715 | 72 | reinterpret_cast<const void*>(fn)); | 716 | 72 | } |
auto v8::internal::CFunctionBuilder::Fn<void, v8::Local<v8::Value> >(void (*)(v8::Local<v8::Value>)) Line | Count | Source | 712 | 360 | constexpr auto Fn(R (*fn)(Args...)) { | 713 | 360 | return CFunctionBuilderWithFunction<CTypeInfoBuilder<R>, | 714 | 360 | CTypeInfoBuilder<Args>...>( | 715 | 360 | reinterpret_cast<const void*>(fn)); | 716 | 360 | } |
auto v8::internal::CFunctionBuilder::Fn<bool, v8::Local<v8::Value>, v8::Local<v8::Value> >(bool (*)(v8::Local<v8::Value>, v8::Local<v8::Value>)) Line | Count | Source | 712 | 2.01k | constexpr auto Fn(R (*fn)(Args...)) { | 713 | 2.01k | return CFunctionBuilderWithFunction<CTypeInfoBuilder<R>, | 714 | 2.01k | CTypeInfoBuilder<Args>...>( | 715 | 2.01k | reinterpret_cast<const void*>(fn)); | 716 | 2.01k | } |
auto v8::internal::CFunctionBuilder::Fn<bool, v8::Local<v8::Value>, v8::Local<v8::Value>, v8::FastApiCallbackOptions&>(bool (*)(v8::Local<v8::Value>, v8::Local<v8::Value>, v8::FastApiCallbackOptions&)) Line | Count | Source | 712 | 72 | constexpr auto Fn(R (*fn)(Args...)) { | 713 | 72 | return CFunctionBuilderWithFunction<CTypeInfoBuilder<R>, | 714 | 72 | CTypeInfoBuilder<Args>...>( | 715 | 72 | reinterpret_cast<const void*>(fn)); | 716 | 72 | } |
auto v8::internal::CFunctionBuilder::Fn<bool, v8::Local<v8::Value>, v8::Local<v8::Value>, v8::Local<v8::Value>, v8::FastApiCallbackOptions&>(bool (*)(v8::Local<v8::Value>, v8::Local<v8::Value>, v8::Local<v8::Value>, v8::FastApiCallbackOptions&)) Line | Count | Source | 712 | 144 | constexpr auto Fn(R (*fn)(Args...)) { | 713 | 144 | return CFunctionBuilderWithFunction<CTypeInfoBuilder<R>, | 714 | 144 | CTypeInfoBuilder<Args>...>( | 715 | 144 | reinterpret_cast<const void*>(fn)); | 716 | 144 | } |
auto v8::internal::CFunctionBuilder::Fn<unsigned int, v8::Local<v8::Value>, unsigned int>(unsigned int (*)(v8::Local<v8::Value>, unsigned int)) Line | Count | Source | 712 | 72 | constexpr auto Fn(R (*fn)(Args...)) { | 713 | 72 | return CFunctionBuilderWithFunction<CTypeInfoBuilder<R>, | 714 | 72 | CTypeInfoBuilder<Args>...>( | 715 | 72 | reinterpret_cast<const void*>(fn)); | 716 | 72 | } |
Unexecuted instantiation: auto v8::internal::CFunctionBuilder::Fn<unsigned int, v8::Local<v8::Object>, unsigned int, unsigned int, v8::FastApiCallbackOptions&>(unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned int, v8::FastApiCallbackOptions&)) Unexecuted instantiation: auto v8::internal::CFunctionBuilder::Fn<unsigned int, v8::Local<v8::Object>, unsigned int, unsigned long, unsigned int, v8::FastApiCallbackOptions&>(unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned long, unsigned int, v8::FastApiCallbackOptions&)) Unexecuted instantiation: auto v8::internal::CFunctionBuilder::Fn<unsigned int, v8::Local<v8::Object>, unsigned int, unsigned long, unsigned long, unsigned int, v8::FastApiCallbackOptions&>(unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned long, unsigned long, unsigned int, v8::FastApiCallbackOptions&)) Unexecuted instantiation: auto v8::internal::CFunctionBuilder::Fn<unsigned int, v8::Local<v8::Object>, unsigned int, unsigned long, unsigned long, v8::FastApiCallbackOptions&>(unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned long, unsigned long, v8::FastApiCallbackOptions&)) Unexecuted instantiation: auto v8::internal::CFunctionBuilder::Fn<unsigned int, v8::Local<v8::Object>, unsigned int, v8::FastApiCallbackOptions&>(unsigned int (*)(v8::Local<v8::Object>, unsigned int, v8::FastApiCallbackOptions&)) Unexecuted instantiation: auto v8::internal::CFunctionBuilder::Fn<unsigned int, v8::Local<v8::Object>, unsigned int, unsigned long, v8::FastApiCallbackOptions&>(unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned long, v8::FastApiCallbackOptions&)) Unexecuted instantiation: auto v8::internal::CFunctionBuilder::Fn<unsigned int, v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, unsigned long, unsigned int, v8::FastApiCallbackOptions&>(unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, unsigned long, unsigned int, v8::FastApiCallbackOptions&)) Unexecuted instantiation: auto v8::internal::CFunctionBuilder::Fn<unsigned int, v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, v8::FastApiCallbackOptions&>(unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, v8::FastApiCallbackOptions&)) Unexecuted instantiation: auto v8::internal::CFunctionBuilder::Fn<unsigned int, v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, unsigned int, v8::FastApiCallbackOptions&>(unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, unsigned int, v8::FastApiCallbackOptions&)) Unexecuted instantiation: auto v8::internal::CFunctionBuilder::Fn<unsigned int, v8::Local<v8::Object>, unsigned int, long, unsigned int, unsigned int, v8::FastApiCallbackOptions&>(unsigned int (*)(v8::Local<v8::Object>, unsigned int, long, unsigned int, unsigned int, v8::FastApiCallbackOptions&)) Unexecuted instantiation: auto v8::internal::CFunctionBuilder::Fn<unsigned int, v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, v8::FastApiCallbackOptions&>(unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, v8::FastApiCallbackOptions&)) Unexecuted instantiation: auto v8::internal::CFunctionBuilder::Fn<unsigned int, v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, unsigned int, unsigned long, unsigned long, unsigned int, v8::FastApiCallbackOptions&>(unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, unsigned int, unsigned long, unsigned long, unsigned int, v8::FastApiCallbackOptions&)) Unexecuted instantiation: auto v8::internal::CFunctionBuilder::Fn<unsigned int, v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, v8::FastApiCallbackOptions&>(unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, v8::FastApiCallbackOptions&)) Unexecuted instantiation: auto v8::internal::CFunctionBuilder::Fn<unsigned int, v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned long, unsigned long, unsigned int, unsigned int, v8::FastApiCallbackOptions&>(unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned long, unsigned long, unsigned int, unsigned int, v8::FastApiCallbackOptions&)) Unexecuted instantiation: auto v8::internal::CFunctionBuilder::Fn<unsigned int, v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, v8::FastApiCallbackOptions&>(unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, v8::FastApiCallbackOptions&)) Unexecuted instantiation: auto v8::internal::CFunctionBuilder::Fn<void, v8::Local<v8::Object>, unsigned int, v8::FastApiCallbackOptions&>(void (*)(v8::Local<v8::Object>, unsigned int, v8::FastApiCallbackOptions&)) Unexecuted instantiation: auto v8::internal::CFunctionBuilder::Fn<unsigned int, v8::Local<v8::Object>, v8::FastApiCallbackOptions&>(unsigned int (*)(v8::Local<v8::Object>, v8::FastApiCallbackOptions&)) auto v8::internal::CFunctionBuilder::Fn<unsigned int, v8::Local<v8::Value>, v8::Local<v8::Value>, unsigned int, v8::FastApiCallbackOptions&>(unsigned int (*)(v8::Local<v8::Value>, v8::Local<v8::Value>, unsigned int, v8::FastApiCallbackOptions&)) Line | Count | Source | 712 | 72 | constexpr auto Fn(R (*fn)(Args...)) { | 713 | 72 | return CFunctionBuilderWithFunction<CTypeInfoBuilder<R>, | 714 | 72 | CTypeInfoBuilder<Args>...>( | 715 | 72 | reinterpret_cast<const void*>(fn)); | 716 | 72 | } |
auto v8::internal::CFunctionBuilder::Fn<void, v8::Local<v8::Object>, long>(void (*)(v8::Local<v8::Object>, long)) Line | Count | Source | 712 | 72 | constexpr auto Fn(R (*fn)(Args...)) { | 713 | 72 | return CFunctionBuilderWithFunction<CTypeInfoBuilder<R>, | 714 | 72 | CTypeInfoBuilder<Args>...>( | 715 | 72 | reinterpret_cast<const void*>(fn)); | 716 | 72 | } |
auto v8::internal::CFunctionBuilder::Fn<void, v8::Local<v8::Object>, bool>(void (*)(v8::Local<v8::Object>, bool)) Line | Count | Source | 712 | 144 | constexpr auto Fn(R (*fn)(Args...)) { | 713 | 144 | return CFunctionBuilderWithFunction<CTypeInfoBuilder<R>, | 714 | 144 | CTypeInfoBuilder<Args>...>( | 715 | 144 | reinterpret_cast<const void*>(fn)); | 716 | 144 | } |
auto v8::internal::CFunctionBuilder::Fn<double, v8::Local<v8::Value>, double>(double (*)(v8::Local<v8::Value>, double)) Line | Count | Source | 712 | 72 | constexpr auto Fn(R (*fn)(Args...)) { | 713 | 72 | return CFunctionBuilderWithFunction<CTypeInfoBuilder<R>, | 714 | 72 | CTypeInfoBuilder<Args>...>( | 715 | 72 | reinterpret_cast<const void*>(fn)); | 716 | 72 | } |
auto v8::internal::CFunctionBuilder::Fn<void, v8::Local<v8::Value>, long>(void (*)(v8::Local<v8::Value>, long)) Line | Count | Source | 712 | 72 | constexpr auto Fn(R (*fn)(Args...)) { | 713 | 72 | return CFunctionBuilderWithFunction<CTypeInfoBuilder<R>, | 714 | 72 | CTypeInfoBuilder<Args>...>( | 715 | 72 | reinterpret_cast<const void*>(fn)); | 716 | 72 | } |
auto v8::internal::CFunctionBuilder::Fn<void, v8::Local<v8::Value>, bool>(void (*)(v8::Local<v8::Value>, bool)) Line | Count | Source | 712 | 72 | constexpr auto Fn(R (*fn)(Args...)) { | 713 | 72 | return CFunctionBuilderWithFunction<CTypeInfoBuilder<R>, | 714 | 72 | CTypeInfoBuilder<Args>...>( | 715 | 72 | reinterpret_cast<const void*>(fn)); | 716 | 72 | } |
|
717 | | }; |
718 | | |
719 | | } // namespace internal |
720 | | |
721 | | // static |
722 | | template <typename R, typename... Args> |
723 | | CFunction CFunction::ArgUnwrap<R (*)(Args...)>::Make( |
724 | 4.46k | R (*func)(Args...), CFunctionInfo::Int64Representation int64_rep) { |
725 | 4.46k | if (int64_rep == CFunctionInfo::Int64Representation::kNumber) { |
726 | 4.46k | return internal::CFunctionBuilder().Fn(func).Build(); |
727 | 4.46k | } |
728 | 0 | return internal::CFunctionBuilder() |
729 | 0 | .Fn(func) |
730 | 0 | .template Build<CFunctionInfo::Int64Representation::kBigInt>(); |
731 | 4.46k | } v8::CFunction::ArgUnwrap<unsigned int (*)(v8::Local<v8::Value>, v8::Local<v8::Value>, v8::Local<v8::Value>, unsigned int, unsigned int, unsigned int, v8::FastApiCallbackOptions&)>::Make(unsigned int (*)(v8::Local<v8::Value>, v8::Local<v8::Value>, v8::Local<v8::Value>, unsigned int, unsigned int, unsigned int, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Line | Count | Source | 724 | 72 | R (*func)(Args...), CFunctionInfo::Int64Representation int64_rep) { | 725 | 72 | if (int64_rep == CFunctionInfo::Int64Representation::kNumber) { | 726 | 72 | return internal::CFunctionBuilder().Fn(func).Build(); | 727 | 72 | } | 728 | 0 | return internal::CFunctionBuilder() | 729 | 0 | .Fn(func) | 730 | 0 | .template Build<CFunctionInfo::Int64Representation::kBigInt>(); | 731 | 72 | } |
v8::CFunction::ArgUnwrap<unsigned int (*)(v8::Local<v8::Value>, v8::Local<v8::Value>, v8::FastApiCallbackOptions&)>::Make(unsigned int (*)(v8::Local<v8::Value>, v8::Local<v8::Value>, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Line | Count | Source | 724 | 72 | R (*func)(Args...), CFunctionInfo::Int64Representation int64_rep) { | 725 | 72 | if (int64_rep == CFunctionInfo::Int64Representation::kNumber) { | 726 | 72 | return internal::CFunctionBuilder().Fn(func).Build(); | 727 | 72 | } | 728 | 0 | return internal::CFunctionBuilder() | 729 | 0 | .Fn(func) | 730 | 0 | .template Build<CFunctionInfo::Int64Representation::kBigInt>(); | 731 | 72 | } |
v8::CFunction::ArgUnwrap<int (*)(v8::Local<v8::Value>, v8::Local<v8::Value>, v8::Local<v8::Value>, v8::FastApiCallbackOptions&)>::Make(int (*)(v8::Local<v8::Value>, v8::Local<v8::Value>, v8::Local<v8::Value>, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Line | Count | Source | 724 | 72 | R (*func)(Args...), CFunctionInfo::Int64Representation int64_rep) { | 725 | 72 | if (int64_rep == CFunctionInfo::Int64Representation::kNumber) { | 726 | 72 | return internal::CFunctionBuilder().Fn(func).Build(); | 727 | 72 | } | 728 | 0 | return internal::CFunctionBuilder() | 729 | 0 | .Fn(func) | 730 | 0 | .template Build<CFunctionInfo::Int64Representation::kBigInt>(); | 731 | 72 | } |
v8::CFunction::ArgUnwrap<int (*)(v8::Local<v8::Value>, v8::Local<v8::Value>, unsigned int, long, bool, v8::FastApiCallbackOptions&)>::Make(int (*)(v8::Local<v8::Value>, v8::Local<v8::Value>, unsigned int, long, bool, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Line | Count | Source | 724 | 72 | R (*func)(Args...), CFunctionInfo::Int64Representation int64_rep) { | 725 | 72 | if (int64_rep == CFunctionInfo::Int64Representation::kNumber) { | 726 | 72 | return internal::CFunctionBuilder().Fn(func).Build(); | 727 | 72 | } | 728 | 0 | return internal::CFunctionBuilder() | 729 | 0 | .Fn(func) | 730 | 0 | .template Build<CFunctionInfo::Int64Representation::kBigInt>(); | 731 | 72 | } |
v8::CFunction::ArgUnwrap<unsigned int (*)(v8::Local<v8::Value>, v8::Local<v8::Value>, v8::FastOneByteString const&, unsigned int, unsigned int, v8::FastApiCallbackOptions&)>::Make(unsigned int (*)(v8::Local<v8::Value>, v8::Local<v8::Value>, v8::FastOneByteString const&, unsigned int, unsigned int, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Line | Count | Source | 724 | 216 | R (*func)(Args...), CFunctionInfo::Int64Representation int64_rep) { | 725 | 216 | if (int64_rep == CFunctionInfo::Int64Representation::kNumber) { | 726 | 216 | return internal::CFunctionBuilder().Fn(func).Build(); | 727 | 216 | } | 728 | 0 | return internal::CFunctionBuilder() | 729 | 0 | .Fn(func) | 730 | 0 | .template Build<CFunctionInfo::Int64Representation::kBigInt>(); | 731 | 216 | } |
v8::CFunction::ArgUnwrap<double (*)(v8::Local<v8::Value>)>::Make(double (*)(v8::Local<v8::Value>), v8::CFunctionInfo::Int64Representation) Line | Count | Source | 724 | 720 | R (*func)(Args...), CFunctionInfo::Int64Representation int64_rep) { | 725 | 720 | if (int64_rep == CFunctionInfo::Int64Representation::kNumber) { | 726 | 720 | return internal::CFunctionBuilder().Fn(func).Build(); | 727 | 720 | } | 728 | 0 | return internal::CFunctionBuilder() | 729 | 0 | .Fn(func) | 730 | 0 | .template Build<CFunctionInfo::Int64Representation::kBigInt>(); | 731 | 720 | } |
v8::CFunction::ArgUnwrap<unsigned int (*)(v8::Local<v8::Value>)>::Make(unsigned int (*)(v8::Local<v8::Value>), v8::CFunctionInfo::Int64Representation) Line | Count | Source | 724 | 72 | R (*func)(Args...), CFunctionInfo::Int64Representation int64_rep) { | 725 | 72 | if (int64_rep == CFunctionInfo::Int64Representation::kNumber) { | 726 | 72 | return internal::CFunctionBuilder().Fn(func).Build(); | 727 | 72 | } | 728 | 0 | return internal::CFunctionBuilder() | 729 | 0 | .Fn(func) | 730 | 0 | .template Build<CFunctionInfo::Int64Representation::kBigInt>(); | 731 | 72 | } |
v8::CFunction::ArgUnwrap<void (*)(v8::Local<v8::Value>)>::Make(void (*)(v8::Local<v8::Value>), v8::CFunctionInfo::Int64Representation) Line | Count | Source | 724 | 360 | R (*func)(Args...), CFunctionInfo::Int64Representation int64_rep) { | 725 | 360 | if (int64_rep == CFunctionInfo::Int64Representation::kNumber) { | 726 | 360 | return internal::CFunctionBuilder().Fn(func).Build(); | 727 | 360 | } | 728 | 0 | return internal::CFunctionBuilder() | 729 | 0 | .Fn(func) | 730 | 0 | .template Build<CFunctionInfo::Int64Representation::kBigInt>(); | 731 | 360 | } |
v8::CFunction::ArgUnwrap<bool (*)(v8::Local<v8::Value>, v8::Local<v8::Value>)>::Make(bool (*)(v8::Local<v8::Value>, v8::Local<v8::Value>), v8::CFunctionInfo::Int64Representation) Line | Count | Source | 724 | 2.01k | R (*func)(Args...), CFunctionInfo::Int64Representation int64_rep) { | 725 | 2.01k | if (int64_rep == CFunctionInfo::Int64Representation::kNumber) { | 726 | 2.01k | return internal::CFunctionBuilder().Fn(func).Build(); | 727 | 2.01k | } | 728 | 0 | return internal::CFunctionBuilder() | 729 | 0 | .Fn(func) | 730 | 0 | .template Build<CFunctionInfo::Int64Representation::kBigInt>(); | 731 | 2.01k | } |
v8::CFunction::ArgUnwrap<bool (*)(v8::Local<v8::Value>, v8::Local<v8::Value>, v8::FastApiCallbackOptions&)>::Make(bool (*)(v8::Local<v8::Value>, v8::Local<v8::Value>, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Line | Count | Source | 724 | 72 | R (*func)(Args...), CFunctionInfo::Int64Representation int64_rep) { | 725 | 72 | if (int64_rep == CFunctionInfo::Int64Representation::kNumber) { | 726 | 72 | return internal::CFunctionBuilder().Fn(func).Build(); | 727 | 72 | } | 728 | 0 | return internal::CFunctionBuilder() | 729 | 0 | .Fn(func) | 730 | 0 | .template Build<CFunctionInfo::Int64Representation::kBigInt>(); | 731 | 72 | } |
v8::CFunction::ArgUnwrap<bool (*)(v8::Local<v8::Value>, v8::Local<v8::Value>, v8::Local<v8::Value>, v8::FastApiCallbackOptions&)>::Make(bool (*)(v8::Local<v8::Value>, v8::Local<v8::Value>, v8::Local<v8::Value>, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Line | Count | Source | 724 | 144 | R (*func)(Args...), CFunctionInfo::Int64Representation int64_rep) { | 725 | 144 | if (int64_rep == CFunctionInfo::Int64Representation::kNumber) { | 726 | 144 | return internal::CFunctionBuilder().Fn(func).Build(); | 727 | 144 | } | 728 | 0 | return internal::CFunctionBuilder() | 729 | 0 | .Fn(func) | 730 | 0 | .template Build<CFunctionInfo::Int64Representation::kBigInt>(); | 731 | 144 | } |
v8::CFunction::ArgUnwrap<unsigned int (*)(v8::Local<v8::Value>, unsigned int)>::Make(unsigned int (*)(v8::Local<v8::Value>, unsigned int), v8::CFunctionInfo::Int64Representation) Line | Count | Source | 724 | 72 | R (*func)(Args...), CFunctionInfo::Int64Representation int64_rep) { | 725 | 72 | if (int64_rep == CFunctionInfo::Int64Representation::kNumber) { | 726 | 72 | return internal::CFunctionBuilder().Fn(func).Build(); | 727 | 72 | } | 728 | 0 | return internal::CFunctionBuilder() | 729 | 0 | .Fn(func) | 730 | 0 | .template Build<CFunctionInfo::Int64Representation::kBigInt>(); | 731 | 72 | } |
Unexecuted instantiation: v8::CFunction::ArgUnwrap<unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned int, v8::FastApiCallbackOptions&)>::Make(unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned int, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Unexecuted instantiation: v8::CFunction::ArgUnwrap<unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned long, unsigned int, v8::FastApiCallbackOptions&)>::Make(unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned long, unsigned int, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Unexecuted instantiation: v8::CFunction::ArgUnwrap<unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned long, unsigned long, unsigned int, v8::FastApiCallbackOptions&)>::Make(unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned long, unsigned long, unsigned int, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Unexecuted instantiation: v8::CFunction::ArgUnwrap<unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned long, unsigned long, v8::FastApiCallbackOptions&)>::Make(unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned long, unsigned long, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Unexecuted instantiation: v8::CFunction::ArgUnwrap<unsigned int (*)(v8::Local<v8::Object>, unsigned int, v8::FastApiCallbackOptions&)>::Make(unsigned int (*)(v8::Local<v8::Object>, unsigned int, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Unexecuted instantiation: v8::CFunction::ArgUnwrap<unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned long, v8::FastApiCallbackOptions&)>::Make(unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned long, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Unexecuted instantiation: v8::CFunction::ArgUnwrap<unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, unsigned long, unsigned int, v8::FastApiCallbackOptions&)>::Make(unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, unsigned long, unsigned int, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Unexecuted instantiation: v8::CFunction::ArgUnwrap<unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, v8::FastApiCallbackOptions&)>::Make(unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Unexecuted instantiation: v8::CFunction::ArgUnwrap<unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, unsigned int, v8::FastApiCallbackOptions&)>::Make(unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, unsigned int, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Unexecuted instantiation: v8::CFunction::ArgUnwrap<unsigned int (*)(v8::Local<v8::Object>, unsigned int, long, unsigned int, unsigned int, v8::FastApiCallbackOptions&)>::Make(unsigned int (*)(v8::Local<v8::Object>, unsigned int, long, unsigned int, unsigned int, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Unexecuted instantiation: v8::CFunction::ArgUnwrap<unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, v8::FastApiCallbackOptions&)>::Make(unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Unexecuted instantiation: v8::CFunction::ArgUnwrap<unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, unsigned int, unsigned long, unsigned long, unsigned int, v8::FastApiCallbackOptions&)>::Make(unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, unsigned int, unsigned long, unsigned long, unsigned int, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Unexecuted instantiation: v8::CFunction::ArgUnwrap<unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, v8::FastApiCallbackOptions&)>::Make(unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Unexecuted instantiation: v8::CFunction::ArgUnwrap<unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned long, unsigned long, unsigned int, unsigned int, v8::FastApiCallbackOptions&)>::Make(unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned long, unsigned long, unsigned int, unsigned int, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Unexecuted instantiation: v8::CFunction::ArgUnwrap<unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, v8::FastApiCallbackOptions&)>::Make(unsigned int (*)(v8::Local<v8::Object>, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Unexecuted instantiation: v8::CFunction::ArgUnwrap<void (*)(v8::Local<v8::Object>, unsigned int, v8::FastApiCallbackOptions&)>::Make(void (*)(v8::Local<v8::Object>, unsigned int, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Unexecuted instantiation: v8::CFunction::ArgUnwrap<unsigned int (*)(v8::Local<v8::Object>, v8::FastApiCallbackOptions&)>::Make(unsigned int (*)(v8::Local<v8::Object>, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) v8::CFunction::ArgUnwrap<unsigned int (*)(v8::Local<v8::Value>, v8::Local<v8::Value>, unsigned int, v8::FastApiCallbackOptions&)>::Make(unsigned int (*)(v8::Local<v8::Value>, v8::Local<v8::Value>, unsigned int, v8::FastApiCallbackOptions&), v8::CFunctionInfo::Int64Representation) Line | Count | Source | 724 | 72 | R (*func)(Args...), CFunctionInfo::Int64Representation int64_rep) { | 725 | 72 | if (int64_rep == CFunctionInfo::Int64Representation::kNumber) { | 726 | 72 | return internal::CFunctionBuilder().Fn(func).Build(); | 727 | 72 | } | 728 | 0 | return internal::CFunctionBuilder() | 729 | 0 | .Fn(func) | 730 | 0 | .template Build<CFunctionInfo::Int64Representation::kBigInt>(); | 731 | 72 | } |
v8::CFunction::ArgUnwrap<void (*)(v8::Local<v8::Object>, long)>::Make(void (*)(v8::Local<v8::Object>, long), v8::CFunctionInfo::Int64Representation) Line | Count | Source | 724 | 72 | R (*func)(Args...), CFunctionInfo::Int64Representation int64_rep) { | 725 | 72 | if (int64_rep == CFunctionInfo::Int64Representation::kNumber) { | 726 | 72 | return internal::CFunctionBuilder().Fn(func).Build(); | 727 | 72 | } | 728 | 0 | return internal::CFunctionBuilder() | 729 | 0 | .Fn(func) | 730 | 0 | .template Build<CFunctionInfo::Int64Representation::kBigInt>(); | 731 | 72 | } |
v8::CFunction::ArgUnwrap<void (*)(v8::Local<v8::Object>, bool)>::Make(void (*)(v8::Local<v8::Object>, bool), v8::CFunctionInfo::Int64Representation) Line | Count | Source | 724 | 144 | R (*func)(Args...), CFunctionInfo::Int64Representation int64_rep) { | 725 | 144 | if (int64_rep == CFunctionInfo::Int64Representation::kNumber) { | 726 | 144 | return internal::CFunctionBuilder().Fn(func).Build(); | 727 | 144 | } | 728 | 0 | return internal::CFunctionBuilder() | 729 | 0 | .Fn(func) | 730 | 0 | .template Build<CFunctionInfo::Int64Representation::kBigInt>(); | 731 | 144 | } |
v8::CFunction::ArgUnwrap<double (*)(v8::Local<v8::Value>, double)>::Make(double (*)(v8::Local<v8::Value>, double), v8::CFunctionInfo::Int64Representation) Line | Count | Source | 724 | 72 | R (*func)(Args...), CFunctionInfo::Int64Representation int64_rep) { | 725 | 72 | if (int64_rep == CFunctionInfo::Int64Representation::kNumber) { | 726 | 72 | return internal::CFunctionBuilder().Fn(func).Build(); | 727 | 72 | } | 728 | 0 | return internal::CFunctionBuilder() | 729 | 0 | .Fn(func) | 730 | 0 | .template Build<CFunctionInfo::Int64Representation::kBigInt>(); | 731 | 72 | } |
v8::CFunction::ArgUnwrap<void (*)(v8::Local<v8::Value>, long)>::Make(void (*)(v8::Local<v8::Value>, long), v8::CFunctionInfo::Int64Representation) Line | Count | Source | 724 | 72 | R (*func)(Args...), CFunctionInfo::Int64Representation int64_rep) { | 725 | 72 | if (int64_rep == CFunctionInfo::Int64Representation::kNumber) { | 726 | 72 | return internal::CFunctionBuilder().Fn(func).Build(); | 727 | 72 | } | 728 | 0 | return internal::CFunctionBuilder() | 729 | 0 | .Fn(func) | 730 | 0 | .template Build<CFunctionInfo::Int64Representation::kBigInt>(); | 731 | 72 | } |
v8::CFunction::ArgUnwrap<void (*)(v8::Local<v8::Value>, bool)>::Make(void (*)(v8::Local<v8::Value>, bool), v8::CFunctionInfo::Int64Representation) Line | Count | Source | 724 | 72 | R (*func)(Args...), CFunctionInfo::Int64Representation int64_rep) { | 725 | 72 | if (int64_rep == CFunctionInfo::Int64Representation::kNumber) { | 726 | 72 | return internal::CFunctionBuilder().Fn(func).Build(); | 727 | 72 | } | 728 | 0 | return internal::CFunctionBuilder() | 729 | 0 | .Fn(func) | 730 | 0 | .template Build<CFunctionInfo::Int64Representation::kBigInt>(); | 731 | 72 | } |
|
732 | | |
733 | | using CFunctionBuilder = internal::CFunctionBuilder; |
734 | | |
735 | | static constexpr CTypeInfo kTypeInfoInt32 = CTypeInfo(CTypeInfo::Type::kInt32); |
736 | | static constexpr CTypeInfo kTypeInfoFloat64 = |
737 | | CTypeInfo(CTypeInfo::Type::kFloat64); |
738 | | |
739 | | /** |
740 | | * Copies the contents of this JavaScript array to a C++ buffer with |
741 | | * a given max_length. A CTypeInfo is passed as an argument, |
742 | | * instructing different rules for conversion (e.g. restricted float/double). |
743 | | * The element type T of the destination array must match the C type |
744 | | * corresponding to the CTypeInfo (specified by CTypeInfoTraits). |
745 | | * If the array length is larger than max_length or the array is of |
746 | | * unsupported type, the operation will fail, returning false. Generally, an |
747 | | * array which contains objects, undefined, null or anything not convertible |
748 | | * to the requested destination type, is considered unsupported. The operation |
749 | | * returns true on success. `type_info` will be used for conversions. |
750 | | */ |
751 | | template <CTypeInfo::Identifier type_info_id, typename T> |
752 | | bool V8_EXPORT V8_WARN_UNUSED_RESULT TryToCopyAndConvertArrayToCppBuffer( |
753 | | Local<Array> src, T* dst, uint32_t max_length); |
754 | | |
755 | | template <> |
756 | | bool V8_EXPORT V8_WARN_UNUSED_RESULT |
757 | | TryToCopyAndConvertArrayToCppBuffer<CTypeInfoBuilder<int32_t>::Build().GetId(), |
758 | | int32_t>(Local<Array> src, int32_t* dst, |
759 | | uint32_t max_length); |
760 | | |
761 | | template <> |
762 | | bool V8_EXPORT V8_WARN_UNUSED_RESULT |
763 | | TryToCopyAndConvertArrayToCppBuffer<CTypeInfoBuilder<uint32_t>::Build().GetId(), |
764 | | uint32_t>(Local<Array> src, uint32_t* dst, |
765 | | uint32_t max_length); |
766 | | |
767 | | template <> |
768 | | bool V8_EXPORT V8_WARN_UNUSED_RESULT |
769 | | TryToCopyAndConvertArrayToCppBuffer<CTypeInfoBuilder<float>::Build().GetId(), |
770 | | float>(Local<Array> src, float* dst, |
771 | | uint32_t max_length); |
772 | | |
773 | | template <> |
774 | | bool V8_EXPORT V8_WARN_UNUSED_RESULT |
775 | | TryToCopyAndConvertArrayToCppBuffer<CTypeInfoBuilder<double>::Build().GetId(), |
776 | | double>(Local<Array> src, double* dst, |
777 | | uint32_t max_length); |
778 | | |
779 | | constexpr v8::ExternalPointerTypeTag kFastAPIPointerTag = |
780 | | V8_EXTERNAL_POINTER_TAG_COUNT - 1; |
781 | | |
782 | | } // namespace v8 |
783 | | |
784 | | #endif // INCLUDE_V8_FAST_API_CALLS_H_ |