/src/node/deps/v8/include/v8-internal.h
Line  | Count  | Source  | 
1  |  | // Copyright 2018 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_INTERNAL_H_  | 
6  |  | #define INCLUDE_V8_INTERNAL_H_  | 
7  |  |  | 
8  |  | #include <stddef.h>  | 
9  |  | #include <stdint.h>  | 
10  |  | #include <string.h>  | 
11  |  |  | 
12  |  | #include <atomic>  | 
13  |  | #include <iterator>  | 
14  |  | #include <limits>  | 
15  |  | #include <memory>  | 
16  |  | #include <optional>  | 
17  |  | #include <type_traits>  | 
18  |  |  | 
19  |  | #include "v8config.h"  // NOLINT(build/include_directory)  | 
20  |  |  | 
21  |  | // TODO(pkasting): Use <compare>/spaceship unconditionally after dropping  | 
22  |  | // support for old libstdc++ versions.  | 
23  |  | #if __has_include(<version>)  | 
24  |  | #include <version>  | 
25  |  | #endif  | 
26  |  | #if defined(__cpp_lib_three_way_comparison) &&   \  | 
27  |  |     __cpp_lib_three_way_comparison >= 201711L && \  | 
28  |  |     defined(__cpp_lib_concepts) && __cpp_lib_concepts >= 202002L  | 
29  |  | #include <compare>  | 
30  |  | #include <concepts>  | 
31  |  |  | 
32  |  | #define V8_HAVE_SPACESHIP_OPERATOR 1  | 
33  |  | #else  | 
34  |  | #define V8_HAVE_SPACESHIP_OPERATOR 0  | 
35  |  | #endif  | 
36  |  |  | 
37  |  | namespace v8 { | 
38  |  |  | 
39  |  | class Array;  | 
40  |  | class Context;  | 
41  |  | class Data;  | 
42  |  | class Isolate;  | 
43  |  |  | 
44  |  | namespace internal { | 
45  |  |  | 
46  |  | class Heap;  | 
47  |  | class LocalHeap;  | 
48  |  | class Isolate;  | 
49  |  | class IsolateGroup;  | 
50  |  | class LocalIsolate;  | 
51  |  |  | 
52  |  | typedef uintptr_t Address;  | 
53  |  | static constexpr Address kNullAddress = 0;  | 
54  |  |  | 
55  |  | constexpr int KB = 1024;  | 
56  |  | constexpr int MB = KB * 1024;  | 
57  |  | constexpr int GB = MB * 1024;  | 
58  |  | #ifdef V8_TARGET_ARCH_X64  | 
59  |  | constexpr size_t TB = size_t{GB} * 1024; | 
60  |  | #endif  | 
61  |  |  | 
62  |  | /**  | 
63  |  |  * Configuration of tagging scheme.  | 
64  |  |  */  | 
65  |  | const int kApiSystemPointerSize = sizeof(void*);  | 
66  |  | const int kApiDoubleSize = sizeof(double);  | 
67  |  | const int kApiInt32Size = sizeof(int32_t);  | 
68  |  | const int kApiInt64Size = sizeof(int64_t);  | 
69  |  | const int kApiSizetSize = sizeof(size_t);  | 
70  |  |  | 
71  |  | // Tag information for HeapObject.  | 
72  |  | const int kHeapObjectTag = 1;  | 
73  |  | const int kWeakHeapObjectTag = 3;  | 
74  |  | const int kHeapObjectTagSize = 2;  | 
75  |  | const intptr_t kHeapObjectTagMask = (1 << kHeapObjectTagSize) - 1;  | 
76  |  | const intptr_t kHeapObjectReferenceTagMask = 1 << (kHeapObjectTagSize - 1);  | 
77  |  |  | 
78  |  | // Tag information for fowarding pointers stored in object headers.  | 
79  |  | // 0b00 at the lowest 2 bits in the header indicates that the map word is a  | 
80  |  | // forwarding pointer.  | 
81  |  | const int kForwardingTag = 0;  | 
82  |  | const int kForwardingTagSize = 2;  | 
83  |  | const intptr_t kForwardingTagMask = (1 << kForwardingTagSize) - 1;  | 
84  |  |  | 
85  |  | // Tag information for Smi.  | 
86  |  | const int kSmiTag = 0;  | 
87  |  | const int kSmiTagSize = 1;  | 
88  |  | const intptr_t kSmiTagMask = (1 << kSmiTagSize) - 1;  | 
89  |  |  | 
90  |  | template <size_t tagged_ptr_size>  | 
91  |  | struct SmiTagging;  | 
92  |  |  | 
93  |  | constexpr intptr_t kIntptrAllBitsSet = intptr_t{-1}; | 
94  |  | constexpr uintptr_t kUintptrAllBitsSet =  | 
95  |  |     static_cast<uintptr_t>(kIntptrAllBitsSet);  | 
96  |  |  | 
97  |  | // Smi constants for systems where tagged pointer is a 32-bit value.  | 
98  |  | template <>  | 
99  |  | struct SmiTagging<4> { | 
100  |  |   enum { kSmiShiftSize = 0, kSmiValueSize = 31 }; | 
101  |  |  | 
102  |  |   static constexpr intptr_t kSmiMinValue =  | 
103  |  |       static_cast<intptr_t>(kUintptrAllBitsSet << (kSmiValueSize - 1));  | 
104  |  |   static constexpr intptr_t kSmiMaxValue = -(kSmiMinValue + 1);  | 
105  |  |  | 
106  | 0  |   V8_INLINE static constexpr int SmiToInt(Address value) { | 
107  | 0  |     int shift_bits = kSmiTagSize + kSmiShiftSize;  | 
108  | 0  |     // Truncate and shift down (requires >> to be sign extending).  | 
109  | 0  |     return static_cast<int32_t>(static_cast<uint32_t>(value)) >> shift_bits;  | 
110  | 0  |   }  | 
111  |  |  | 
112  |  |   template <class T, typename std::enable_if_t<std::is_integral_v<T> &&  | 
113  |  |                                                std::is_signed_v<T>>* = nullptr>  | 
114  |  |   V8_INLINE static constexpr bool IsValidSmi(T value) { | 
115  |  |     // Is value in range [kSmiMinValue, kSmiMaxValue].  | 
116  |  |     // Use unsigned operations in order to avoid undefined behaviour in case of  | 
117  |  |     // signed integer overflow.  | 
118  |  |     return (static_cast<uintptr_t>(value) -  | 
119  |  |             static_cast<uintptr_t>(kSmiMinValue)) <=  | 
120  |  |            (static_cast<uintptr_t>(kSmiMaxValue) -  | 
121  |  |             static_cast<uintptr_t>(kSmiMinValue));  | 
122  |  |   }  | 
123  |  |  | 
124  |  |   template <class T,  | 
125  |  |             typename std::enable_if_t<std::is_integral_v<T> &&  | 
126  |  |                                       std::is_unsigned_v<T>>* = nullptr>  | 
127  |  |   V8_INLINE static constexpr bool IsValidSmi(T value) { | 
128  |  |     static_assert(kSmiMaxValue <= std::numeric_limits<uintptr_t>::max());  | 
129  |  |     return value <= static_cast<uintptr_t>(kSmiMaxValue);  | 
130  |  |   }  | 
131  |  |  | 
132  |  |   // Same as the `intptr_t` version but works with int64_t on 32-bit builds  | 
133  |  |   // without slowing down anything else.  | 
134  | 0  |   V8_INLINE static constexpr bool IsValidSmi(int64_t value) { | 
135  | 0  |     return (static_cast<uint64_t>(value) -  | 
136  | 0  |             static_cast<uint64_t>(kSmiMinValue)) <=  | 
137  | 0  |            (static_cast<uint64_t>(kSmiMaxValue) -  | 
138  | 0  |             static_cast<uint64_t>(kSmiMinValue));  | 
139  | 0  |   }  | 
140  |  |  | 
141  | 0  |   V8_INLINE static constexpr bool IsValidSmi(uint64_t value) { | 
142  | 0  |     static_assert(kSmiMaxValue <= std::numeric_limits<uint64_t>::max());  | 
143  | 0  |     return value <= static_cast<uint64_t>(kSmiMaxValue);  | 
144  | 0  |   }  | 
145  |  | };  | 
146  |  |  | 
147  |  | // Smi constants for systems where tagged pointer is a 64-bit value.  | 
148  |  | template <>  | 
149  |  | struct SmiTagging<8> { | 
150  |  |   enum { kSmiShiftSize = 31, kSmiValueSize = 32 }; | 
151  |  |  | 
152  |  |   static constexpr intptr_t kSmiMinValue =  | 
153  |  |       static_cast<intptr_t>(kUintptrAllBitsSet << (kSmiValueSize - 1));  | 
154  |  |   static constexpr intptr_t kSmiMaxValue = -(kSmiMinValue + 1);  | 
155  |  |  | 
156  | 4  |   V8_INLINE static constexpr int SmiToInt(Address value) { | 
157  | 4  |     int shift_bits = kSmiTagSize + kSmiShiftSize;  | 
158  |  |     // Shift down and throw away top 32 bits.  | 
159  | 4  |     return static_cast<int>(static_cast<intptr_t>(value) >> shift_bits);  | 
160  | 4  |   }  | 
161  |  |  | 
162  |  |   template <class T, typename std::enable_if_t<std::is_integral_v<T> &&  | 
163  |  |                                                std::is_signed_v<T>>* = nullptr>  | 
164  | 0  |   V8_INLINE static constexpr bool IsValidSmi(T value) { | 
165  |  |     // To be representable as a long smi, the value must be a 32-bit integer.  | 
166  | 0  |     return std::numeric_limits<int32_t>::min() <= value &&  | 
167  | 0  |            value <= std::numeric_limits<int32_t>::max();  | 
168  | 0  |   } Unexecuted instantiation: _ZN2v88internal10SmiTaggingILm8EE10IsValidSmiIsTnPNSt3__19enable_ifIXaasr3stdE13is_integral_vIT_Esr3stdE11is_signed_vIS6_EEvE4typeELPv0EEEbS6_ Unexecuted instantiation: _ZN2v88internal10SmiTaggingILm8EE10IsValidSmiIiTnPNSt3__19enable_ifIXaasr3stdE13is_integral_vIT_Esr3stdE11is_signed_vIS6_EEvE4typeELPv0EEEbS6_ Unexecuted instantiation: _ZN2v88internal10SmiTaggingILm8EE10IsValidSmiIlTnPNSt3__19enable_ifIXaasr3stdE13is_integral_vIT_Esr3stdE11is_signed_vIS6_EEvE4typeELPv0EEEbS6_  | 
169  |  |  | 
170  |  |   template <class T,  | 
171  |  |             typename std::enable_if_t<std::is_integral_v<T> &&  | 
172  |  |                                       std::is_unsigned_v<T>>* = nullptr>  | 
173  | 35  |   V8_INLINE static constexpr bool IsValidSmi(T value) { | 
174  | 35  |     return value <= std::numeric_limits<int32_t>::max();  | 
175  | 35  |   } Unexecuted instantiation: _ZN2v88internal10SmiTaggingILm8EE10IsValidSmiItTnPNSt3__19enable_ifIXaasr3stdE13is_integral_vIT_Esr3stdE13is_unsigned_vIS6_EEvE4typeELPv0EEEbS6_ _ZN2v88internal10SmiTaggingILm8EE10IsValidSmiIjTnPNSt3__19enable_ifIXaasr3stdE13is_integral_vIT_Esr3stdE13is_unsigned_vIS6_EEvE4typeELPv0EEEbS6_ Line  | Count  | Source  |  173  | 35  |   V8_INLINE static constexpr bool IsValidSmi(T value) { |  174  | 35  |     return value <= std::numeric_limits<int32_t>::max();  |  175  | 35  |   }  |  
 Unexecuted instantiation: _ZN2v88internal10SmiTaggingILm8EE10IsValidSmiImTnPNSt3__19enable_ifIXaasr3stdE13is_integral_vIT_Esr3stdE13is_unsigned_vIS6_EEvE4typeELPv0EEEbS6_  | 
176  |  | };  | 
177  |  |  | 
178  |  | #ifdef V8_COMPRESS_POINTERS  | 
179  |  | // See v8:7703 or src/common/ptr-compr-inl.h for details about pointer  | 
180  |  | // compression.  | 
181  |  | constexpr size_t kPtrComprCageReservationSize = size_t{1} << 32; | 
182  |  | constexpr size_t kPtrComprCageBaseAlignment = size_t{1} << 32; | 
183  |  |  | 
184  |  | static_assert(  | 
185  |  |     kApiSystemPointerSize == kApiInt64Size,  | 
186  |  |     "Pointer compression can be enabled only for 64-bit architectures");  | 
187  |  | const int kApiTaggedSize = kApiInt32Size;  | 
188  |  | #else  | 
189  |  | const int kApiTaggedSize = kApiSystemPointerSize;  | 
190  |  | #endif  | 
191  |  |  | 
192  | 0  | constexpr bool PointerCompressionIsEnabled() { | 
193  | 0  |   return kApiTaggedSize != kApiSystemPointerSize;  | 
194  | 0  | }  | 
195  |  |  | 
196  |  | #ifdef V8_31BIT_SMIS_ON_64BIT_ARCH  | 
197  |  | using PlatformSmiTagging = SmiTagging<kApiInt32Size>;  | 
198  |  | #else  | 
199  |  | using PlatformSmiTagging = SmiTagging<kApiTaggedSize>;  | 
200  |  | #endif  | 
201  |  |  | 
202  |  | // TODO(ishell): Consinder adding kSmiShiftBits = kSmiShiftSize + kSmiTagSize  | 
203  |  | // since it's used much more often than the inividual constants.  | 
204  |  | const int kSmiShiftSize = PlatformSmiTagging::kSmiShiftSize;  | 
205  |  | const int kSmiValueSize = PlatformSmiTagging::kSmiValueSize;  | 
206  |  | const int kSmiMinValue = static_cast<int>(PlatformSmiTagging::kSmiMinValue);  | 
207  |  | const int kSmiMaxValue = static_cast<int>(PlatformSmiTagging::kSmiMaxValue);  | 
208  | 0  | constexpr bool SmiValuesAre31Bits() { return kSmiValueSize == 31; } | 
209  | 0  | constexpr bool SmiValuesAre32Bits() { return kSmiValueSize == 32; } | 
210  | 0  | constexpr bool Is64() { return kApiSystemPointerSize == sizeof(int64_t); } | 
211  |  |  | 
212  | 0  | V8_INLINE static constexpr Address IntToSmi(int value) { | 
213  | 0  |   return (static_cast<Address>(value) << (kSmiTagSize + kSmiShiftSize)) |  | 
214  | 0  |          kSmiTag;  | 
215  | 0  | } Unexecuted instantiation: node_snapshot_stub.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: fuzz_common.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: fuzz_sign_verify.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: environment.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: hooks.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: async_wrap.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: base_object.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: cleanup_queue.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: env.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: heap_utils.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: module_wrap.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_api.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_binding.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_blob.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_buffer.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_builtins.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_config.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_config_file.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_constants.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_contextify.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_credentials.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_dir.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_dotenv.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_env_var.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_errors.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_file.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_http_parser.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_http2.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_i18n.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_locks.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_main_instance.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_messaging.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_metadata.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_modules.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_options.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_os.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_perf.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_platform.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_process_events.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_process_methods.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_process_object.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_realm.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_report.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_report_module.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_report_utils.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_sea.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_serdes.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_shadow_realm.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_snapshotable.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_sockaddr.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_stat_watcher.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_symbols.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_task_queue.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_task_runner.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_trace_events.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_types.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_url.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_url_pattern.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_util.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_v8.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_wasi.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_wasm_web_api.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_watchdog.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_worker.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_zlib.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: path.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: permission.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: wasi_permission.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: worker_permission.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: net_permission.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: addon_permission.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: pipe_wrap.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: process_wrap.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: signal_wrap.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: spawn_sync.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: stream_base.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: stream_pipe.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: stream_wrap.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: string_bytes.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: string_decoder.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: tcp_wrap.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: timers.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: agent.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_trace_buffer.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_trace_writer.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: trace_event.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: traced_value.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: tty_wrap.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: udp_wrap.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: util.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: uv.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: quic.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: cppgc_helpers.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_large_page.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_sqlite.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_webstorage.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: inspector_agent.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: inspector_io.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: inspector_profiler.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: inspector_js_api.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: inspector_socket_server.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: main_thread_interface.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_json.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_string.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: runtime_agent.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: tracing_agent.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: worker_agent.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: network_inspector.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: network_agent.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: target_agent.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: worker_inspector.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: io_agent.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: network_resource_manager.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: crypto_context.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: crypto_util.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: crypto_keys.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: crypto_tls.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: crypto_x509.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_crypto.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_javascript.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: Protocol.cpp:v8::internal::IntToSmi(int) Unexecuted instantiation: NodeWorker.cpp:v8::internal::IntToSmi(int) Unexecuted instantiation: NodeTracing.cpp:v8::internal::IntToSmi(int) Unexecuted instantiation: NodeRuntime.cpp:v8::internal::IntToSmi(int) Unexecuted instantiation: Network.cpp:v8::internal::IntToSmi(int) Unexecuted instantiation: Target.cpp:v8::internal::IntToSmi(int) Unexecuted instantiation: IO.cpp:v8::internal::IntToSmi(int) Unexecuted instantiation: async_resource.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: callback.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: embed_helpers.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: encoding.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: exceptions.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: utils.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: async_context_frame.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: cares_wrap.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: compile_cache.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: connect_wrap.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: connection_wrap.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: queue.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: debug_utils.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: encoding_binding.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: fs_event_wrap.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: handle_wrap.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: histogram.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: internal_only_v8.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: js_native_api_v8.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: js_stream.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: js_udp_wrap.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: node_external_reference.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: child_process_permission.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: fs_permission.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: inspector_permission.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: timer_wrap.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: bindingdata.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: endpoint.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: http3.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: session.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: streams.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: tlscontext.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: transportparams.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: inspector_socket.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: crypto_aes.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: crypto_argon2.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: crypto_bio.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: crypto_chacha20_poly1305.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: crypto_common.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: crypto_dsa.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: crypto_hkdf.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: crypto_pbkdf2.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: crypto_sig.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: crypto_timing.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: crypto_cipher.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: crypto_ec.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: crypto_ml_dsa.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: crypto_kem.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: crypto_hmac.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: crypto_kmac.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: crypto_random.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: crypto_rsa.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: crypto_spkac.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: crypto_clienthello.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: crypto_dh.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: crypto_hash.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: crypto_keygen.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: crypto_scrypt.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: cid.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: data.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: logstream.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: packet.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: preferredaddress.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: sessionticket.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: tokens.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: application.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: fuzz_path_resolve.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: fuzz_createPrivateKeyDER.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: fuzz_querystring_parse.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: fuzz_path_relative.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: fuzz_tls_socket_request.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: fuzz_createPrivateKeyJWK.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: fuzz_buffer_equals.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: fuzz_path_toNamespacedPath.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: fuzz_fs_write_open_read.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: fuzz_path_isAbsolute.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: fuzz_zlib_brotliDecompress.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: fuzz_diffieHellmanJWK.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: fuzz_zlib_createBrotliDecompress.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: fuzz_ClientHelloParser.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: fuzz_path_basename.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: fuzz_strings.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: fuzz_string_decoder.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: fuzz_path_parse.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: fuzz_blob.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: fuzz_diffieHellmanPEM.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: fuzz_path_join.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: fuzz_path_extname.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: fuzz_path_format.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: fuzz_path_dirname.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: fuzz_buffer_compare.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: fuzz_stream1.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: fuzz_zlib_gzip_createUnzip.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: fuzz_createPrivateKeyPEM.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: fuzz_fs_write_read_append.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: fuzz_path_normalize.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: fuzz_zlib_brotliCompress.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: fuzz_httpparser1.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: fuzz_x509.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: fuzz_diffieHellmanDER.cc:v8::internal::IntToSmi(int) Unexecuted instantiation: fuzz_buffer_includes.cc:v8::internal::IntToSmi(int)  | 
216  |  |  | 
217  |  | /*  | 
218  |  |  * Sandbox related types, constants, and functions.  | 
219  |  |  */  | 
220  | 0  | constexpr bool SandboxIsEnabled() { | 
221  | 0  | #ifdef V8_ENABLE_SANDBOX  | 
222  | 0  |   return true;  | 
223  | 0  | #else  | 
224  | 0  |   return false;  | 
225  | 0  | #endif  | 
226  | 0  | }  | 
227  |  |  | 
228  |  | // SandboxedPointers are guaranteed to point into the sandbox. This is achieved  | 
229  |  | // for example by storing them as offset rather than as raw pointers.  | 
230  |  | using SandboxedPointer_t = Address;  | 
231  |  |  | 
232  |  | #ifdef V8_ENABLE_SANDBOX  | 
233  |  |  | 
234  |  | // Size of the sandbox, excluding the guard regions surrounding it.  | 
235  |  | #if defined(V8_TARGET_OS_ANDROID)  | 
236  |  | // On Android, most 64-bit devices seem to be configured with only 39 bits of  | 
237  |  | // virtual address space for userspace. As such, limit the sandbox to 128GB (a  | 
238  |  | // quarter of the total available address space).  | 
239  |  | constexpr size_t kSandboxSizeLog2 = 37;  // 128 GB  | 
240  |  | #elif defined(V8_TARGET_OS_IOS)  | 
241  |  | // On iOS, we only get 64 GB of usable virtual address space even with the  | 
242  |  | // "jumbo" extended virtual addressing entitlement. Limit the sandbox size to  | 
243  |  | // 16 GB so that the base address + size for the emulated virtual address space  | 
244  |  | // lies within the 64 GB total virtual address space.  | 
245  |  | constexpr size_t kSandboxSizeLog2 = 34;  // 16 GB  | 
246  |  | #else  | 
247  |  | // Everywhere else use a 1TB sandbox.  | 
248  |  | constexpr size_t kSandboxSizeLog2 = 40;  // 1 TB  | 
249  |  | #endif  // V8_TARGET_OS_ANDROID  | 
250  |  | constexpr size_t kSandboxSize = 1ULL << kSandboxSizeLog2;  | 
251  |  |  | 
252  |  | // Required alignment of the sandbox. For simplicity, we require the  | 
253  |  | // size of the guard regions to be a multiple of this, so that this specifies  | 
254  |  | // the alignment of the sandbox including and excluding surrounding guard  | 
255  |  | // regions. The alignment requirement is due to the pointer compression cage  | 
256  |  | // being located at the start of the sandbox.  | 
257  |  | constexpr size_t kSandboxAlignment = kPtrComprCageBaseAlignment;  | 
258  |  |  | 
259  |  | // Sandboxed pointers are stored inside the heap as offset from the sandbox  | 
260  |  | // base shifted to the left. This way, it is guaranteed that the offset is  | 
261  |  | // smaller than the sandbox size after shifting it to the right again. This  | 
262  |  | // constant specifies the shift amount.  | 
263  |  | constexpr uint64_t kSandboxedPointerShift = 64 - kSandboxSizeLog2;  | 
264  |  |  | 
265  |  | // Size of the guard regions surrounding the sandbox. This assumes a worst-case  | 
266  |  | // scenario of a 32-bit unsigned index used to access an array of 64-bit values  | 
267  |  | // with an additional 4GB (compressed pointer) offset. In particular, accesses  | 
268  |  | // to TypedArrays are effectively computed as  | 
269  |  | // `entry_pointer = array->base + array->offset + index * array->element_size`.  | 
270  |  | // See also https://crbug.com/40070746 for more details.  | 
271  |  | constexpr size_t kSandboxGuardRegionSize = 32ULL * GB + 4ULL * GB;  | 
272  |  |  | 
273  |  | static_assert((kSandboxGuardRegionSize % kSandboxAlignment) == 0,  | 
274  |  |               "The size of the guard regions around the sandbox must be a "  | 
275  |  |               "multiple of its required alignment.");  | 
276  |  |  | 
277  |  | // On OSes where reserving virtual memory is too expensive to reserve the  | 
278  |  | // entire address space backing the sandbox, notably Windows pre 8.1, we create  | 
279  |  | // a partially reserved sandbox that doesn't actually reserve most of the  | 
280  |  | // memory, and so doesn't have the desired security properties as unrelated  | 
281  |  | // memory allocations could end up inside of it, but which still ensures that  | 
282  |  | // objects that should be located inside the sandbox are allocated within  | 
283  |  | // kSandboxSize bytes from the start of the sandbox. The minimum size of the  | 
284  |  | // region that is actually reserved for such a sandbox is specified by this  | 
285  |  | // constant and should be big enough to contain the pointer compression cage as  | 
286  |  | // well as the ArrayBuffer partition.  | 
287  |  | constexpr size_t kSandboxMinimumReservationSize = 8ULL * GB;  | 
288  |  |  | 
289  |  | static_assert(kSandboxMinimumReservationSize > kPtrComprCageReservationSize,  | 
290  |  |               "The minimum reservation size for a sandbox must be larger than "  | 
291  |  |               "the pointer compression cage contained within it.");  | 
292  |  |  | 
293  |  | // The maximum buffer size allowed inside the sandbox. This is mostly dependent  | 
294  |  | // on the size of the guard regions around the sandbox: an attacker must not be  | 
295  |  | // able to construct a buffer that appears larger than the guard regions and  | 
296  |  | // thereby "reach out of" the sandbox.  | 
297  |  | constexpr size_t kMaxSafeBufferSizeForSandbox = 32ULL * GB - 1;  | 
298  |  | static_assert(kMaxSafeBufferSizeForSandbox <= kSandboxGuardRegionSize,  | 
299  |  |               "The maximum allowed buffer size must not be larger than the "  | 
300  |  |               "sandbox's guard regions");  | 
301  |  |  | 
302  |  | constexpr size_t kBoundedSizeShift = 29;  | 
303  |  | static_assert(1ULL << (64 - kBoundedSizeShift) ==  | 
304  |  |                   kMaxSafeBufferSizeForSandbox + 1,  | 
305  |  |               "The maximum size of a BoundedSize must be synchronized with the "  | 
306  |  |               "kMaxSafeBufferSizeForSandbox");  | 
307  |  |  | 
308  |  | #endif  // V8_ENABLE_SANDBOX  | 
309  |  |  | 
310  |  | #ifdef V8_COMPRESS_POINTERS  | 
311  |  |  | 
312  |  | #ifdef V8_TARGET_OS_ANDROID  | 
313  |  | // The size of the virtual memory reservation for an external pointer table.  | 
314  |  | // This determines the maximum number of entries in a table. Using a maximum  | 
315  |  | // size allows omitting bounds checks on table accesses if the indices are  | 
316  |  | // guaranteed (e.g. through shifting) to be below the maximum index. This  | 
317  |  | // value must be a power of two.  | 
318  |  | constexpr size_t kExternalPointerTableReservationSize = 256 * MB;  | 
319  |  |  | 
320  |  | // The external pointer table indices stored in HeapObjects as external  | 
321  |  | // pointers are shifted to the left by this amount to guarantee that they are  | 
322  |  | // smaller than the maximum table size even after the C++ compiler multiplies  | 
323  |  | // them by 8 to be used as indexes into a table of 64 bit pointers.  | 
324  |  | constexpr uint32_t kExternalPointerIndexShift = 7;  | 
325  |  | #else  | 
326  |  | constexpr size_t kExternalPointerTableReservationSize = 512 * MB;  | 
327  |  | constexpr uint32_t kExternalPointerIndexShift = 6;  | 
328  |  | #endif  // V8_TARGET_OS_ANDROID  | 
329  |  |  | 
330  |  | // The maximum number of entries in an external pointer table.  | 
331  |  | constexpr int kExternalPointerTableEntrySize = 8;  | 
332  |  | constexpr int kExternalPointerTableEntrySizeLog2 = 3;  | 
333  |  | constexpr size_t kMaxExternalPointers =  | 
334  |  |     kExternalPointerTableReservationSize / kExternalPointerTableEntrySize;  | 
335  |  | static_assert((1 << (32 - kExternalPointerIndexShift)) == kMaxExternalPointers,  | 
336  |  |               "kExternalPointerTableReservationSize and "  | 
337  |  |               "kExternalPointerIndexShift don't match");  | 
338  |  |  | 
339  |  | #else  // !V8_COMPRESS_POINTERS  | 
340  |  |  | 
341  |  | // Needed for the V8.SandboxedExternalPointersCount histogram.  | 
342  |  | constexpr size_t kMaxExternalPointers = 0;  | 
343  |  |  | 
344  |  | #endif  // V8_COMPRESS_POINTERS  | 
345  |  |  | 
346  |  | constexpr uint64_t kExternalPointerMarkBit = 1ULL << 48;  | 
347  |  | constexpr uint64_t kExternalPointerTagShift = 49;  | 
348  |  | constexpr uint64_t kExternalPointerTagMask = 0x00fe000000000000ULL;  | 
349  |  | constexpr uint64_t kExternalPointerShiftedTagMask =  | 
350  |  |     kExternalPointerTagMask >> kExternalPointerTagShift;  | 
351  |  | static_assert(kExternalPointerShiftedTagMask << kExternalPointerTagShift ==  | 
352  |  |               kExternalPointerTagMask);  | 
353  |  | constexpr uint64_t kExternalPointerTagAndMarkbitMask = 0x00ff000000000000ULL;  | 
354  |  | constexpr uint64_t kExternalPointerPayloadMask = 0xff00ffffffffffffULL;  | 
355  |  |  | 
356  |  | // A ExternalPointerHandle represents a (opaque) reference to an external  | 
357  |  | // pointer that can be stored inside the sandbox. A ExternalPointerHandle has  | 
358  |  | // meaning only in combination with an (active) Isolate as it references an  | 
359  |  | // external pointer stored in the currently active Isolate's  | 
360  |  | // ExternalPointerTable. Internally, an ExternalPointerHandles is simply an  | 
361  |  | // index into an ExternalPointerTable that is shifted to the left to guarantee  | 
362  |  | // that it is smaller than the size of the table.  | 
363  |  | using ExternalPointerHandle = uint32_t;  | 
364  |  |  | 
365  |  | // ExternalPointers point to objects located outside the sandbox. When the V8  | 
366  |  | // sandbox is enabled, these are stored on heap as ExternalPointerHandles,  | 
367  |  | // otherwise they are simply raw pointers.  | 
368  |  | #ifdef V8_ENABLE_SANDBOX  | 
369  |  | using ExternalPointer_t = ExternalPointerHandle;  | 
370  |  | #else  | 
371  |  | using ExternalPointer_t = Address;  | 
372  |  | #endif  | 
373  |  |  | 
374  |  | constexpr ExternalPointer_t kNullExternalPointer = 0;  | 
375  |  | constexpr ExternalPointerHandle kNullExternalPointerHandle = 0;  | 
376  |  |  | 
377  |  | // See `ExternalPointerHandle` for the main documentation. The difference to  | 
378  |  | // `ExternalPointerHandle` is that the handle does not represent an arbitrary  | 
379  |  | // external pointer but always refers to an object managed by `CppHeap`. The  | 
380  |  | // handles are using in combination with a dedicated table for `CppHeap`  | 
381  |  | // references.  | 
382  |  | using CppHeapPointerHandle = uint32_t;  | 
383  |  |  | 
384  |  | // The actual pointer to objects located on the `CppHeap`. When pointer  | 
385  |  | // compression is enabled these pointers are stored as `CppHeapPointerHandle`.  | 
386  |  | // In non-compressed configurations the pointers are simply stored as raw  | 
387  |  | // pointers.  | 
388  |  | #ifdef V8_COMPRESS_POINTERS  | 
389  |  | using CppHeapPointer_t = CppHeapPointerHandle;  | 
390  |  | #else  | 
391  |  | using CppHeapPointer_t = Address;  | 
392  |  | #endif  | 
393  |  |  | 
394  |  | constexpr CppHeapPointer_t kNullCppHeapPointer = 0;  | 
395  |  | constexpr CppHeapPointerHandle kNullCppHeapPointerHandle = 0;  | 
396  |  |  | 
397  |  | constexpr uint64_t kCppHeapPointerMarkBit = 1ULL;  | 
398  |  | constexpr uint64_t kCppHeapPointerTagShift = 1;  | 
399  |  | constexpr uint64_t kCppHeapPointerPayloadShift = 16;  | 
400  |  |  | 
401  |  | #ifdef V8_COMPRESS_POINTERS  | 
402  |  | // CppHeapPointers use a dedicated pointer table. These constants control the  | 
403  |  | // size and layout of the table. See the corresponding constants for the  | 
404  |  | // external pointer table for further details.  | 
405  |  | constexpr size_t kCppHeapPointerTableReservationSize =  | 
406  |  |     kExternalPointerTableReservationSize;  | 
407  |  | constexpr uint32_t kCppHeapPointerIndexShift = kExternalPointerIndexShift;  | 
408  |  |  | 
409  |  | constexpr int kCppHeapPointerTableEntrySize = 8;  | 
410  |  | constexpr int kCppHeapPointerTableEntrySizeLog2 = 3;  | 
411  |  | constexpr size_t kMaxCppHeapPointers =  | 
412  |  |     kCppHeapPointerTableReservationSize / kCppHeapPointerTableEntrySize;  | 
413  |  | static_assert((1 << (32 - kCppHeapPointerIndexShift)) == kMaxCppHeapPointers,  | 
414  |  |               "kCppHeapPointerTableReservationSize and "  | 
415  |  |               "kCppHeapPointerIndexShift don't match");  | 
416  |  |  | 
417  |  | #else  // !V8_COMPRESS_POINTERS  | 
418  |  |  | 
419  |  | // Needed for the V8.SandboxedCppHeapPointersCount histogram.  | 
420  |  | constexpr size_t kMaxCppHeapPointers = 0;  | 
421  |  |  | 
422  |  | #endif  // V8_COMPRESS_POINTERS  | 
423  |  |  | 
424  |  | // The number of tags reserved for embedder data stored in internal fields. The  | 
425  |  | // value is picked arbitrarily, and is slightly larger than the number of tags  | 
426  |  | // currently used in Chrome.  | 
427  |  | #define V8_EMBEDDER_DATA_TAG_COUNT 15  | 
428  |  |  | 
429  |  | // Generic tag range struct to represent ranges of type tags.  | 
430  |  | //  | 
431  |  | // When referencing external objects via pointer tables, type tags are  | 
432  |  | // frequently necessary to guarantee type safety for the external objects. When  | 
433  |  | // support for subtyping is necessary, range-based type checks are used in  | 
434  |  | // which all subtypes of a given supertype use contiguous tags. This struct can  | 
435  |  | // then be used to represent such a type range.  | 
436  |  | //  | 
437  |  | // In addition, there is an option for performance tweaks: if the size of the  | 
438  |  | // type range corresponding to a supertype is a power of two and starts at a  | 
439  |  | // power of two (e.g. [0x100, 0x13f]), then the compiler can often optimize  | 
440  |  | // the type check to use even fewer instructions (essentially replace a AND +  | 
441  |  | // SUB with a single AND).  | 
442  |  | //  | 
443  |  | template <typename Tag>  | 
444  |  | struct TagRange { | 
445  |  |   static_assert(std::is_enum_v<Tag> &&  | 
446  |  |                     std::is_same_v<std::underlying_type_t<Tag>, uint16_t>,  | 
447  |  |                 "Tag parameter must be an enum with base type uint16_t");  | 
448  |  |  | 
449  |  |   // Construct the inclusive tag range [first, last].  | 
450  |  |   constexpr TagRange(Tag first, Tag last) : first(first), last(last) {} | 
451  |  |  | 
452  |  |   // Construct a tag range consisting of a single tag.  | 
453  |  |   //  | 
454  |  |   // A single tag is always implicitly convertible to a tag range. This greatly  | 
455  |  |   // increases readability as most of the time, the exact tag of a field is  | 
456  |  |   // known and so no tag range needs to explicitly be created for it.  | 
457  |  |   constexpr TagRange(Tag tag)  // NOLINT(runtime/explicit)  | 
458  | 5.05M  |       : first(tag), last(tag) {} | 
459  |  |  | 
460  |  |   // Construct an empty tag range.  | 
461  |  |   constexpr TagRange() : TagRange(static_cast<Tag>(0)) {} | 
462  |  |  | 
463  |  |   // A tag range is considered empty if it only contains the null tag.  | 
464  |  |   constexpr bool IsEmpty() const { return first == 0 && last == 0; } | 
465  |  |  | 
466  |  |   constexpr size_t Size() const { | 
467  |  |     if (IsEmpty()) { | 
468  |  |       return 0;  | 
469  |  |     } else { | 
470  |  |       return last - first + 1;  | 
471  |  |     }  | 
472  |  |   }  | 
473  |  |  | 
474  | 0  |   constexpr bool Contains(Tag tag) const { | 
475  | 0  |     // Need to perform the math with uint32_t. Otherwise, the uint16_ts would  | 
476  | 0  |     // be promoted to (signed) int, allowing the compiler to (wrongly) assume  | 
477  | 0  |     // that an underflow cannot happen as that would be undefined behavior.  | 
478  | 0  |     return static_cast<uint32_t>(tag) - first <=  | 
479  | 0  |            static_cast<uint32_t>(last) - first;  | 
480  | 0  |   }  | 
481  |  |  | 
482  | 0  |   constexpr bool Contains(TagRange tag_range) const { | 
483  | 0  |     return tag_range.first >= first && tag_range.last <= last;  | 
484  | 0  |   }  | 
485  |  |  | 
486  |  |   constexpr bool operator==(const TagRange other) const { | 
487  |  |     return first == other.first && last == other.last;  | 
488  |  |   }  | 
489  |  |  | 
490  |  |   constexpr size_t hash_value() const { | 
491  |  |     static_assert(std::is_same_v<std::underlying_type_t<Tag>, uint16_t>);  | 
492  |  |     return (static_cast<size_t>(first) << 16) | last;  | 
493  |  |   }  | 
494  |  |  | 
495  |  |   // Internally we represent tag ranges as half-open ranges [first, last).  | 
496  |  |   const Tag first;  | 
497  |  |   const Tag last;  | 
498  |  | };  | 
499  |  |  | 
500  |  | //  | 
501  |  | // External Pointers.  | 
502  |  | //  | 
503  |  | // When the sandbox is enabled, external pointers are stored in an external  | 
504  |  | // pointer table and are referenced from HeapObjects through an index (a  | 
505  |  | // "handle"). When stored in the table, the pointers are tagged with per-type  | 
506  |  | // tags to prevent type confusion attacks between different external objects.  | 
507  |  | //  | 
508  |  | // When loading an external pointer, a range of allowed tags can be specified.  | 
509  |  | // This way, type hierarchies can be supported. The main requirement for that  | 
510  |  | // is that all (transitive) child classes of a given parent class have type ids  | 
511  |  | // in the same range, and that there are no unrelated types in that range. For  | 
512  |  | // more details about how to assign type tags to types, see the TagRange class.  | 
513  |  | //  | 
514  |  | // The external pointer sandboxing mechanism ensures that every access to an  | 
515  |  | // external pointer field will result in a valid pointer of the expected type  | 
516  |  | // even in the presence of an attacker able to corrupt memory inside the  | 
517  |  | // sandbox. However, if any data related to the external object is stored  | 
518  |  | // inside the sandbox it may still be corrupted and so must be validated before  | 
519  |  | // use or moved into the external object. Further, an attacker will always be  | 
520  |  | // able to substitute different external pointers of the same type for each  | 
521  |  | // other. Therefore, code using external pointers must be written in a  | 
522  |  | // "substitution-safe" way, i.e. it must always be possible to substitute  | 
523  |  | // external pointers of the same type without causing memory corruption outside  | 
524  |  | // of the sandbox. Generally this is achieved by referencing any group of  | 
525  |  | // related external objects through a single external pointer.  | 
526  |  | //  | 
527  |  | // Currently we use bit 62 for the marking bit which should always be unused as  | 
528  |  | // it's part of the non-canonical address range. When Arm's top-byte ignore  | 
529  |  | // (TBI) is enabled, this bit will be part of the ignored byte, and we assume  | 
530  |  | // that the Embedder is not using this byte (really only this one bit) for any  | 
531  |  | // other purpose. This bit also does not collide with the memory tagging  | 
532  |  | // extension (MTE) which would use bits [56, 60).  | 
533  |  | //  | 
534  |  | // External pointer tables are also available even when the sandbox is off but  | 
535  |  | // pointer compression is on. In that case, the mechanism can be used to ease  | 
536  |  | // alignment requirements as it turns unaligned 64-bit raw pointers into  | 
537  |  | // aligned 32-bit indices. To "opt-in" to the external pointer table mechanism  | 
538  |  | // for this purpose, instead of using the ExternalPointer accessors one needs to  | 
539  |  | // use ExternalPointerHandles directly and use them to access the pointers in an  | 
540  |  | // ExternalPointerTable.  | 
541  |  | //  | 
542  |  | // The tag is currently in practice limited to 15 bits since it needs to fit  | 
543  |  | // together with a marking bit into the unused parts of a pointer.  | 
544  |  | enum ExternalPointerTag : uint16_t { | 
545  |  |   kFirstExternalPointerTag = 0,  | 
546  |  |   kExternalPointerNullTag = 0,  | 
547  |  |  | 
548  |  |   // When adding new tags, please ensure that the code using these tags is  | 
549  |  |   // "substitution-safe", i.e. still operate safely if external pointers of the  | 
550  |  |   // same type are swapped by an attacker. See comment above for more details.  | 
551  |  |  | 
552  |  |   // Shared external pointers are owned by the shared Isolate and stored in the  | 
553  |  |   // shared external pointer table associated with that Isolate, where they can  | 
554  |  |   // be accessed from multiple threads at the same time. The objects referenced  | 
555  |  |   // in this way must therefore always be thread-safe.  | 
556  |  |   kFirstSharedExternalPointerTag,  | 
557  |  |   kWaiterQueueNodeTag = kFirstSharedExternalPointerTag,  | 
558  |  |   kExternalStringResourceTag,  | 
559  |  |   kExternalStringResourceDataTag,  | 
560  |  |   kLastSharedExternalPointerTag = kExternalStringResourceDataTag,  | 
561  |  |  | 
562  |  |   // External pointers using these tags are kept in a per-Isolate external  | 
563  |  |   // pointer table and can only be accessed when this Isolate is active.  | 
564  |  |   kNativeContextMicrotaskQueueTag,  | 
565  |  |  | 
566  |  |   // Placeholders for embedder data.  | 
567  |  |   kFirstEmbedderDataTag,  | 
568  |  |   kLastEmbedderDataTag = kFirstEmbedderDataTag + V8_EMBEDDER_DATA_TAG_COUNT - 1,  | 
569  |  |   // This tag essentially stands for a `void*` pointer in the V8 API, and it is  | 
570  |  |   // the Embedder's responsibility to ensure type safety (against substitution)  | 
571  |  |   // and lifetime validity of these objects.  | 
572  |  |   kExternalObjectValueTag,  | 
573  |  |   kFirstMaybeReadOnlyExternalPointerTag,  | 
574  |  |   kFunctionTemplateInfoCallbackTag = kFirstMaybeReadOnlyExternalPointerTag,  | 
575  |  |   kAccessorInfoGetterTag,  | 
576  |  |   kAccessorInfoSetterTag,  | 
577  |  |  | 
578  |  |   // InterceptorInfo external pointers.  | 
579  |  |   kFirstInterceptorInfoExternalPointerTag,  | 
580  |  |   kApiNamedPropertyQueryCallbackTag = kFirstInterceptorInfoExternalPointerTag,  | 
581  |  |   kApiNamedPropertyGetterCallbackTag,  | 
582  |  |   kApiNamedPropertySetterCallbackTag,  | 
583  |  |   kApiNamedPropertyDescriptorCallbackTag,  | 
584  |  |   kApiNamedPropertyDefinerCallbackTag,  | 
585  |  |   kApiNamedPropertyDeleterCallbackTag,  | 
586  |  |   kApiNamedPropertyEnumeratorCallbackTag,  | 
587  |  |   kApiIndexedPropertyQueryCallbackTag,  | 
588  |  |   kApiIndexedPropertyGetterCallbackTag,  | 
589  |  |   kApiIndexedPropertySetterCallbackTag,  | 
590  |  |   kApiIndexedPropertyDescriptorCallbackTag,  | 
591  |  |   kApiIndexedPropertyDefinerCallbackTag,  | 
592  |  |   kApiIndexedPropertyDeleterCallbackTag,  | 
593  |  |   kApiIndexedPropertyEnumeratorCallbackTag,  | 
594  |  |   kLastInterceptorInfoExternalPointerTag =  | 
595  |  |       kApiIndexedPropertyEnumeratorCallbackTag,  | 
596  |  |  | 
597  |  |   kLastMaybeReadOnlyExternalPointerTag = kLastInterceptorInfoExternalPointerTag,  | 
598  |  |  | 
599  |  |   kWasmStackMemoryTag,  | 
600  |  |  | 
601  |  |   // Foreigns  | 
602  |  |   kFirstForeignExternalPointerTag,  | 
603  |  |   kGenericForeignTag = kFirstForeignExternalPointerTag,  | 
604  |  |  | 
605  |  |   kApiAccessCheckCallbackTag,  | 
606  |  |   kApiAbortScriptExecutionCallbackTag,  | 
607  |  |   kSyntheticModuleTag,  | 
608  |  |   kMicrotaskCallbackTag,  | 
609  |  |   kMicrotaskCallbackDataTag,  | 
610  |  |   kCFunctionTag,  | 
611  |  |   kCFunctionInfoTag,  | 
612  |  |   kMessageListenerTag,  | 
613  |  |   kWaiterQueueForeignTag,  | 
614  |  |  | 
615  |  |   // Managed  | 
616  |  |   kFirstManagedResourceTag,  | 
617  |  |   kFirstManagedExternalPointerTag = kFirstManagedResourceTag,  | 
618  |  |   kGenericManagedTag = kFirstManagedExternalPointerTag,  | 
619  |  |   kWasmWasmStreamingTag,  | 
620  |  |   kWasmFuncDataTag,  | 
621  |  |   kWasmManagedDataTag,  | 
622  |  |   kWasmNativeModuleTag,  | 
623  |  |   kIcuBreakIteratorTag,  | 
624  |  |   kIcuUnicodeStringTag,  | 
625  |  |   kIcuListFormatterTag,  | 
626  |  |   kIcuLocaleTag,  | 
627  |  |   kIcuSimpleDateFormatTag,  | 
628  |  |   kIcuDateIntervalFormatTag,  | 
629  |  |   kIcuRelativeDateTimeFormatterTag,  | 
630  |  |   kIcuLocalizedNumberFormatterTag,  | 
631  |  |   kIcuPluralRulesTag,  | 
632  |  |   kIcuCollatorTag,  | 
633  |  |   kTemporalDurationTag,  | 
634  |  |   kTemporalInstantTag,  | 
635  |  |   kTemporalPlainDateTag,  | 
636  |  |   kTemporalPlainTimeTag,  | 
637  |  |   kTemporalPlainDateTimeTag,  | 
638  |  |   kTemporalPlainYearMonthTag,  | 
639  |  |   kTemporalPlainMonthDayTag,  | 
640  |  |   kTemporalZonedDateTimeTag,  | 
641  |  |   kDisplayNamesInternalTag,  | 
642  |  |   kD8WorkerTag,  | 
643  |  |   kD8ModuleEmbedderDataTag,  | 
644  |  |   kLastForeignExternalPointerTag = kD8ModuleEmbedderDataTag,  | 
645  |  |   kLastManagedExternalPointerTag = kLastForeignExternalPointerTag,  | 
646  |  |   // External resources whose lifetime is tied to their entry in the external  | 
647  |  |   // pointer table but which are not referenced via a Managed  | 
648  |  |   kArrayBufferExtensionTag,  | 
649  |  |   kLastManagedResourceTag = kArrayBufferExtensionTag,  | 
650  |  |  | 
651  |  |   kExternalPointerZappedEntryTag = 0x7d,  | 
652  |  |   kExternalPointerEvacuationEntryTag = 0x7e,  | 
653  |  |   kExternalPointerFreeEntryTag = 0x7f,  | 
654  |  |   // The tags are limited to 7 bits, so the last tag is 0x7f.  | 
655  |  |   kLastExternalPointerTag = 0x7f,  | 
656  |  | };  | 
657  |  |  | 
658  |  | using ExternalPointerTagRange = TagRange<ExternalPointerTag>;  | 
659  |  |  | 
660  |  | constexpr ExternalPointerTagRange kAnyExternalPointerTagRange(  | 
661  |  |     kFirstExternalPointerTag, kLastExternalPointerTag);  | 
662  |  | constexpr ExternalPointerTagRange kAnySharedExternalPointerTagRange(  | 
663  |  |     kFirstSharedExternalPointerTag, kLastSharedExternalPointerTag);  | 
664  |  | constexpr ExternalPointerTagRange kAnyForeignExternalPointerTagRange(  | 
665  |  |     kFirstForeignExternalPointerTag, kLastForeignExternalPointerTag);  | 
666  |  | constexpr ExternalPointerTagRange kAnyInterceptorInfoExternalPointerTagRange(  | 
667  |  |     kFirstInterceptorInfoExternalPointerTag,  | 
668  |  |     kLastInterceptorInfoExternalPointerTag);  | 
669  |  | constexpr ExternalPointerTagRange kAnyManagedExternalPointerTagRange(  | 
670  |  |     kFirstManagedExternalPointerTag, kLastManagedExternalPointerTag);  | 
671  |  | constexpr ExternalPointerTagRange kAnyMaybeReadOnlyExternalPointerTagRange(  | 
672  |  |     kFirstMaybeReadOnlyExternalPointerTag,  | 
673  |  |     kLastMaybeReadOnlyExternalPointerTag);  | 
674  |  | constexpr ExternalPointerTagRange kAnyManagedResourceExternalPointerTag(  | 
675  |  |     kFirstManagedResourceTag, kLastManagedResourceTag);  | 
676  |  |  | 
677  |  | // True if the external pointer must be accessed from the shared isolate's  | 
678  |  | // external pointer table.  | 
679  |  | V8_INLINE static constexpr bool IsSharedExternalPointerType(  | 
680  | 0  |     ExternalPointerTagRange tag_range) { | 
681  | 0  |   return kAnySharedExternalPointerTagRange.Contains(tag_range);  | 
682  | 0  | } Unexecuted instantiation: node_snapshot_stub.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_common.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_sign_verify.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: environment.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: hooks.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: async_wrap.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: base_object.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: cleanup_queue.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: env.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: heap_utils.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: module_wrap.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_api.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_binding.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_blob.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_buffer.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_builtins.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_config.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_config_file.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_constants.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_contextify.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_credentials.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_dir.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_dotenv.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_env_var.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_errors.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_file.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_http_parser.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_http2.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_i18n.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_locks.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_main_instance.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_messaging.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_metadata.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_modules.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_options.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_os.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_perf.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_platform.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_process_events.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_process_methods.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_process_object.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_realm.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_report.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_report_module.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_report_utils.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_sea.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_serdes.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_shadow_realm.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_snapshotable.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_sockaddr.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_stat_watcher.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_symbols.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_task_queue.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_task_runner.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_trace_events.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_types.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_url.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_url_pattern.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_util.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_v8.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_wasi.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_wasm_web_api.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_watchdog.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_worker.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_zlib.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: path.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: permission.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: wasi_permission.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: worker_permission.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: net_permission.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: addon_permission.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: pipe_wrap.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: process_wrap.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: signal_wrap.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: spawn_sync.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: stream_base.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: stream_pipe.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: stream_wrap.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: string_bytes.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: string_decoder.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: tcp_wrap.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: timers.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: agent.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_trace_buffer.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_trace_writer.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: trace_event.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: traced_value.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: tty_wrap.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: udp_wrap.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: util.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: uv.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: quic.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: cppgc_helpers.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_large_page.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_sqlite.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_webstorage.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: inspector_agent.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: inspector_io.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: inspector_profiler.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: inspector_js_api.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: inspector_socket_server.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: main_thread_interface.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_json.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_string.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: runtime_agent.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: tracing_agent.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: worker_agent.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: network_inspector.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: network_agent.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: target_agent.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: worker_inspector.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: io_agent.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: network_resource_manager.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_context.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_util.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_keys.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_tls.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_x509.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_crypto.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_javascript.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: Protocol.cpp:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: NodeWorker.cpp:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: NodeTracing.cpp:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: NodeRuntime.cpp:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: Network.cpp:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: Target.cpp:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: IO.cpp:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: async_resource.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: callback.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: embed_helpers.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: encoding.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: exceptions.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: utils.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: async_context_frame.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: cares_wrap.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: compile_cache.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: connect_wrap.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: connection_wrap.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: queue.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: debug_utils.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: encoding_binding.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fs_event_wrap.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: handle_wrap.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: histogram.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: internal_only_v8.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: js_native_api_v8.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: js_stream.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: js_udp_wrap.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_external_reference.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: child_process_permission.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fs_permission.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: inspector_permission.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: timer_wrap.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: bindingdata.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: endpoint.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: http3.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: session.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: streams.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: tlscontext.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: transportparams.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: inspector_socket.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_aes.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_argon2.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_bio.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_chacha20_poly1305.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_common.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_dsa.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_hkdf.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_pbkdf2.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_sig.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_timing.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_cipher.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_ec.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_ml_dsa.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_kem.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_hmac.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_kmac.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_random.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_rsa.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_spkac.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_clienthello.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_dh.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_hash.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_keygen.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_scrypt.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: cid.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: data.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: logstream.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: packet.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: preferredaddress.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: sessionticket.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: tokens.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: application.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_resolve.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_createPrivateKeyDER.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_querystring_parse.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_relative.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_tls_socket_request.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_createPrivateKeyJWK.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_buffer_equals.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_toNamespacedPath.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_fs_write_open_read.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_isAbsolute.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_zlib_brotliDecompress.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_diffieHellmanJWK.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_zlib_createBrotliDecompress.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_ClientHelloParser.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_basename.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_strings.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_string_decoder.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_parse.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_blob.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_diffieHellmanPEM.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_join.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_extname.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_format.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_dirname.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_buffer_compare.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_stream1.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_zlib_gzip_createUnzip.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_createPrivateKeyPEM.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_fs_write_read_append.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_normalize.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_zlib_brotliCompress.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_httpparser1.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_x509.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_diffieHellmanDER.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_buffer_includes.cc:v8::internal::IsSharedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>)  | 
683  |  |  | 
684  |  | // True if the external pointer may live in a read-only object, in which case  | 
685  |  | // the table entry will be in the shared read-only segment of the external  | 
686  |  | // pointer table.  | 
687  |  | V8_INLINE static constexpr bool IsMaybeReadOnlyExternalPointerType(  | 
688  | 0  |     ExternalPointerTagRange tag_range) { | 
689  | 0  |   return kAnyMaybeReadOnlyExternalPointerTagRange.Contains(tag_range);  | 
690  | 0  | } Unexecuted instantiation: node_snapshot_stub.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_common.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_sign_verify.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: environment.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: hooks.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: async_wrap.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: base_object.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: cleanup_queue.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: env.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: heap_utils.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: module_wrap.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_api.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_binding.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_blob.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_buffer.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_builtins.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_config.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_config_file.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_constants.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_contextify.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_credentials.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_dir.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_dotenv.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_env_var.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_errors.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_file.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_http_parser.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_http2.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_i18n.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_locks.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_main_instance.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_messaging.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_metadata.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_modules.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_options.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_os.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_perf.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_platform.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_process_events.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_process_methods.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_process_object.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_realm.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_report.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_report_module.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_report_utils.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_sea.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_serdes.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_shadow_realm.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_snapshotable.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_sockaddr.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_stat_watcher.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_symbols.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_task_queue.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_task_runner.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_trace_events.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_types.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_url.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_url_pattern.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_util.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_v8.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_wasi.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_wasm_web_api.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_watchdog.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_worker.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_zlib.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: path.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: permission.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: wasi_permission.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: worker_permission.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: net_permission.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: addon_permission.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: pipe_wrap.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: process_wrap.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: signal_wrap.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: spawn_sync.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: stream_base.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: stream_pipe.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: stream_wrap.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: string_bytes.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: string_decoder.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: tcp_wrap.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: timers.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: agent.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_trace_buffer.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_trace_writer.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: trace_event.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: traced_value.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: tty_wrap.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: udp_wrap.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: util.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: uv.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: quic.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: cppgc_helpers.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_large_page.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_sqlite.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_webstorage.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: inspector_agent.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: inspector_io.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: inspector_profiler.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: inspector_js_api.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: inspector_socket_server.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: main_thread_interface.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_json.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_string.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: runtime_agent.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: tracing_agent.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: worker_agent.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: network_inspector.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: network_agent.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: target_agent.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: worker_inspector.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: io_agent.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: network_resource_manager.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_context.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_util.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_keys.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_tls.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_x509.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_crypto.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_javascript.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: Protocol.cpp:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: NodeWorker.cpp:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: NodeTracing.cpp:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: NodeRuntime.cpp:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: Network.cpp:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: Target.cpp:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: IO.cpp:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: async_resource.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: callback.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: embed_helpers.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: encoding.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: exceptions.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: utils.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: async_context_frame.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: cares_wrap.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: compile_cache.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: connect_wrap.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: connection_wrap.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: queue.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: debug_utils.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: encoding_binding.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fs_event_wrap.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: handle_wrap.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: histogram.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: internal_only_v8.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: js_native_api_v8.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: js_stream.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: js_udp_wrap.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_external_reference.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: child_process_permission.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fs_permission.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: inspector_permission.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: timer_wrap.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: bindingdata.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: endpoint.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: http3.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: session.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: streams.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: tlscontext.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: transportparams.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: inspector_socket.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_aes.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_argon2.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_bio.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_chacha20_poly1305.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_common.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_dsa.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_hkdf.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_pbkdf2.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_sig.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_timing.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_cipher.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_ec.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_ml_dsa.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_kem.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_hmac.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_kmac.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_random.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_rsa.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_spkac.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_clienthello.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_dh.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_hash.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_keygen.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_scrypt.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: cid.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: data.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: logstream.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: packet.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: preferredaddress.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: sessionticket.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: tokens.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: application.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_resolve.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_createPrivateKeyDER.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_querystring_parse.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_relative.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_tls_socket_request.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_createPrivateKeyJWK.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_buffer_equals.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_toNamespacedPath.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_fs_write_open_read.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_isAbsolute.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_zlib_brotliDecompress.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_diffieHellmanJWK.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_zlib_createBrotliDecompress.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_ClientHelloParser.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_basename.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_strings.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_string_decoder.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_parse.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_blob.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_diffieHellmanPEM.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_join.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_extname.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_format.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_dirname.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_buffer_compare.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_stream1.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_zlib_gzip_createUnzip.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_createPrivateKeyPEM.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_fs_write_read_append.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_normalize.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_zlib_brotliCompress.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_httpparser1.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_x509.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_diffieHellmanDER.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_buffer_includes.cc:v8::internal::IsMaybeReadOnlyExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>)  | 
691  |  |  | 
692  |  | // True if the external pointer references an external object whose lifetime is  | 
693  |  | // tied to the entry in the external pointer table.  | 
694  |  | // In this case, the entry in the ExternalPointerTable always points to an  | 
695  |  | // object derived from ExternalPointerTable::ManagedResource.  | 
696  |  | V8_INLINE static constexpr bool IsManagedExternalPointerType(  | 
697  | 0  |     ExternalPointerTagRange tag_range) { | 
698  | 0  |   return kAnyManagedResourceExternalPointerTag.Contains(tag_range);  | 
699  | 0  | } Unexecuted instantiation: node_snapshot_stub.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_common.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_sign_verify.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: environment.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: hooks.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: async_wrap.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: base_object.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: cleanup_queue.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: env.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: heap_utils.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: module_wrap.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_api.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_binding.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_blob.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_buffer.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_builtins.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_config.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_config_file.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_constants.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_contextify.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_credentials.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_dir.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_dotenv.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_env_var.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_errors.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_file.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_http_parser.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_http2.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_i18n.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_locks.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_main_instance.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_messaging.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_metadata.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_modules.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_options.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_os.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_perf.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_platform.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_process_events.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_process_methods.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_process_object.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_realm.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_report.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_report_module.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_report_utils.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_sea.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_serdes.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_shadow_realm.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_snapshotable.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_sockaddr.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_stat_watcher.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_symbols.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_task_queue.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_task_runner.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_trace_events.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_types.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_url.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_url_pattern.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_util.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_v8.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_wasi.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_wasm_web_api.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_watchdog.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_worker.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_zlib.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: path.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: permission.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: wasi_permission.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: worker_permission.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: net_permission.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: addon_permission.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: pipe_wrap.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: process_wrap.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: signal_wrap.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: spawn_sync.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: stream_base.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: stream_pipe.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: stream_wrap.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: string_bytes.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: string_decoder.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: tcp_wrap.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: timers.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: agent.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_trace_buffer.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_trace_writer.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: trace_event.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: traced_value.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: tty_wrap.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: udp_wrap.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: util.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: uv.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: quic.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: cppgc_helpers.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_large_page.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_sqlite.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_webstorage.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: inspector_agent.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: inspector_io.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: inspector_profiler.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: inspector_js_api.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: inspector_socket_server.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: main_thread_interface.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_json.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_string.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: runtime_agent.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: tracing_agent.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: worker_agent.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: network_inspector.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: network_agent.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: target_agent.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: worker_inspector.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: io_agent.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: network_resource_manager.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_context.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_util.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_keys.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_tls.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_x509.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_crypto.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_javascript.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: Protocol.cpp:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: NodeWorker.cpp:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: NodeTracing.cpp:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: NodeRuntime.cpp:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: Network.cpp:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: Target.cpp:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: IO.cpp:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: async_resource.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: callback.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: embed_helpers.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: encoding.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: exceptions.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: utils.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: async_context_frame.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: cares_wrap.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: compile_cache.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: connect_wrap.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: connection_wrap.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: queue.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: debug_utils.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: encoding_binding.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fs_event_wrap.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: handle_wrap.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: histogram.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: internal_only_v8.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: js_native_api_v8.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: js_stream.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: js_udp_wrap.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_external_reference.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: child_process_permission.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fs_permission.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: inspector_permission.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: timer_wrap.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: bindingdata.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: endpoint.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: http3.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: session.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: streams.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: tlscontext.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: transportparams.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: inspector_socket.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_aes.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_argon2.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_bio.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_chacha20_poly1305.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_common.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_dsa.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_hkdf.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_pbkdf2.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_sig.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_timing.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_cipher.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_ec.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_ml_dsa.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_kem.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_hmac.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_kmac.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_random.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_rsa.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_spkac.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_clienthello.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_dh.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_hash.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_keygen.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_scrypt.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: cid.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: data.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: logstream.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: packet.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: preferredaddress.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: sessionticket.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: tokens.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: application.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_resolve.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_createPrivateKeyDER.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_querystring_parse.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_relative.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_tls_socket_request.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_createPrivateKeyJWK.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_buffer_equals.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_toNamespacedPath.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_fs_write_open_read.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_isAbsolute.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_zlib_brotliDecompress.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_diffieHellmanJWK.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_zlib_createBrotliDecompress.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_ClientHelloParser.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_basename.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_strings.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_string_decoder.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_parse.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_blob.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_diffieHellmanPEM.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_join.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_extname.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_format.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_dirname.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_buffer_compare.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_stream1.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_zlib_gzip_createUnzip.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_createPrivateKeyPEM.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_fs_write_read_append.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_normalize.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_zlib_brotliCompress.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_httpparser1.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_x509.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_diffieHellmanDER.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_buffer_includes.cc:v8::internal::IsManagedExternalPointerType(v8::internal::TagRange<v8::internal::ExternalPointerTag>)  | 
700  |  |  | 
701  |  | // When an external poiner field can contain the null external pointer handle,  | 
702  |  | // the type checking mechanism needs to also check for null.  | 
703  |  | // TODO(saelo): this is mostly a temporary workaround to introduce range-based  | 
704  |  | // type checks. In the future, we should either (a) change the type tagging  | 
705  |  | // scheme so that null always passes or (b) (more likely) introduce dedicated  | 
706  |  | // null entries for those tags that need them (similar to other well-known  | 
707  |  | // empty value constants such as the empty fixed array).  | 
708  |  | V8_INLINE static constexpr bool ExternalPointerCanBeEmpty(  | 
709  | 0  |     ExternalPointerTagRange tag_range) { | 
710  | 0  |   return tag_range.Contains(kArrayBufferExtensionTag) ||  | 
711  | 0  |          (tag_range.first <= kLastEmbedderDataTag &&  | 
712  | 0  |           kFirstEmbedderDataTag <= tag_range.last) ||  | 
713  | 0  |          kAnyInterceptorInfoExternalPointerTagRange.Contains(tag_range);  | 
714  | 0  | } Unexecuted instantiation: node_snapshot_stub.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_common.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_sign_verify.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: environment.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: hooks.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: async_wrap.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: base_object.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: cleanup_queue.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: env.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: heap_utils.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: module_wrap.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_api.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_binding.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_blob.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_buffer.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_builtins.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_config.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_config_file.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_constants.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_contextify.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_credentials.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_dir.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_dotenv.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_env_var.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_errors.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_file.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_http_parser.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_http2.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_i18n.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_locks.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_main_instance.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_messaging.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_metadata.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_modules.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_options.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_os.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_perf.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_platform.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_process_events.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_process_methods.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_process_object.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_realm.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_report.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_report_module.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_report_utils.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_sea.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_serdes.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_shadow_realm.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_snapshotable.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_sockaddr.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_stat_watcher.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_symbols.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_task_queue.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_task_runner.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_trace_events.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_types.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_url.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_url_pattern.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_util.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_v8.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_wasi.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_wasm_web_api.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_watchdog.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_worker.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_zlib.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: path.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: permission.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: wasi_permission.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: worker_permission.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: net_permission.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: addon_permission.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: pipe_wrap.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: process_wrap.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: signal_wrap.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: spawn_sync.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: stream_base.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: stream_pipe.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: stream_wrap.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: string_bytes.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: string_decoder.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: tcp_wrap.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: timers.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: agent.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_trace_buffer.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_trace_writer.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: trace_event.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: traced_value.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: tty_wrap.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: udp_wrap.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: util.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: uv.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: quic.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: cppgc_helpers.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_large_page.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_sqlite.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_webstorage.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: inspector_agent.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: inspector_io.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: inspector_profiler.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: inspector_js_api.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: inspector_socket_server.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: main_thread_interface.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_json.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_string.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: runtime_agent.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: tracing_agent.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: worker_agent.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: network_inspector.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: network_agent.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: target_agent.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: worker_inspector.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: io_agent.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: network_resource_manager.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_context.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_util.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_keys.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_tls.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_x509.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_crypto.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_javascript.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: Protocol.cpp:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: NodeWorker.cpp:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: NodeTracing.cpp:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: NodeRuntime.cpp:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: Network.cpp:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: Target.cpp:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: IO.cpp:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: async_resource.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: callback.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: embed_helpers.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: encoding.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: exceptions.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: utils.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: async_context_frame.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: cares_wrap.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: compile_cache.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: connect_wrap.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: connection_wrap.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: queue.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: debug_utils.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: encoding_binding.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fs_event_wrap.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: handle_wrap.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: histogram.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: internal_only_v8.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: js_native_api_v8.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: js_stream.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: js_udp_wrap.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: node_external_reference.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: child_process_permission.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fs_permission.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: inspector_permission.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: timer_wrap.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: bindingdata.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: endpoint.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: http3.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: session.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: streams.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: tlscontext.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: transportparams.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: inspector_socket.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_aes.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_argon2.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_bio.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_chacha20_poly1305.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_common.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_dsa.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_hkdf.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_pbkdf2.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_sig.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_timing.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_cipher.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_ec.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_ml_dsa.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_kem.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_hmac.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_kmac.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_random.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_rsa.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_spkac.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_clienthello.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_dh.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_hash.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_keygen.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: crypto_scrypt.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: cid.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: data.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: logstream.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: packet.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: preferredaddress.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: sessionticket.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: tokens.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: application.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_resolve.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_createPrivateKeyDER.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_querystring_parse.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_relative.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_tls_socket_request.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_createPrivateKeyJWK.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_buffer_equals.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_toNamespacedPath.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_fs_write_open_read.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_isAbsolute.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_zlib_brotliDecompress.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_diffieHellmanJWK.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_zlib_createBrotliDecompress.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_ClientHelloParser.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_basename.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_strings.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_string_decoder.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_parse.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_blob.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_diffieHellmanPEM.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_join.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_extname.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_format.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_dirname.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_buffer_compare.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_stream1.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_zlib_gzip_createUnzip.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_createPrivateKeyPEM.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_fs_write_read_append.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_path_normalize.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_zlib_brotliCompress.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_httpparser1.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_x509.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_diffieHellmanDER.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>) Unexecuted instantiation: fuzz_buffer_includes.cc:v8::internal::ExternalPointerCanBeEmpty(v8::internal::TagRange<v8::internal::ExternalPointerTag>)  | 
715  |  |  | 
716  |  | // Indirect Pointers.  | 
717  |  | //  | 
718  |  | // When the sandbox is enabled, indirect pointers are used to reference  | 
719  |  | // HeapObjects that live outside of the sandbox (but are still managed by V8's  | 
720  |  | // garbage collector). When object A references an object B through an indirect  | 
721  |  | // pointer, object A will contain a IndirectPointerHandle, i.e. a shifted  | 
722  |  | // 32-bit index, which identifies an entry in a pointer table (either the  | 
723  |  | // trusted pointer table for TrustedObjects, or the code pointer table if it is  | 
724  |  | // a Code object). This table entry then contains the actual pointer to object  | 
725  |  | // B. Further, object B owns this pointer table entry, and it is responsible  | 
726  |  | // for updating the "self-pointer" in the entry when it is relocated in memory.  | 
727  |  | // This way, in contrast to "normal" pointers, indirect pointers never need to  | 
728  |  | // be tracked by the GC (i.e. there is no remembered set for them).  | 
729  |  | // These pointers do not exist when the sandbox is disabled.  | 
730  |  |  | 
731  |  | // An IndirectPointerHandle represents a 32-bit index into a pointer table.  | 
732  |  | using IndirectPointerHandle = uint32_t;  | 
733  |  |  | 
734  |  | // A null handle always references an entry that contains nullptr.  | 
735  |  | constexpr IndirectPointerHandle kNullIndirectPointerHandle = 0;  | 
736  |  |  | 
737  |  | // When the sandbox is enabled, indirect pointers are used to implement:  | 
738  |  | // - TrustedPointers: an indirect pointer using the trusted pointer table (TPT)  | 
739  |  | //   and referencing a TrustedObject in one of the trusted heap spaces.  | 
740  |  | // - CodePointers, an indirect pointer using the code pointer table (CPT) and  | 
741  |  | //   referencing a Code object together with its instruction stream.  | 
742  |  |  | 
743  |  | //  | 
744  |  | // Trusted Pointers.  | 
745  |  | //  | 
746  |  | // A pointer to a TrustedObject.  | 
747  |  | // When the sandbox is enabled, these are indirect pointers using the trusted  | 
748  |  | // pointer table (TPT). They are used to reference trusted objects (located in  | 
749  |  | // one of V8's trusted heap spaces, outside of the sandbox) from inside the  | 
750  |  | // sandbox in a memory-safe way. When the sandbox is disabled, these are  | 
751  |  | // regular tagged pointers.  | 
752  |  | using TrustedPointerHandle = IndirectPointerHandle;  | 
753  |  |  | 
754  |  | // The size of the virtual memory reservation for the trusted pointer table.  | 
755  |  | // As with the external pointer table, a maximum table size in combination with  | 
756  |  | // shifted indices allows omitting bounds checks.  | 
757  |  | constexpr size_t kTrustedPointerTableReservationSize = 64 * MB;  | 
758  |  |  | 
759  |  | // The trusted pointer handles are stored shifted to the left by this amount  | 
760  |  | // to guarantee that they are smaller than the maximum table size.  | 
761  |  | constexpr uint32_t kTrustedPointerHandleShift = 9;  | 
762  |  |  | 
763  |  | // A null handle always references an entry that contains nullptr.  | 
764  |  | constexpr TrustedPointerHandle kNullTrustedPointerHandle =  | 
765  |  |     kNullIndirectPointerHandle;  | 
766  |  |  | 
767  |  | // The maximum number of entries in an trusted pointer table.  | 
768  |  | constexpr int kTrustedPointerTableEntrySize = 8;  | 
769  |  | constexpr int kTrustedPointerTableEntrySizeLog2 = 3;  | 
770  |  | constexpr size_t kMaxTrustedPointers =  | 
771  |  |     kTrustedPointerTableReservationSize / kTrustedPointerTableEntrySize;  | 
772  |  | static_assert((1 << (32 - kTrustedPointerHandleShift)) == kMaxTrustedPointers,  | 
773  |  |               "kTrustedPointerTableReservationSize and "  | 
774  |  |               "kTrustedPointerHandleShift don't match");  | 
775  |  |  | 
776  |  | //  | 
777  |  | // Code Pointers.  | 
778  |  | //  | 
779  |  | // A pointer to a Code object.  | 
780  |  | // Essentially a specialized version of a trusted pointer that (when the  | 
781  |  | // sandbox is enabled) uses the code pointer table (CPT) instead of the TPT.  | 
782  |  | // Each entry in the CPT contains both a pointer to a Code object as well as a  | 
783  |  | // pointer to the Code's entrypoint. This allows calling/jumping into Code with  | 
784  |  | // one fewer memory access (compared to the case where the entrypoint pointer  | 
785  |  | // first needs to be loaded from the Code object). As such, a CodePointerHandle  | 
786  |  | // can be used both to obtain the referenced Code object and to directly load  | 
787  |  | // its entrypoint.  | 
788  |  | //  | 
789  |  | // When the sandbox is disabled, these are regular tagged pointers.  | 
790  |  | using CodePointerHandle = IndirectPointerHandle;  | 
791  |  |  | 
792  |  | // The size of the virtual memory reservation for the code pointer table.  | 
793  |  | // As with the other tables, a maximum table size in combination with shifted  | 
794  |  | // indices allows omitting bounds checks.  | 
795  |  | constexpr size_t kCodePointerTableReservationSize = 128 * MB;  | 
796  |  |  | 
797  |  | // Code pointer handles are shifted by a different amount than indirect pointer  | 
798  |  | // handles as the tables have a different maximum size.  | 
799  |  | constexpr uint32_t kCodePointerHandleShift = 9;  | 
800  |  |  | 
801  |  | // A null handle always references an entry that contains nullptr.  | 
802  |  | constexpr CodePointerHandle kNullCodePointerHandle = kNullIndirectPointerHandle;  | 
803  |  |  | 
804  |  | // It can sometimes be necessary to distinguish a code pointer handle from a  | 
805  |  | // trusted pointer handle. A typical example would be a union trusted pointer  | 
806  |  | // field that can refer to both Code objects and other trusted objects. To  | 
807  |  | // support these use-cases, we use a simple marking scheme where some of the  | 
808  |  | // low bits of a code pointer handle are set, while they will be unset on a  | 
809  |  | // trusted pointer handle. This way, the correct table to resolve the handle  | 
810  |  | // can be determined even in the absence of a type tag.  | 
811  |  | constexpr uint32_t kCodePointerHandleMarker = 0x1;  | 
812  |  | static_assert(kCodePointerHandleShift > 0);  | 
813  |  | static_assert(kTrustedPointerHandleShift > 0);  | 
814  |  |  | 
815  |  | // The maximum number of entries in a code pointer table.  | 
816  |  | constexpr int kCodePointerTableEntrySize = 16;  | 
817  |  | constexpr int kCodePointerTableEntrySizeLog2 = 4;  | 
818  |  | constexpr size_t kMaxCodePointers =  | 
819  |  |     kCodePointerTableReservationSize / kCodePointerTableEntrySize;  | 
820  |  | static_assert(  | 
821  |  |     (1 << (32 - kCodePointerHandleShift)) == kMaxCodePointers,  | 
822  |  |     "kCodePointerTableReservationSize and kCodePointerHandleShift don't match");  | 
823  |  |  | 
824  |  | constexpr int kCodePointerTableEntryEntrypointOffset = 0;  | 
825  |  | constexpr int kCodePointerTableEntryCodeObjectOffset = 8;  | 
826  |  |  | 
827  |  | // Constants that can be used to mark places that should be modified once  | 
828  |  | // certain types of objects are moved out of the sandbox and into trusted space.  | 
829  |  | constexpr bool kRuntimeGeneratedCodeObjectsLiveInTrustedSpace = true;  | 
830  |  | constexpr bool kBuiltinCodeObjectsLiveInTrustedSpace = false;  | 
831  |  | constexpr bool kAllCodeObjectsLiveInTrustedSpace =  | 
832  |  |     kRuntimeGeneratedCodeObjectsLiveInTrustedSpace &&  | 
833  |  |     kBuiltinCodeObjectsLiveInTrustedSpace;  | 
834  |  |  | 
835  |  | // {obj} must be the raw tagged pointer representation of a HeapObject | 
836  |  | // that's guaranteed to never be in ReadOnlySpace.  | 
837  |  | V8_DEPRECATE_SOON(  | 
838  |  |     "Use GetCurrentIsolate() instead, which is guaranteed to return the same "  | 
839  |  |     "isolate since https://crrev.com/c/6458560.")  | 
840  |  | V8_EXPORT internal::Isolate* IsolateFromNeverReadOnlySpaceObject(Address obj);  | 
841  |  |  | 
842  |  | // Returns if we need to throw when an error occurs. This infers the language  | 
843  |  | // mode based on the current context and the closure. This returns true if the  | 
844  |  | // language mode is strict.  | 
845  |  | V8_EXPORT bool ShouldThrowOnError(internal::Isolate* isolate);  | 
846  |  |  | 
847  |  | struct HandleScopeData final { | 
848  |  |   static constexpr uint32_t kSizeInBytes =  | 
849  |  |       2 * kApiSystemPointerSize + 2 * kApiInt32Size;  | 
850  |  |  | 
851  |  |   Address* next;  | 
852  |  |   Address* limit;  | 
853  |  |   int level;  | 
854  |  |   int sealed_level;  | 
855  |  |  | 
856  | 0  |   void Initialize() { | 
857  | 0  |     next = limit = nullptr;  | 
858  | 0  |     sealed_level = level = 0;  | 
859  | 0  |   }  | 
860  |  | };  | 
861  |  |  | 
862  |  | static_assert(HandleScopeData::kSizeInBytes == sizeof(HandleScopeData));  | 
863  |  |  | 
864  |  | /**  | 
865  |  |  * This class exports constants and functionality from within v8 that  | 
866  |  |  * is necessary to implement inline functions in the v8 api.  Don't  | 
867  |  |  * depend on functions and constants defined here.  | 
868  |  |  */  | 
869  |  | class Internals { | 
870  |  | #ifdef V8_MAP_PACKING  | 
871  |  |   V8_INLINE static constexpr Address UnpackMapWord(Address mapword) { | 
872  |  |     // TODO(wenyuzhao): Clear header metadata.  | 
873  |  |     return mapword ^ kMapWordXorMask;  | 
874  |  |   }  | 
875  |  | #endif  | 
876  |  |  | 
877  |  |  public:  | 
878  |  |   // These values match non-compiler-dependent values defined within  | 
879  |  |   // the implementation of v8.  | 
880  |  |   static const int kHeapObjectMapOffset = 0;  | 
881  |  |   static const int kMapInstanceTypeOffset = 1 * kApiTaggedSize + kApiInt32Size;  | 
882  |  |   static const int kStringResourceOffset =  | 
883  |  |       1 * kApiTaggedSize + 2 * kApiInt32Size;  | 
884  |  |  | 
885  |  |   static const int kOddballKindOffset = 4 * kApiTaggedSize + kApiDoubleSize;  | 
886  |  |   static const int kJSObjectHeaderSize = 3 * kApiTaggedSize;  | 
887  |  | #ifdef V8_COMPRESS_POINTERS  | 
888  |  |   static const int kJSAPIObjectWithEmbedderSlotsHeaderSize =  | 
889  |  |       kJSObjectHeaderSize + kApiInt32Size;  | 
890  |  | #else   // !V8_COMPRESS_POINTERS  | 
891  |  |   static const int kJSAPIObjectWithEmbedderSlotsHeaderSize =  | 
892  |  |       kJSObjectHeaderSize + kApiTaggedSize;  | 
893  |  | #endif  // !V8_COMPRESS_POINTERS  | 
894  |  |   static const int kFixedArrayHeaderSize = 2 * kApiTaggedSize;  | 
895  |  |   static const int kEmbedderDataArrayHeaderSize = 2 * kApiTaggedSize;  | 
896  |  |   static const int kEmbedderDataSlotSize = kApiSystemPointerSize;  | 
897  |  | #ifdef V8_ENABLE_SANDBOX  | 
898  |  |   static const int kEmbedderDataSlotExternalPointerOffset = kApiTaggedSize;  | 
899  |  | #else  | 
900  |  |   static const int kEmbedderDataSlotExternalPointerOffset = 0;  | 
901  |  | #endif  | 
902  |  |   static const int kNativeContextEmbedderDataOffset = 6 * kApiTaggedSize;  | 
903  |  |   static const int kStringRepresentationAndEncodingMask = 0x0f;  | 
904  |  |   static const int kStringEncodingMask = 0x8;  | 
905  |  |   static const int kExternalTwoByteRepresentationTag = 0x02;  | 
906  |  |   static const int kExternalOneByteRepresentationTag = 0x0a;  | 
907  |  |  | 
908  |  |   static const uint32_t kNumIsolateDataSlots = 4;  | 
909  |  |   static const int kStackGuardSize = 8 * kApiSystemPointerSize;  | 
910  |  |   static const int kNumberOfBooleanFlags = 6;  | 
911  |  |   static const int kErrorMessageParamSize = 1;  | 
912  |  |   static const int kTablesAlignmentPaddingSize = 1;  | 
913  |  |   static const int kRegExpStaticResultOffsetsVectorSize = kApiSystemPointerSize;  | 
914  |  |   static const int kBuiltinTier0EntryTableSize = 7 * kApiSystemPointerSize;  | 
915  |  |   static const int kBuiltinTier0TableSize = 7 * kApiSystemPointerSize;  | 
916  |  |   static const int kLinearAllocationAreaSize = 3 * kApiSystemPointerSize;  | 
917  |  |   static const int kThreadLocalTopSize = 29 * kApiSystemPointerSize;  | 
918  |  |   static const int kHandleScopeDataSize =  | 
919  |  |       2 * kApiSystemPointerSize + 2 * kApiInt32Size;  | 
920  |  |  | 
921  |  |   // ExternalPointerTable and TrustedPointerTable layout guarantees.  | 
922  |  |   static const int kExternalPointerTableBasePointerOffset = 0;  | 
923  |  |   static const int kSegmentedTableSegmentPoolSize = 4;  | 
924  |  |   static const int kExternalPointerTableSize =  | 
925  |  |       4 * kApiSystemPointerSize +  | 
926  |  |       kSegmentedTableSegmentPoolSize * sizeof(uint32_t);  | 
927  |  |   static const int kTrustedPointerTableSize =  | 
928  |  |       4 * kApiSystemPointerSize +  | 
929  |  |       kSegmentedTableSegmentPoolSize * sizeof(uint32_t);  | 
930  |  |   static const int kTrustedPointerTableBasePointerOffset = 0;  | 
931  |  |  | 
932  |  |   // IsolateData layout guarantees.  | 
933  |  |   static const int kIsolateCageBaseOffset = 0;  | 
934  |  |   static const int kIsolateStackGuardOffset =  | 
935  |  |       kIsolateCageBaseOffset + kApiSystemPointerSize;  | 
936  |  |   static const int kVariousBooleanFlagsOffset =  | 
937  |  |       kIsolateStackGuardOffset + kStackGuardSize;  | 
938  |  |   static const int kErrorMessageParamOffset =  | 
939  |  |       kVariousBooleanFlagsOffset + kNumberOfBooleanFlags;  | 
940  |  |   static const int kBuiltinTier0EntryTableOffset =  | 
941  |  |       kErrorMessageParamOffset + kErrorMessageParamSize +  | 
942  |  |       kTablesAlignmentPaddingSize + kRegExpStaticResultOffsetsVectorSize;  | 
943  |  |   static const int kBuiltinTier0TableOffset =  | 
944  |  |       kBuiltinTier0EntryTableOffset + kBuiltinTier0EntryTableSize;  | 
945  |  |   static const int kNewAllocationInfoOffset =  | 
946  |  |       kBuiltinTier0TableOffset + kBuiltinTier0TableSize;  | 
947  |  |   static const int kOldAllocationInfoOffset =  | 
948  |  |       kNewAllocationInfoOffset + kLinearAllocationAreaSize;  | 
949  |  |   static const int kLastYoungAllocationOffset =  | 
950  |  |       kOldAllocationInfoOffset + kApiSystemPointerSize;  | 
951  |  |  | 
952  |  |   static const int kFastCCallAlignmentPaddingSize =  | 
953  |  |       kApiSystemPointerSize == 8 ? 5 * kApiSystemPointerSize  | 
954  |  |                                  : 1 * kApiSystemPointerSize;  | 
955  |  |   static const int kIsolateFastCCallCallerPcOffset =  | 
956  |  |       kLastYoungAllocationOffset + kLinearAllocationAreaSize +  | 
957  |  |       kFastCCallAlignmentPaddingSize;  | 
958  |  |   static const int kIsolateFastCCallCallerFpOffset =  | 
959  |  |       kIsolateFastCCallCallerPcOffset + kApiSystemPointerSize;  | 
960  |  |   static const int kIsolateFastApiCallTargetOffset =  | 
961  |  |       kIsolateFastCCallCallerFpOffset + kApiSystemPointerSize;  | 
962  |  |   static const int kIsolateLongTaskStatsCounterOffset =  | 
963  |  |       kIsolateFastApiCallTargetOffset + kApiSystemPointerSize;  | 
964  |  |   static const int kIsolateThreadLocalTopOffset =  | 
965  |  |       kIsolateLongTaskStatsCounterOffset + kApiSizetSize;  | 
966  |  |   static const int kIsolateHandleScopeDataOffset =  | 
967  |  |       kIsolateThreadLocalTopOffset + kThreadLocalTopSize;  | 
968  |  |   static const int kIsolateEmbedderDataOffset =  | 
969  |  |       kIsolateHandleScopeDataOffset + kHandleScopeDataSize;  | 
970  |  | #ifdef V8_COMPRESS_POINTERS  | 
971  |  |   static const int kIsolateExternalPointerTableOffset =  | 
972  |  |       kIsolateEmbedderDataOffset + kNumIsolateDataSlots * kApiSystemPointerSize;  | 
973  |  |   static const int kIsolateSharedExternalPointerTableAddressOffset =  | 
974  |  |       kIsolateExternalPointerTableOffset + kExternalPointerTableSize;  | 
975  |  |   static const int kIsolateCppHeapPointerTableOffset =  | 
976  |  |       kIsolateSharedExternalPointerTableAddressOffset + kApiSystemPointerSize;  | 
977  |  | #ifdef V8_ENABLE_SANDBOX  | 
978  |  |   static const int kIsolateTrustedCageBaseOffset =  | 
979  |  |       kIsolateCppHeapPointerTableOffset + kExternalPointerTableSize;  | 
980  |  |   static const int kIsolateTrustedPointerTableOffset =  | 
981  |  |       kIsolateTrustedCageBaseOffset + kApiSystemPointerSize;  | 
982  |  |   static const int kIsolateSharedTrustedPointerTableAddressOffset =  | 
983  |  |       kIsolateTrustedPointerTableOffset + kTrustedPointerTableSize;  | 
984  |  |   static const int kIsolateTrustedPointerPublishingScopeOffset =  | 
985  |  |       kIsolateSharedTrustedPointerTableAddressOffset + kApiSystemPointerSize;  | 
986  |  |   static const int kIsolateCodePointerTableBaseAddressOffset =  | 
987  |  |       kIsolateTrustedPointerPublishingScopeOffset + kApiSystemPointerSize;  | 
988  |  |   static const int kIsolateApiCallbackThunkArgumentOffset =  | 
989  |  |       kIsolateCodePointerTableBaseAddressOffset + kApiSystemPointerSize;  | 
990  |  | #else  | 
991  |  |   static const int kIsolateApiCallbackThunkArgumentOffset =  | 
992  |  |       kIsolateCppHeapPointerTableOffset + kExternalPointerTableSize;  | 
993  |  | #endif  // V8_ENABLE_SANDBOX  | 
994  |  | #else  | 
995  |  |   static const int kIsolateApiCallbackThunkArgumentOffset =  | 
996  |  |       kIsolateEmbedderDataOffset + kNumIsolateDataSlots * kApiSystemPointerSize;  | 
997  |  | #endif  // V8_COMPRESS_POINTERS  | 
998  |  |   static const int kJSDispatchTableOffset =  | 
999  |  |       kIsolateApiCallbackThunkArgumentOffset + kApiSystemPointerSize;  | 
1000  |  |   static const int kIsolateRegexpExecVectorArgumentOffset =  | 
1001  |  |       kJSDispatchTableOffset + kApiSystemPointerSize;  | 
1002  |  |   static const int kContinuationPreservedEmbedderDataOffset =  | 
1003  |  |       kIsolateRegexpExecVectorArgumentOffset + kApiSystemPointerSize;  | 
1004  |  |   static const int kIsolateRootsOffset =  | 
1005  |  |       kContinuationPreservedEmbedderDataOffset + kApiSystemPointerSize;  | 
1006  |  |  | 
1007  |  |   // Assert scopes  | 
1008  |  |   static const int kDisallowGarbageCollectionAlign = alignof(uint32_t);  | 
1009  |  |   static const int kDisallowGarbageCollectionSize = sizeof(uint32_t);  | 
1010  |  |  | 
1011  |  | #if V8_STATIC_ROOTS_BOOL  | 
1012  |  |  | 
1013  |  | // These constants are copied from static-roots.h and guarded by static asserts.  | 
1014  |  | #define EXPORTED_STATIC_ROOTS_PTR_LIST(V)                            \  | 
1015  |  |   V(UndefinedValue, 0x11)                                            \  | 
1016  |  |   V(NullValue, 0x2d)                                                 \  | 
1017  |  |   V(TrueValue, 0x71)                                                 \  | 
1018  |  |   V(FalseValue, 0x55)                                                \  | 
1019  |  |   V(EmptyString, 0x49)                                               \  | 
1020  |  |   /* The Hole moves around depending on build flags, so define it */ \  | 
1021  |  |   /* separately inside StaticReadOnlyRoot using build macros */      \  | 
1022  |  |   V(TheHoleValue, kBuildDependentTheHoleValue)  | 
1023  |  |  | 
1024  |  |   using Tagged_t = uint32_t;  | 
1025  |  |   struct StaticReadOnlyRoot { | 
1026  |  | #ifdef V8_ENABLE_WEBASSEMBLY  | 
1027  |  |     static constexpr Tagged_t kBuildDependentTheHoleValue = 0x20001;  | 
1028  |  | #else  | 
1029  |  | #ifdef V8_INTL_SUPPORT  | 
1030  |  |     static constexpr Tagged_t kBuildDependentTheHoleValue = 0x6559;  | 
1031  |  | #else  | 
1032  |  |     static constexpr Tagged_t kBuildDependentTheHoleValue = 0x58bd;  | 
1033  |  | #endif  | 
1034  |  | #endif  | 
1035  |  |  | 
1036  |  | #define DEF_ROOT(name, value) static constexpr Tagged_t k##name = value;  | 
1037  |  |     EXPORTED_STATIC_ROOTS_PTR_LIST(DEF_ROOT)  | 
1038  |  | #undef DEF_ROOT  | 
1039  |  |  | 
1040  |  |     // Use 0 for kStringMapLowerBound since string maps are the first maps.  | 
1041  |  |     static constexpr Tagged_t kStringMapLowerBound = 0;  | 
1042  |  |     static constexpr Tagged_t kStringMapUpperBound = 0x425;  | 
1043  |  |  | 
1044  |  | #define PLUSONE(...) +1  | 
1045  |  |     static constexpr size_t kNumberOfExportedStaticRoots =  | 
1046  |  |         2 + EXPORTED_STATIC_ROOTS_PTR_LIST(PLUSONE);  | 
1047  |  | #undef PLUSONE  | 
1048  |  |   };  | 
1049  |  |  | 
1050  |  | #endif  // V8_STATIC_ROOTS_BOOL  | 
1051  |  |  | 
1052  |  |   static const int kUndefinedValueRootIndex = 0;  | 
1053  |  |   static const int kTheHoleValueRootIndex = 1;  | 
1054  |  |   static const int kNullValueRootIndex = 2;  | 
1055  |  |   static const int kTrueValueRootIndex = 3;  | 
1056  |  |   static const int kFalseValueRootIndex = 4;  | 
1057  |  |   static const int kEmptyStringRootIndex = 5;  | 
1058  |  |  | 
1059  |  |   static const int kNodeClassIdOffset = 1 * kApiSystemPointerSize;  | 
1060  |  |   static const int kNodeFlagsOffset = 1 * kApiSystemPointerSize + 3;  | 
1061  |  |   static const int kNodeStateMask = 0x3;  | 
1062  |  |   static const int kNodeStateIsWeakValue = 2;  | 
1063  |  |  | 
1064  |  |   static const int kFirstNonstringType = 0x80;  | 
1065  |  |   static const int kOddballType = 0x83;  | 
1066  |  |   static const int kForeignType = 0xcc;  | 
1067  |  |   static const int kJSSpecialApiObjectType = 0x410;  | 
1068  |  |   static const int kJSObjectType = 0x421;  | 
1069  |  |   static const int kFirstJSApiObjectType = 0x422;  | 
1070  |  |   static const int kLastJSApiObjectType = 0x80A;  | 
1071  |  |   // Defines a range [kFirstEmbedderJSApiObjectType, kJSApiObjectTypesCount]  | 
1072  |  |   // of JSApiObject instance type values that an embedder can use.  | 
1073  |  |   static const int kFirstEmbedderJSApiObjectType = 0;  | 
1074  |  |   static const int kLastEmbedderJSApiObjectType =  | 
1075  |  |       kLastJSApiObjectType - kFirstJSApiObjectType;  | 
1076  |  |  | 
1077  |  |   static const int kUndefinedOddballKind = 4;  | 
1078  |  |   static const int kNullOddballKind = 3;  | 
1079  |  |  | 
1080  |  |   // Constants used by PropertyCallbackInfo to check if we should throw when an  | 
1081  |  |   // error occurs.  | 
1082  |  |   static const int kDontThrow = 0;  | 
1083  |  |   static const int kThrowOnError = 1;  | 
1084  |  |   static const int kInferShouldThrowMode = 2;  | 
1085  |  |  | 
1086  |  |   // Soft limit for AdjustAmountofExternalAllocatedMemory. Trigger an  | 
1087  |  |   // incremental GC once the external memory reaches this limit.  | 
1088  |  |   static constexpr size_t kExternalAllocationSoftLimit = 64 * 1024 * 1024;  | 
1089  |  |  | 
1090  |  | #ifdef V8_MAP_PACKING  | 
1091  |  |   static const uintptr_t kMapWordMetadataMask = 0xffffULL << 48;  | 
1092  |  |   // The lowest two bits of mapwords are always `0b10`  | 
1093  |  |   static const uintptr_t kMapWordSignature = 0b10;  | 
1094  |  |   // XORing a (non-compressed) map with this mask ensures that the two  | 
1095  |  |   // low-order bits are 0b10. The 0 at the end makes this look like a Smi,  | 
1096  |  |   // although real Smis have all lower 32 bits unset. We only rely on these  | 
1097  |  |   // values passing as Smis in very few places.  | 
1098  |  |   static const int kMapWordXorMask = 0b11;  | 
1099  |  | #endif  | 
1100  |  |  | 
1101  |  |   V8_EXPORT static void CheckInitializedImpl(v8::Isolate* isolate);  | 
1102  | 11.0k  |   V8_INLINE static void CheckInitialized(v8::Isolate* isolate) { | 
1103  |  | #ifdef V8_ENABLE_CHECKS  | 
1104  |  |     CheckInitializedImpl(isolate);  | 
1105  |  | #endif  | 
1106  | 11.0k  |   }  | 
1107  |  |  | 
1108  | 249k  |   V8_INLINE static constexpr bool HasHeapObjectTag(Address value) { | 
1109  | 249k  |     return (value & kHeapObjectTagMask) == static_cast<Address>(kHeapObjectTag);  | 
1110  | 249k  |   }  | 
1111  |  |  | 
1112  | 4  |   V8_INLINE static constexpr int SmiValue(Address value) { | 
1113  | 4  |     return PlatformSmiTagging::SmiToInt(value);  | 
1114  | 4  |   }  | 
1115  |  |  | 
1116  | 35  |   V8_INLINE static constexpr Address AddressToSmi(Address value) { | 
1117  | 35  |     return (value << (kSmiTagSize + PlatformSmiTagging::kSmiShiftSize)) |  | 
1118  | 35  |            kSmiTag;  | 
1119  | 35  |   }  | 
1120  |  |  | 
1121  | 0  |   V8_INLINE static constexpr Address IntToSmi(int value) { | 
1122  | 0  |     return AddressToSmi(static_cast<Address>(value));  | 
1123  | 0  |   }  | 
1124  |  |  | 
1125  |  |   template <typename T,  | 
1126  |  |             typename std::enable_if_t<std::is_integral_v<T>>* = nullptr>  | 
1127  | 0  |   V8_INLINE static constexpr Address IntegralToSmi(T value) { | 
1128  | 0  |     return AddressToSmi(static_cast<Address>(value));  | 
1129  | 0  |   } Unexecuted instantiation: _ZN2v88internal9Internals13IntegralToSmiIsTnPNSt3__19enable_ifIXsr3stdE13is_integral_vIT_EEvE4typeELPv0EEEmS5_ Unexecuted instantiation: _ZN2v88internal9Internals13IntegralToSmiItTnPNSt3__19enable_ifIXsr3stdE13is_integral_vIT_EEvE4typeELPv0EEEmS5_ Unexecuted instantiation: _ZN2v88internal9Internals13IntegralToSmiIiTnPNSt3__19enable_ifIXsr3stdE13is_integral_vIT_EEvE4typeELPv0EEEmS5_  | 
1130  |  |  | 
1131  |  |   template <typename T,  | 
1132  |  |             typename std::enable_if_t<std::is_integral_v<T>>* = nullptr>  | 
1133  | 0  |   V8_INLINE static constexpr bool IsValidSmi(T value) { | 
1134  | 0  |     return PlatformSmiTagging::IsValidSmi(value);  | 
1135  | 0  |   } Unexecuted instantiation: _ZN2v88internal9Internals10IsValidSmiIsTnPNSt3__19enable_ifIXsr3stdE13is_integral_vIT_EEvE4typeELPv0EEEbS5_ Unexecuted instantiation: _ZN2v88internal9Internals10IsValidSmiItTnPNSt3__19enable_ifIXsr3stdE13is_integral_vIT_EEvE4typeELPv0EEEbS5_  | 
1136  |  |  | 
1137  |  |   template <typename T,  | 
1138  |  |             typename std::enable_if_t<std::is_integral_v<T>>* = nullptr>  | 
1139  | 35  |   static constexpr std::optional<Address> TryIntegralToSmi(T value) { | 
1140  | 35  |     if (V8_LIKELY(PlatformSmiTagging::IsValidSmi(value))) { | 
1141  | 35  |       return {AddressToSmi(static_cast<Address>(value))}; | 
1142  | 35  |     }  | 
1143  | 0  |     return {}; | 
1144  | 35  |   } Unexecuted instantiation: _ZN2v88internal9Internals16TryIntegralToSmiIiTnPNSt3__19enable_ifIXsr3stdE13is_integral_vIT_EEvE4typeELPv0EEENS3_8optionalImEES5_ Unexecuted instantiation: _ZN2v88internal9Internals16TryIntegralToSmiIlTnPNSt3__19enable_ifIXsr3stdE13is_integral_vIT_EEvE4typeELPv0EEENS3_8optionalImEES5_ _ZN2v88internal9Internals16TryIntegralToSmiIjTnPNSt3__19enable_ifIXsr3stdE13is_integral_vIT_EEvE4typeELPv0EEENS3_8optionalImEES5_ Line  | Count  | Source  |  1139  | 35  |   static constexpr std::optional<Address> TryIntegralToSmi(T value) { |  1140  | 35  |     if (V8_LIKELY(PlatformSmiTagging::IsValidSmi(value))) { |  1141  | 35  |       return {AddressToSmi(static_cast<Address>(value))}; |  1142  | 35  |     }  |  1143  | 0  |     return {}; |  1144  | 35  |   }  |  
 Unexecuted instantiation: _ZN2v88internal9Internals16TryIntegralToSmiImTnPNSt3__19enable_ifIXsr3stdE13is_integral_vIT_EEvE4typeELPv0EEENS3_8optionalImEES5_  | 
1145  |  |  | 
1146  |  | #if V8_STATIC_ROOTS_BOOL  | 
1147  |  |   V8_INLINE static bool is_identical(Address obj, Tagged_t constant) { | 
1148  |  |     return static_cast<Tagged_t>(obj) == constant;  | 
1149  |  |   }  | 
1150  |  |  | 
1151  |  |   V8_INLINE static bool CheckInstanceMapRange(Address obj, Tagged_t first_map,  | 
1152  |  |                                               Tagged_t last_map) { | 
1153  |  |     auto map = ReadRawField<Tagged_t>(obj, kHeapObjectMapOffset);  | 
1154  |  | #ifdef V8_MAP_PACKING  | 
1155  |  |     map = UnpackMapWord(map);  | 
1156  |  | #endif  | 
1157  |  |     return map >= first_map && map <= last_map;  | 
1158  |  |   }  | 
1159  |  | #endif  | 
1160  |  |  | 
1161  | 249k  |   V8_INLINE static int GetInstanceType(Address obj) { | 
1162  | 249k  |     Address map = ReadTaggedPointerField(obj, kHeapObjectMapOffset);  | 
1163  |  | #ifdef V8_MAP_PACKING  | 
1164  |  |     map = UnpackMapWord(map);  | 
1165  |  | #endif  | 
1166  | 249k  |     return ReadRawField<uint16_t>(map, kMapInstanceTypeOffset);  | 
1167  | 249k  |   }  | 
1168  |  |  | 
1169  | 0  |   V8_INLINE static Address LoadMap(Address obj) { | 
1170  | 0  |     if (!HasHeapObjectTag(obj)) return kNullAddress;  | 
1171  | 0  |     Address map = ReadTaggedPointerField(obj, kHeapObjectMapOffset);  | 
1172  | 0  | #ifdef V8_MAP_PACKING  | 
1173  | 0  |     map = UnpackMapWord(map);  | 
1174  | 0  | #endif  | 
1175  | 0  |     return map;  | 
1176  | 0  |   }  | 
1177  |  |  | 
1178  | 4  |   V8_INLINE static int GetOddballKind(Address obj) { | 
1179  | 4  |     return SmiValue(ReadTaggedSignedField(obj, kOddballKindOffset));  | 
1180  | 4  |   }  | 
1181  |  |  | 
1182  | 0  |   V8_INLINE static bool IsExternalTwoByteString(int instance_type) { | 
1183  | 0  |     int representation = (instance_type & kStringRepresentationAndEncodingMask);  | 
1184  | 0  |     return representation == kExternalTwoByteRepresentationTag;  | 
1185  | 0  |   }  | 
1186  |  |  | 
1187  | 0  |   V8_INLINE static constexpr bool CanHaveInternalField(int instance_type) { | 
1188  | 0  |     static_assert(kJSObjectType + 1 == kFirstJSApiObjectType);  | 
1189  | 0  |     static_assert(kJSObjectType < kLastJSApiObjectType);  | 
1190  | 0  |     static_assert(kFirstJSApiObjectType < kLastJSApiObjectType);  | 
1191  |  |     // Check for IsJSObject() || IsJSSpecialApiObject() || IsJSApiObject()  | 
1192  | 0  |     return instance_type == kJSSpecialApiObjectType ||  | 
1193  |  |            // inlined version of base::IsInRange  | 
1194  | 0  |            (static_cast<unsigned>(static_cast<unsigned>(instance_type) -  | 
1195  | 0  |                                   static_cast<unsigned>(kJSObjectType)) <=  | 
1196  | 0  |             static_cast<unsigned>(kLastJSApiObjectType - kJSObjectType));  | 
1197  | 0  |   }  | 
1198  |  |  | 
1199  | 0  |   V8_INLINE static uint8_t GetNodeFlag(Address* obj, int shift) { | 
1200  | 0  |     uint8_t* addr = reinterpret_cast<uint8_t*>(obj) + kNodeFlagsOffset;  | 
1201  | 0  |     return *addr & static_cast<uint8_t>(1U << shift);  | 
1202  | 0  |   }  | 
1203  |  |  | 
1204  | 0  |   V8_INLINE static void UpdateNodeFlag(Address* obj, bool value, int shift) { | 
1205  | 0  |     uint8_t* addr = reinterpret_cast<uint8_t*>(obj) + kNodeFlagsOffset;  | 
1206  | 0  |     uint8_t mask = static_cast<uint8_t>(1U << shift);  | 
1207  | 0  |     *addr = static_cast<uint8_t>((*addr & ~mask) | (value << shift));  | 
1208  | 0  |   }  | 
1209  |  |  | 
1210  | 560  |   V8_INLINE static uint8_t GetNodeState(Address* obj) { | 
1211  | 560  |     uint8_t* addr = reinterpret_cast<uint8_t*>(obj) + kNodeFlagsOffset;  | 
1212  | 560  |     return *addr & kNodeStateMask;  | 
1213  | 560  |   }  | 
1214  |  |  | 
1215  | 0  |   V8_INLINE static void UpdateNodeState(Address* obj, uint8_t value) { | 
1216  | 0  |     uint8_t* addr = reinterpret_cast<uint8_t*>(obj) + kNodeFlagsOffset;  | 
1217  | 0  |     *addr = static_cast<uint8_t>((*addr & ~kNodeStateMask) | value);  | 
1218  | 0  |   }  | 
1219  |  |  | 
1220  |  |   V8_INLINE static void SetEmbedderData(v8::Isolate* isolate, uint32_t slot,  | 
1221  | 0  |                                         void* data) { | 
1222  | 0  |     Address addr = reinterpret_cast<Address>(isolate) +  | 
1223  | 0  |                    kIsolateEmbedderDataOffset + slot * kApiSystemPointerSize;  | 
1224  | 0  |     *reinterpret_cast<void**>(addr) = data;  | 
1225  | 0  |   }  | 
1226  |  |  | 
1227  |  |   V8_INLINE static void* GetEmbedderData(const v8::Isolate* isolate,  | 
1228  | 0  |                                          uint32_t slot) { | 
1229  | 0  |     Address addr = reinterpret_cast<Address>(isolate) +  | 
1230  | 0  |                    kIsolateEmbedderDataOffset + slot * kApiSystemPointerSize;  | 
1231  | 0  |     return *reinterpret_cast<void* const*>(addr);  | 
1232  | 0  |   }  | 
1233  |  |  | 
1234  | 8.30M  |   V8_INLINE static HandleScopeData* GetHandleScopeData(v8::Isolate* isolate) { | 
1235  | 8.30M  |     Address addr =  | 
1236  | 8.30M  |         reinterpret_cast<Address>(isolate) + kIsolateHandleScopeDataOffset;  | 
1237  | 8.30M  |     return reinterpret_cast<HandleScopeData*>(addr);  | 
1238  | 8.30M  |   }  | 
1239  |  |  | 
1240  | 0  |   V8_INLINE static void IncrementLongTasksStatsCounter(v8::Isolate* isolate) { | 
1241  | 0  |     Address addr =  | 
1242  | 0  |         reinterpret_cast<Address>(isolate) + kIsolateLongTaskStatsCounterOffset;  | 
1243  | 0  |     ++(*reinterpret_cast<size_t*>(addr));  | 
1244  | 0  |   }  | 
1245  |  |  | 
1246  | 11.1k  |   V8_INLINE static Address* GetRootSlot(v8::Isolate* isolate, int index) { | 
1247  | 11.1k  |     Address addr = reinterpret_cast<Address>(isolate) + kIsolateRootsOffset +  | 
1248  | 11.1k  |                    index * kApiSystemPointerSize;  | 
1249  | 11.1k  |     return reinterpret_cast<Address*>(addr);  | 
1250  | 11.1k  |   }  | 
1251  |  |  | 
1252  | 70  |   V8_INLINE static Address GetRoot(v8::Isolate* isolate, int index) { | 
1253  |  | #if V8_STATIC_ROOTS_BOOL  | 
1254  |  |     Address base = *reinterpret_cast<Address*>(  | 
1255  |  |         reinterpret_cast<uintptr_t>(isolate) + kIsolateCageBaseOffset);  | 
1256  |  |     switch (index) { | 
1257  |  | #define DECOMPRESS_ROOT(name, ...) \  | 
1258  |  |   case k##name##RootIndex:         \  | 
1259  |  |     return base + StaticReadOnlyRoot::k##name;  | 
1260  |  |       EXPORTED_STATIC_ROOTS_PTR_LIST(DECOMPRESS_ROOT)  | 
1261  |  | #undef DECOMPRESS_ROOT  | 
1262  |  | #undef EXPORTED_STATIC_ROOTS_PTR_LIST  | 
1263  |  |       default:  | 
1264  |  |         break;  | 
1265  |  |     }  | 
1266  |  | #endif  // V8_STATIC_ROOTS_BOOL  | 
1267  | 70  |     return *GetRootSlot(isolate, index);  | 
1268  | 70  |   }  | 
1269  |  |  | 
1270  |  | #ifdef V8_ENABLE_SANDBOX  | 
1271  |  |   V8_INLINE static Address* GetExternalPointerTableBase(v8::Isolate* isolate) { | 
1272  |  |     Address addr = reinterpret_cast<Address>(isolate) +  | 
1273  |  |                    kIsolateExternalPointerTableOffset +  | 
1274  |  |                    kExternalPointerTableBasePointerOffset;  | 
1275  |  |     return *reinterpret_cast<Address**>(addr);  | 
1276  |  |   }  | 
1277  |  |  | 
1278  |  |   V8_INLINE static Address* GetSharedExternalPointerTableBase(  | 
1279  |  |       v8::Isolate* isolate) { | 
1280  |  |     Address addr = reinterpret_cast<Address>(isolate) +  | 
1281  |  |                    kIsolateSharedExternalPointerTableAddressOffset;  | 
1282  |  |     addr = *reinterpret_cast<Address*>(addr);  | 
1283  |  |     addr += kExternalPointerTableBasePointerOffset;  | 
1284  |  |     return *reinterpret_cast<Address**>(addr);  | 
1285  |  |   }  | 
1286  |  | #endif  | 
1287  |  |  | 
1288  |  |   template <typename T>  | 
1289  | 10.6M  |   V8_INLINE static T ReadRawField(Address heap_object_ptr, int offset) { | 
1290  | 10.6M  |     Address addr = heap_object_ptr + offset - kHeapObjectTag;  | 
1291  |  | #ifdef V8_COMPRESS_POINTERS  | 
1292  |  |     if constexpr (sizeof(T) > kApiTaggedSize) { | 
1293  |  |       // TODO(ishell, v8:8875): When pointer compression is enabled 8-byte size  | 
1294  |  |       // fields (external pointers, doubles and BigInt data) are only  | 
1295  |  |       // kTaggedSize aligned so we have to use unaligned pointer friendly way of  | 
1296  |  |       // accessing them in order to avoid undefined behavior in C++ code.  | 
1297  |  |       T r;  | 
1298  |  |       memcpy(&r, reinterpret_cast<void*>(addr), sizeof(T));  | 
1299  |  |       return r;  | 
1300  |  |     }  | 
1301  |  | #endif  | 
1302  | 10.6M  |     return *reinterpret_cast<const T*>(addr);  | 
1303  | 10.6M  |   } unsigned short v8::internal::Internals::ReadRawField<unsigned short>(unsigned long, int) Line  | Count  | Source  |  1289  | 249k  |   V8_INLINE static T ReadRawField(Address heap_object_ptr, int offset) { |  1290  | 249k  |     Address addr = heap_object_ptr + offset - kHeapObjectTag;  |  1291  |  | #ifdef V8_COMPRESS_POINTERS  |  1292  |  |     if constexpr (sizeof(T) > kApiTaggedSize) { |  1293  |  |       // TODO(ishell, v8:8875): When pointer compression is enabled 8-byte size  |  1294  |  |       // fields (external pointers, doubles and BigInt data) are only  |  1295  |  |       // kTaggedSize aligned so we have to use unaligned pointer friendly way of  |  1296  |  |       // accessing them in order to avoid undefined behavior in C++ code.  |  1297  |  |       T r;  |  1298  |  |       memcpy(&r, reinterpret_cast<void*>(addr), sizeof(T));  |  1299  |  |       return r;  |  1300  |  |     }  |  1301  |  | #endif  |  1302  | 249k  |     return *reinterpret_cast<const T*>(addr);  |  1303  | 249k  |   }  |  
 unsigned long v8::internal::Internals::ReadRawField<unsigned long>(unsigned long, int) Line  | Count  | Source  |  1289  | 10.3M  |   V8_INLINE static T ReadRawField(Address heap_object_ptr, int offset) { |  1290  | 10.3M  |     Address addr = heap_object_ptr + offset - kHeapObjectTag;  |  1291  |  | #ifdef V8_COMPRESS_POINTERS  |  1292  |  |     if constexpr (sizeof(T) > kApiTaggedSize) { |  1293  |  |       // TODO(ishell, v8:8875): When pointer compression is enabled 8-byte size  |  1294  |  |       // fields (external pointers, doubles and BigInt data) are only  |  1295  |  |       // kTaggedSize aligned so we have to use unaligned pointer friendly way of  |  1296  |  |       // accessing them in order to avoid undefined behavior in C++ code.  |  1297  |  |       T r;  |  1298  |  |       memcpy(&r, reinterpret_cast<void*>(addr), sizeof(T));  |  1299  |  |       return r;  |  1300  |  |     }  |  1301  |  | #endif  |  1302  | 10.3M  |     return *reinterpret_cast<const T*>(addr);  |  1303  | 10.3M  |   }  |  
  | 
1304  |  |  | 
1305  |  |   V8_INLINE static Address ReadTaggedPointerField(Address heap_object_ptr,  | 
1306  | 5.30M  |                                                   int offset) { | 
1307  |  | #ifdef V8_COMPRESS_POINTERS  | 
1308  |  |     uint32_t value = ReadRawField<uint32_t>(heap_object_ptr, offset);  | 
1309  |  |     Address base = GetPtrComprCageBaseFromOnHeapAddress(heap_object_ptr);  | 
1310  |  |     return base + static_cast<Address>(static_cast<uintptr_t>(value));  | 
1311  |  | #else  | 
1312  | 5.30M  |     return ReadRawField<Address>(heap_object_ptr, offset);  | 
1313  | 5.30M  | #endif  | 
1314  | 5.30M  |   }  | 
1315  |  |  | 
1316  |  |   V8_INLINE static Address ReadTaggedSignedField(Address heap_object_ptr,  | 
1317  | 4  |                                                  int offset) { | 
1318  |  | #ifdef V8_COMPRESS_POINTERS  | 
1319  |  |     uint32_t value = ReadRawField<uint32_t>(heap_object_ptr, offset);  | 
1320  |  |     return static_cast<Address>(static_cast<uintptr_t>(value));  | 
1321  |  | #else  | 
1322  | 4  |     return ReadRawField<Address>(heap_object_ptr, offset);  | 
1323  | 4  | #endif  | 
1324  | 4  |   }  | 
1325  |  |  | 
1326  |  |   // Returns v8::Isolate::Current(), but without needing to include the  | 
1327  |  |   // v8-isolate.h header.  | 
1328  |  |   V8_EXPORT static v8::Isolate* GetCurrentIsolate();  | 
1329  |  |  | 
1330  | 5.05M  |   V8_INLINE static v8::Isolate* GetCurrentIsolateForSandbox() { | 
1331  |  | #ifdef V8_ENABLE_SANDBOX  | 
1332  |  |     return GetCurrentIsolate();  | 
1333  |  | #else  | 
1334  |  |     // Not used in non-sandbox mode.  | 
1335  | 5.05M  |     return nullptr;  | 
1336  | 5.05M  | #endif  | 
1337  | 5.05M  |   }  | 
1338  |  |  | 
1339  |  |   template <ExternalPointerTagRange tag_range>  | 
1340  |  |   V8_INLINE static Address ReadExternalPointerField(v8::Isolate* isolate,  | 
1341  |  |                                                     Address heap_object_ptr,  | 
1342  | 0  |                                                     int offset) { | 
1343  |  | #ifdef V8_ENABLE_SANDBOX  | 
1344  |  |     static_assert(!tag_range.IsEmpty());  | 
1345  |  |     // See src/sandbox/external-pointer-table.h. Logic duplicated here so  | 
1346  |  |     // it can be inlined and doesn't require an additional call.  | 
1347  |  |     Address* table = IsSharedExternalPointerType(tag_range)  | 
1348  |  |                          ? GetSharedExternalPointerTableBase(isolate)  | 
1349  |  |                          : GetExternalPointerTableBase(isolate);  | 
1350  |  |     internal::ExternalPointerHandle handle =  | 
1351  |  |         ReadRawField<ExternalPointerHandle>(heap_object_ptr, offset);  | 
1352  |  |     uint32_t index = handle >> kExternalPointerIndexShift;  | 
1353  |  |     std::atomic<Address>* ptr =  | 
1354  |  |         reinterpret_cast<std::atomic<Address>*>(&table[index]);  | 
1355  |  |     Address entry = std::atomic_load_explicit(ptr, std::memory_order_relaxed);  | 
1356  |  |     ExternalPointerTag actual_tag = static_cast<ExternalPointerTag>(  | 
1357  |  |         (entry & kExternalPointerTagMask) >> kExternalPointerTagShift);  | 
1358  |  |     if (V8_LIKELY(tag_range.Contains(actual_tag))) { | 
1359  |  |       return entry & kExternalPointerPayloadMask;  | 
1360  |  |     } else { | 
1361  |  |       return 0;  | 
1362  |  |     }  | 
1363  |  |     return entry;  | 
1364  |  | #else  | 
1365  | 0  |     return ReadRawField<Address>(heap_object_ptr, offset);  | 
1366  | 0  | #endif  // V8_ENABLE_SANDBOX  | 
1367  | 0  |   }  | 
1368  |  |  | 
1369  |  |   V8_INLINE static Address ReadExternalPointerField(  | 
1370  |  |       v8::Isolate* isolate, Address heap_object_ptr, int offset,  | 
1371  | 5.05M  |       ExternalPointerTagRange tag_range) { | 
1372  |  | #ifdef V8_ENABLE_SANDBOX  | 
1373  |  |     // See src/sandbox/external-pointer-table.h. Logic duplicated here so  | 
1374  |  |     // it can be inlined and doesn't require an additional call.  | 
1375  |  |     Address* table = IsSharedExternalPointerType(tag_range)  | 
1376  |  |                          ? GetSharedExternalPointerTableBase(isolate)  | 
1377  |  |                          : GetExternalPointerTableBase(isolate);  | 
1378  |  |     internal::ExternalPointerHandle handle =  | 
1379  |  |         ReadRawField<ExternalPointerHandle>(heap_object_ptr, offset);  | 
1380  |  |     uint32_t index = handle >> kExternalPointerIndexShift;  | 
1381  |  |     std::atomic<Address>* ptr =  | 
1382  |  |         reinterpret_cast<std::atomic<Address>*>(&table[index]);  | 
1383  |  |     Address entry = std::atomic_load_explicit(ptr, std::memory_order_relaxed);  | 
1384  |  |     ExternalPointerTag actual_tag = static_cast<ExternalPointerTag>(  | 
1385  |  |         (entry & kExternalPointerTagMask) >> kExternalPointerTagShift);  | 
1386  |  |     if (V8_LIKELY(tag_range.Contains(actual_tag))) { | 
1387  |  |       return entry & kExternalPointerPayloadMask;  | 
1388  |  |     } else { | 
1389  |  |       return 0;  | 
1390  |  |     }  | 
1391  |  |     return entry;  | 
1392  |  | #else  | 
1393  | 5.05M  |     return ReadRawField<Address>(heap_object_ptr, offset);  | 
1394  | 5.05M  | #endif  // V8_ENABLE_SANDBOX  | 
1395  | 5.05M  |   }  | 
1396  |  |  | 
1397  |  | #ifdef V8_COMPRESS_POINTERS  | 
1398  |  |   V8_INLINE static Address GetPtrComprCageBaseFromOnHeapAddress(Address addr) { | 
1399  |  |     return addr & -static_cast<intptr_t>(kPtrComprCageBaseAlignment);  | 
1400  |  |   }  | 
1401  |  |  | 
1402  |  |   V8_INLINE static uint32_t CompressTagged(Address value) { | 
1403  |  |     return static_cast<uint32_t>(value);  | 
1404  |  |   }  | 
1405  |  |  | 
1406  |  |   V8_INLINE static Address DecompressTaggedField(Address heap_object_ptr,  | 
1407  |  |                                                  uint32_t value) { | 
1408  |  |     Address base = GetPtrComprCageBaseFromOnHeapAddress(heap_object_ptr);  | 
1409  |  |     return base + static_cast<Address>(static_cast<uintptr_t>(value));  | 
1410  |  |   }  | 
1411  |  |  | 
1412  |  | #endif  // V8_COMPRESS_POINTERS  | 
1413  |  | };  | 
1414  |  |  | 
1415  |  | // Only perform cast check for types derived from v8::Data since  | 
1416  |  | // other types do not implement the Cast method.  | 
1417  |  | template <bool PerformCheck>  | 
1418  |  | struct CastCheck { | 
1419  |  |   template <class T>  | 
1420  |  |   static void Perform(T* data);  | 
1421  |  | };  | 
1422  |  |  | 
1423  |  | template <>  | 
1424  |  | template <class T>  | 
1425  | 0  | void CastCheck<true>::Perform(T* data) { | 
1426  | 0  |   T::Cast(data);  | 
1427  | 0  | } Unexecuted instantiation: void v8::internal::CastCheck<true>::Perform<v8::Private>(v8::Private*) Unexecuted instantiation: void v8::internal::CastCheck<true>::Perform<v8::Symbol>(v8::Symbol*) Unexecuted instantiation: void v8::internal::CastCheck<true>::Perform<v8::String>(v8::String*) Unexecuted instantiation: void v8::internal::CastCheck<true>::Perform<v8::DictionaryTemplate>(v8::DictionaryTemplate*) Unexecuted instantiation: void v8::internal::CastCheck<true>::Perform<v8::FunctionTemplate>(v8::FunctionTemplate*) Unexecuted instantiation: void v8::internal::CastCheck<true>::Perform<v8::ObjectTemplate>(v8::ObjectTemplate*) Unexecuted instantiation: void v8::internal::CastCheck<true>::Perform<v8::Uint32Array>(v8::Uint32Array*) Unexecuted instantiation: void v8::internal::CastCheck<true>::Perform<v8::Uint8Array>(v8::Uint8Array*) Unexecuted instantiation: void v8::internal::CastCheck<true>::Perform<v8::Float64Array>(v8::Float64Array*) Unexecuted instantiation: void v8::internal::CastCheck<true>::Perform<v8::Array>(v8::Array*) Unexecuted instantiation: void v8::internal::CastCheck<true>::Perform<v8::Object>(v8::Object*) Unexecuted instantiation: void v8::internal::CastCheck<true>::Perform<v8::Int32Array>(v8::Int32Array*) Unexecuted instantiation: void v8::internal::CastCheck<true>::Perform<v8::BigInt64Array>(v8::BigInt64Array*) Unexecuted instantiation: void v8::internal::CastCheck<true>::Perform<v8::Function>(v8::Function*) Unexecuted instantiation: void v8::internal::CastCheck<true>::Perform<v8::Context>(v8::Context*)  | 
1428  |  |  | 
1429  |  | template <>  | 
1430  |  | template <class T>  | 
1431  |  | void CastCheck<false>::Perform(T* data) {} | 
1432  |  |  | 
1433  |  | template <class T>  | 
1434  | 0  | V8_INLINE void PerformCastCheck(T* data) { | 
1435  | 0  |   CastCheck<std::is_base_of_v<Data, T> &&  | 
1436  | 0  |             !std::is_same_v<Data, std::remove_cv_t<T>>>::Perform(data);  | 
1437  | 0  | } Unexecuted instantiation: void v8::internal::PerformCastCheck<v8::Private>(v8::Private*) Unexecuted instantiation: void v8::internal::PerformCastCheck<v8::Symbol>(v8::Symbol*) Unexecuted instantiation: void v8::internal::PerformCastCheck<v8::String>(v8::String*) Unexecuted instantiation: void v8::internal::PerformCastCheck<v8::DictionaryTemplate>(v8::DictionaryTemplate*) Unexecuted instantiation: void v8::internal::PerformCastCheck<v8::FunctionTemplate>(v8::FunctionTemplate*) Unexecuted instantiation: void v8::internal::PerformCastCheck<v8::ObjectTemplate>(v8::ObjectTemplate*) Unexecuted instantiation: void v8::internal::PerformCastCheck<v8::Uint32Array>(v8::Uint32Array*) Unexecuted instantiation: void v8::internal::PerformCastCheck<v8::Uint8Array>(v8::Uint8Array*) Unexecuted instantiation: void v8::internal::PerformCastCheck<v8::Float64Array>(v8::Float64Array*) Unexecuted instantiation: void v8::internal::PerformCastCheck<v8::Array>(v8::Array*) Unexecuted instantiation: void v8::internal::PerformCastCheck<v8::Object>(v8::Object*) Unexecuted instantiation: void v8::internal::PerformCastCheck<v8::Int32Array>(v8::Int32Array*) Unexecuted instantiation: void v8::internal::PerformCastCheck<v8::BigInt64Array>(v8::BigInt64Array*) Unexecuted instantiation: void v8::internal::PerformCastCheck<v8::Function>(v8::Function*) Unexecuted instantiation: void v8::internal::PerformCastCheck<v8::Context>(v8::Context*)  | 
1438  |  |  | 
1439  |  | // A base class for backing stores, which is needed due to vagaries of  | 
1440  |  | // how static casts work with std::shared_ptr.  | 
1441  |  | class BackingStoreBase {}; | 
1442  |  |  | 
1443  |  | // The maximum value in enum GarbageCollectionReason, defined in heap.h.  | 
1444  |  | // This is needed for histograms sampling garbage collection reasons.  | 
1445  |  | constexpr int kGarbageCollectionReasonMaxValue = 30;  | 
1446  |  |  | 
1447  |  | // Base class for the address block allocator compatible with standard  | 
1448  |  | // containers, which registers its allocated range as strong roots.  | 
1449  |  | class V8_EXPORT StrongRootAllocatorBase { | 
1450  |  |  public:  | 
1451  | 0  |   Heap* heap() const { return heap_; } | 
1452  |  |  | 
1453  |  |   friend bool operator==(const StrongRootAllocatorBase& a,  | 
1454  | 0  |                          const StrongRootAllocatorBase& b) { | 
1455  | 0  |     // TODO(pkasting): Replace this body with `= default` after dropping support  | 
1456  | 0  |     // for old gcc versions.  | 
1457  | 0  |     return a.heap_ == b.heap_;  | 
1458  | 0  |   }  | 
1459  |  |  | 
1460  |  |  protected:  | 
1461  | 0  |   explicit StrongRootAllocatorBase(Heap* heap) : heap_(heap) {} | 
1462  |  |   explicit StrongRootAllocatorBase(LocalHeap* heap);  | 
1463  |  |   explicit StrongRootAllocatorBase(Isolate* isolate);  | 
1464  |  |   explicit StrongRootAllocatorBase(v8::Isolate* isolate);  | 
1465  |  |   explicit StrongRootAllocatorBase(LocalIsolate* isolate);  | 
1466  |  |  | 
1467  |  |   // Allocate/deallocate a range of n elements of type internal::Address.  | 
1468  |  |   Address* allocate_impl(size_t n);  | 
1469  |  |   void deallocate_impl(Address* p, size_t n) noexcept;  | 
1470  |  |  | 
1471  |  |  private:  | 
1472  |  |   Heap* heap_;  | 
1473  |  | };  | 
1474  |  |  | 
1475  |  | // The general version of this template behaves just as std::allocator, with  | 
1476  |  | // the exception that the constructor takes the isolate as parameter. Only  | 
1477  |  | // specialized versions, e.g., internal::StrongRootAllocator<internal::Address>  | 
1478  |  | // and internal::StrongRootAllocator<v8::Local<T>> register the allocated range  | 
1479  |  | // as strong roots.  | 
1480  |  | template <typename T>  | 
1481  |  | class StrongRootAllocator : private std::allocator<T> { | 
1482  |  |  public:  | 
1483  |  |   using value_type = T;  | 
1484  |  |  | 
1485  |  |   template <typename HeapOrIsolateT>  | 
1486  |  |   explicit StrongRootAllocator(HeapOrIsolateT*) {} | 
1487  |  |   template <typename U>  | 
1488  |  |   StrongRootAllocator(const StrongRootAllocator<U>& other) noexcept {} | 
1489  |  |  | 
1490  |  |   using std::allocator<T>::allocate;  | 
1491  |  |   using std::allocator<T>::deallocate;  | 
1492  |  | };  | 
1493  |  |  | 
1494  |  | // TODO(pkasting): Replace with `requires` clauses after dropping support for  | 
1495  |  | // old gcc versions.  | 
1496  |  | template <typename Iterator, typename = void>  | 
1497  |  | inline constexpr bool kHaveIteratorConcept = false;  | 
1498  |  | template <typename Iterator>  | 
1499  |  | inline constexpr bool kHaveIteratorConcept<  | 
1500  |  |     Iterator, std::void_t<typename Iterator::iterator_concept>> = true;  | 
1501  |  |  | 
1502  |  | template <typename Iterator, typename = void>  | 
1503  |  | inline constexpr bool kHaveIteratorCategory = false;  | 
1504  |  | template <typename Iterator>  | 
1505  |  | inline constexpr bool kHaveIteratorCategory<  | 
1506  |  |     Iterator, std::void_t<typename Iterator::iterator_category>> = true;  | 
1507  |  |  | 
1508  |  | // Helper struct that contains an `iterator_concept` type alias only when either  | 
1509  |  | // `Iterator` or `std::iterator_traits<Iterator>` do.  | 
1510  |  | // Default: no alias.  | 
1511  |  | template <typename Iterator, typename = void>  | 
1512  |  | struct MaybeDefineIteratorConcept {}; | 
1513  |  | // Use `Iterator::iterator_concept` if available.  | 
1514  |  | template <typename Iterator>  | 
1515  |  | struct MaybeDefineIteratorConcept<  | 
1516  |  |     Iterator, std::enable_if_t<kHaveIteratorConcept<Iterator>>> { | 
1517  |  |   using iterator_concept = typename Iterator::iterator_concept;  | 
1518  |  | };  | 
1519  |  | // Otherwise fall back to `std::iterator_traits<Iterator>` if possible.  | 
1520  |  | template <typename Iterator>  | 
1521  |  | struct MaybeDefineIteratorConcept<  | 
1522  |  |     Iterator, std::enable_if_t<kHaveIteratorCategory<Iterator> &&  | 
1523  |  |                                !kHaveIteratorConcept<Iterator>>> { | 
1524  |  |   // There seems to be no feature-test macro covering this, so use the  | 
1525  |  |   // presence of `<ranges>` as a crude proxy, since it was added to the  | 
1526  |  |   // standard as part of the Ranges papers.  | 
1527  |  |   // TODO(pkasting): Add this unconditionally after dropping support for old  | 
1528  |  |   // libstdc++ versions.  | 
1529  |  | #if __has_include(<ranges>)  | 
1530  |  |   using iterator_concept =  | 
1531  |  |       typename std::iterator_traits<Iterator>::iterator_concept;  | 
1532  |  | #endif  | 
1533  |  | };  | 
1534  |  |  | 
1535  |  | // A class of iterators that wrap some different iterator type.  | 
1536  |  | // If specified, ElementType is the type of element accessed by the wrapper  | 
1537  |  | // iterator; in this case, the actual reference and pointer types of Iterator  | 
1538  |  | // must be convertible to ElementType& and ElementType*, respectively.  | 
1539  |  | template <typename Iterator, typename ElementType = void>  | 
1540  |  | class WrappedIterator : public MaybeDefineIteratorConcept<Iterator> { | 
1541  |  |  public:  | 
1542  |  |   static_assert(  | 
1543  |  |       std::is_void_v<ElementType> ||  | 
1544  |  |       (std::is_convertible_v<typename std::iterator_traits<Iterator>::pointer,  | 
1545  |  |                              std::add_pointer_t<ElementType>> &&  | 
1546  |  |        std::is_convertible_v<typename std::iterator_traits<Iterator>::reference,  | 
1547  |  |                              std::add_lvalue_reference_t<ElementType>>));  | 
1548  |  |  | 
1549  |  |   using difference_type =  | 
1550  |  |       typename std::iterator_traits<Iterator>::difference_type;  | 
1551  |  |   using value_type =  | 
1552  |  |       std::conditional_t<std::is_void_v<ElementType>,  | 
1553  |  |                          typename std::iterator_traits<Iterator>::value_type,  | 
1554  |  |                          ElementType>;  | 
1555  |  |   using pointer =  | 
1556  |  |       std::conditional_t<std::is_void_v<ElementType>,  | 
1557  |  |                          typename std::iterator_traits<Iterator>::pointer,  | 
1558  |  |                          std::add_pointer_t<ElementType>>;  | 
1559  |  |   using reference =  | 
1560  |  |       std::conditional_t<std::is_void_v<ElementType>,  | 
1561  |  |                          typename std::iterator_traits<Iterator>::reference,  | 
1562  |  |                          std::add_lvalue_reference_t<ElementType>>;  | 
1563  |  |   using iterator_category =  | 
1564  |  |       typename std::iterator_traits<Iterator>::iterator_category;  | 
1565  |  |  | 
1566  |  |   constexpr WrappedIterator() noexcept = default;  | 
1567  | 0  |   constexpr explicit WrappedIterator(Iterator it) noexcept : it_(it) {}Unexecuted instantiation: v8::internal::WrappedIterator<std::__1::__wrap_iter<v8::internal::LocalUnchecked<v8::Message>*>, v8::Local<v8::Message> >::WrappedIterator(std::__1::__wrap_iter<v8::internal::LocalUnchecked<v8::Message>*>) Unexecuted instantiation: v8::internal::WrappedIterator<std::__1::__wrap_iter<v8::internal::LocalUnchecked<v8::String>*>, v8::Local<v8::String> >::WrappedIterator(std::__1::__wrap_iter<v8::internal::LocalUnchecked<v8::String>*>) Unexecuted instantiation: v8::internal::WrappedIterator<std::__1::__wrap_iter<v8::internal::LocalUnchecked<v8::Value>*>, v8::Local<v8::Value> >::WrappedIterator(std::__1::__wrap_iter<v8::internal::LocalUnchecked<v8::Value>*>) Unexecuted instantiation: v8::internal::WrappedIterator<std::__1::__wrap_iter<v8::internal::LocalUnchecked<v8::ArrayBuffer>*>, v8::Local<v8::ArrayBuffer> >::WrappedIterator(std::__1::__wrap_iter<v8::internal::LocalUnchecked<v8::ArrayBuffer>*>)  | 
1568  |  |  | 
1569  |  |   // TODO(pkasting): Switch to `requires` and concepts after dropping support  | 
1570  |  |   // for old gcc and libstdc++ versions.  | 
1571  |  |   template <typename OtherIterator, typename OtherElementType,  | 
1572  |  |             typename = std::enable_if_t<  | 
1573  |  |                 std::is_convertible_v<OtherIterator, Iterator>>>  | 
1574  |  |   constexpr WrappedIterator(  | 
1575  |  |       const WrappedIterator<OtherIterator, OtherElementType>& other) noexcept  | 
1576  |  |       : it_(other.base()) {} | 
1577  |  |  | 
1578  | 0  |   [[nodiscard]] constexpr reference operator*() const noexcept { return *it_; }Unexecuted instantiation: v8::internal::WrappedIterator<std::__1::__wrap_iter<v8::internal::LocalUnchecked<v8::Message>*>, v8::Local<v8::Message> >::operator*() const Unexecuted instantiation: v8::internal::WrappedIterator<std::__1::__wrap_iter<v8::internal::LocalUnchecked<v8::ArrayBuffer>*>, v8::Local<v8::ArrayBuffer> >::operator*() const  | 
1579  | 0  |   [[nodiscard]] constexpr pointer operator->() const noexcept { | 
1580  |  |     if constexpr (std::is_pointer_v<Iterator>) { | 
1581  |  |       return it_;  | 
1582  | 0  |     } else { | 
1583  | 0  |       return it_.operator->();  | 
1584  | 0  |     }  | 
1585  | 0  |   } Unexecuted instantiation: v8::internal::WrappedIterator<std::__1::__wrap_iter<v8::internal::LocalUnchecked<v8::String>*>, v8::Local<v8::String> >::operator->() const Unexecuted instantiation: v8::internal::WrappedIterator<std::__1::__wrap_iter<v8::internal::LocalUnchecked<v8::ArrayBuffer>*>, v8::Local<v8::ArrayBuffer> >::operator->() const Unexecuted instantiation: v8::internal::WrappedIterator<std::__1::__wrap_iter<v8::internal::LocalUnchecked<v8::Value>*>, v8::Local<v8::Value> >::operator->() const  | 
1586  |  |  | 
1587  |  |   template <typename OtherIterator, typename OtherElementType>  | 
1588  |  |   [[nodiscard]] constexpr bool operator==(  | 
1589  |  |       const WrappedIterator<OtherIterator, OtherElementType>& other)  | 
1590  | 0  |       const noexcept { | 
1591  | 0  |     return it_ == other.base();  | 
1592  | 0  |   } Unexecuted instantiation: bool v8::internal::WrappedIterator<std::__1::__wrap_iter<v8::internal::LocalUnchecked<v8::Message>*>, v8::Local<v8::Message> >::operator==<std::__1::__wrap_iter<v8::internal::LocalUnchecked<v8::Message>*>, v8::Local<v8::Message> >(v8::internal::WrappedIterator<std::__1::__wrap_iter<v8::internal::LocalUnchecked<v8::Message>*>, v8::Local<v8::Message> > const&) const Unexecuted instantiation: bool v8::internal::WrappedIterator<std::__1::__wrap_iter<v8::internal::LocalUnchecked<v8::ArrayBuffer>*>, v8::Local<v8::ArrayBuffer> >::operator==<std::__1::__wrap_iter<v8::internal::LocalUnchecked<v8::ArrayBuffer>*>, v8::Local<v8::ArrayBuffer> >(v8::internal::WrappedIterator<std::__1::__wrap_iter<v8::internal::LocalUnchecked<v8::ArrayBuffer>*>, v8::Local<v8::ArrayBuffer> > const&) const  | 
1593  |  | #if V8_HAVE_SPACESHIP_OPERATOR  | 
1594  |  |   template <typename OtherIterator, typename OtherElementType>  | 
1595  |  |   [[nodiscard]] constexpr auto operator<=>(  | 
1596  |  |       const WrappedIterator<OtherIterator, OtherElementType>& other)  | 
1597  |  |       const noexcept { | 
1598  |  |     if constexpr (std::three_way_comparable_with<Iterator, OtherIterator>) { | 
1599  |  |       return it_ <=> other.base();  | 
1600  |  |     } else if constexpr (std::totally_ordered_with<Iterator, OtherIterator>) { | 
1601  |  |       if (it_ < other.base()) { | 
1602  |  |         return std::strong_ordering::less;  | 
1603  |  |       }  | 
1604  |  |       return (it_ > other.base()) ? std::strong_ordering::greater  | 
1605  |  |                                   : std::strong_ordering::equal;  | 
1606  |  |     } else { | 
1607  |  |       if (it_ < other.base()) { | 
1608  |  |         return std::partial_ordering::less;  | 
1609  |  |       }  | 
1610  |  |       if (other.base() < it_) { | 
1611  |  |         return std::partial_ordering::greater;  | 
1612  |  |       }  | 
1613  |  |       return (it_ == other.base()) ? std::partial_ordering::equivalent  | 
1614  |  |                                    : std::partial_ordering::unordered;  | 
1615  |  |     }  | 
1616  |  |   }  | 
1617  |  | #else  | 
1618  |  |   // Assume that if spaceship isn't present, operator rewriting might not be  | 
1619  |  |   // either.  | 
1620  |  |   template <typename OtherIterator, typename OtherElementType>  | 
1621  |  |   [[nodiscard]] constexpr bool operator!=(  | 
1622  |  |       const WrappedIterator<OtherIterator, OtherElementType>& other)  | 
1623  |  |       const noexcept { | 
1624  |  |     return it_ != other.base();  | 
1625  |  |   }  | 
1626  |  |  | 
1627  |  |   template <typename OtherIterator, typename OtherElementType>  | 
1628  |  |   [[nodiscard]] constexpr bool operator<(  | 
1629  |  |       const WrappedIterator<OtherIterator, OtherElementType>& other)  | 
1630  |  |       const noexcept { | 
1631  |  |     return it_ < other.base();  | 
1632  |  |   }  | 
1633  |  |   template <typename OtherIterator, typename OtherElementType>  | 
1634  |  |   [[nodiscard]] constexpr bool operator<=(  | 
1635  |  |       const WrappedIterator<OtherIterator, OtherElementType>& other)  | 
1636  |  |       const noexcept { | 
1637  |  |     return it_ <= other.base();  | 
1638  |  |   }  | 
1639  |  |   template <typename OtherIterator, typename OtherElementType>  | 
1640  |  |   [[nodiscard]] constexpr bool operator>(  | 
1641  |  |       const WrappedIterator<OtherIterator, OtherElementType>& other)  | 
1642  |  |       const noexcept { | 
1643  |  |     return it_ > other.base();  | 
1644  |  |   }  | 
1645  |  |   template <typename OtherIterator, typename OtherElementType>  | 
1646  |  |   [[nodiscard]] constexpr bool operator>=(  | 
1647  |  |       const WrappedIterator<OtherIterator, OtherElementType>& other)  | 
1648  |  |       const noexcept { | 
1649  |  |     return it_ >= other.base();  | 
1650  |  |   }  | 
1651  |  | #endif  | 
1652  |  |  | 
1653  | 0  |   constexpr WrappedIterator& operator++() noexcept { | 
1654  | 0  |     ++it_;  | 
1655  | 0  |     return *this;  | 
1656  | 0  |   } Unexecuted instantiation: v8::internal::WrappedIterator<std::__1::__wrap_iter<v8::internal::LocalUnchecked<v8::Message>*>, v8::Local<v8::Message> >::operator++() Unexecuted instantiation: v8::internal::WrappedIterator<std::__1::__wrap_iter<v8::internal::LocalUnchecked<v8::ArrayBuffer>*>, v8::Local<v8::ArrayBuffer> >::operator++()  | 
1657  |  |   constexpr WrappedIterator operator++(int) noexcept { | 
1658  |  |     WrappedIterator result(*this);  | 
1659  |  |     ++(*this);  | 
1660  |  |     return result;  | 
1661  |  |   }  | 
1662  |  |  | 
1663  |  |   constexpr WrappedIterator& operator--() noexcept { | 
1664  |  |     --it_;  | 
1665  |  |     return *this;  | 
1666  |  |   }  | 
1667  |  |   constexpr WrappedIterator operator--(int) noexcept { | 
1668  |  |     WrappedIterator result(*this);  | 
1669  |  |     --(*this);  | 
1670  |  |     return result;  | 
1671  |  |   }  | 
1672  |  |   [[nodiscard]] constexpr WrappedIterator operator+(  | 
1673  | 0  |       difference_type n) const noexcept { | 
1674  | 0  |     WrappedIterator result(*this);  | 
1675  | 0  |     result += n;  | 
1676  | 0  |     return result;  | 
1677  | 0  |   } Unexecuted instantiation: v8::internal::WrappedIterator<std::__1::__wrap_iter<v8::internal::LocalUnchecked<v8::ArrayBuffer>*>, v8::Local<v8::ArrayBuffer> >::operator+(long) const Unexecuted instantiation: v8::internal::WrappedIterator<std::__1::__wrap_iter<v8::internal::LocalUnchecked<v8::Value>*>, v8::Local<v8::Value> >::operator+(long) const  | 
1678  |  |   [[nodiscard]] friend constexpr WrappedIterator operator+(  | 
1679  |  |       difference_type n, const WrappedIterator& x) noexcept { | 
1680  |  |     return x + n;  | 
1681  |  |   }  | 
1682  | 0  |   constexpr WrappedIterator& operator+=(difference_type n) noexcept { | 
1683  | 0  |     it_ += n;  | 
1684  | 0  |     return *this;  | 
1685  | 0  |   } Unexecuted instantiation: v8::internal::WrappedIterator<std::__1::__wrap_iter<v8::internal::LocalUnchecked<v8::ArrayBuffer>*>, v8::Local<v8::ArrayBuffer> >::operator+=(long) Unexecuted instantiation: v8::internal::WrappedIterator<std::__1::__wrap_iter<v8::internal::LocalUnchecked<v8::Value>*>, v8::Local<v8::Value> >::operator+=(long)  | 
1686  |  |   [[nodiscard]] constexpr WrappedIterator operator-(  | 
1687  |  |       difference_type n) const noexcept { | 
1688  |  |     return *this + -n;  | 
1689  |  |   }  | 
1690  |  |   constexpr WrappedIterator& operator-=(difference_type n) noexcept { | 
1691  |  |     return *this += -n;  | 
1692  |  |   }  | 
1693  |  |   template <typename OtherIterator, typename OtherElementType>  | 
1694  |  |   [[nodiscard]] constexpr auto operator-(  | 
1695  |  |       const WrappedIterator<OtherIterator, OtherElementType>& other)  | 
1696  | 0  |       const noexcept { | 
1697  | 0  |     return it_ - other.base();  | 
1698  | 0  |   }  | 
1699  |  |   [[nodiscard]] constexpr reference operator[](  | 
1700  |  |       difference_type n) const noexcept { | 
1701  |  |     return it_[n];  | 
1702  |  |   }  | 
1703  |  |  | 
1704  | 0  |   [[nodiscard]] constexpr const Iterator& base() const noexcept { return it_; }Unexecuted instantiation: v8::internal::WrappedIterator<std::__1::__wrap_iter<v8::internal::LocalUnchecked<v8::Message>*>, v8::Local<v8::Message> >::base() const Unexecuted instantiation: v8::internal::WrappedIterator<std::__1::__wrap_iter<v8::internal::LocalUnchecked<v8::ArrayBuffer>*>, v8::Local<v8::ArrayBuffer> >::base() const  | 
1705  |  |  | 
1706  |  |  private:  | 
1707  |  |   Iterator it_;  | 
1708  |  | };  | 
1709  |  |  | 
1710  |  | // Helper functions about values contained in handles.  | 
1711  |  | // A value is either an indirect pointer or a direct pointer, depending on  | 
1712  |  | // whether direct local support is enabled.  | 
1713  |  | class ValueHelper final { | 
1714  |  |  public:  | 
1715  |  |   // ValueHelper::InternalRepresentationType is an abstract type that  | 
1716  |  |   // corresponds to the internal representation of v8::Local and essentially  | 
1717  |  |   // to what T* really is (these two are always in sync). This type is used in  | 
1718  |  |   // methods like GetDataFromSnapshotOnce that need access to a handle's  | 
1719  |  |   // internal representation. In particular, if `x` is a `v8::Local<T>`, then  | 
1720  |  |   // `v8::Local<T>::FromRepr(x.repr())` gives exactly the same handle as `x`.  | 
1721  |  | #ifdef V8_ENABLE_DIRECT_HANDLE  | 
1722  |  |   static constexpr Address kTaggedNullAddress = 1;  | 
1723  |  |  | 
1724  |  |   using InternalRepresentationType = internal::Address;  | 
1725  |  |   static constexpr InternalRepresentationType kEmpty = kTaggedNullAddress;  | 
1726  |  | #else  | 
1727  |  |   using InternalRepresentationType = internal::Address*;  | 
1728  |  |   static constexpr InternalRepresentationType kEmpty = nullptr;  | 
1729  |  | #endif  // V8_ENABLE_DIRECT_HANDLE  | 
1730  |  |  | 
1731  |  |   template <typename T>  | 
1732  | 1.55M  |   V8_INLINE static bool IsEmpty(T* value) { | 
1733  | 1.55M  |     return ValueAsRepr(value) == kEmpty;  | 
1734  | 1.55M  |   } Unexecuted instantiation: bool v8::internal::ValueHelper::IsEmpty<v8::Data>(v8::Data*) bool v8::internal::ValueHelper::IsEmpty<v8::Context>(v8::Context*) Line  | Count  | Source  |  1732  | 35.7k  |   V8_INLINE static bool IsEmpty(T* value) { |  1733  | 35.7k  |     return ValueAsRepr(value) == kEmpty;  |  1734  | 35.7k  |   }  |  
 bool v8::internal::ValueHelper::IsEmpty<v8::Function>(v8::Function*) Line  | Count  | Source  |  1732  | 875  |   V8_INLINE static bool IsEmpty(T* value) { |  1733  | 875  |     return ValueAsRepr(value) == kEmpty;  |  1734  | 875  |   }  |  
 bool v8::internal::ValueHelper::IsEmpty<v8::Object>(v8::Object*) Line  | Count  | Source  |  1732  | 840  |   V8_INLINE static bool IsEmpty(T* value) { |  1733  | 840  |     return ValueAsRepr(value) == kEmpty;  |  1734  | 840  |   }  |  
 bool v8::internal::ValueHelper::IsEmpty<v8::Value>(v8::Value*) Line  | Count  | Source  |  1732  | 1.51M  |   V8_INLINE static bool IsEmpty(T* value) { |  1733  | 1.51M  |     return ValueAsRepr(value) == kEmpty;  |  1734  | 1.51M  |   }  |  
 Unexecuted instantiation: bool v8::internal::ValueHelper::IsEmpty<v8::Int8Array>(v8::Int8Array*) bool v8::internal::ValueHelper::IsEmpty<v8::Uint8Array>(v8::Uint8Array*) Line  | Count  | Source  |  1732  | 245  |   V8_INLINE static bool IsEmpty(T* value) { |  1733  | 245  |     return ValueAsRepr(value) == kEmpty;  |  1734  | 245  |   }  |  
 Unexecuted instantiation: bool v8::internal::ValueHelper::IsEmpty<v8::Int16Array>(v8::Int16Array*) Unexecuted instantiation: bool v8::internal::ValueHelper::IsEmpty<v8::Uint16Array>(v8::Uint16Array*) bool v8::internal::ValueHelper::IsEmpty<v8::Int32Array>(v8::Int32Array*) Line  | Count  | Source  |  1732  | 175  |   V8_INLINE static bool IsEmpty(T* value) { |  1733  | 175  |     return ValueAsRepr(value) == kEmpty;  |  1734  | 175  |   }  |  
 bool v8::internal::ValueHelper::IsEmpty<v8::Uint32Array>(v8::Uint32Array*) Line  | Count  | Source  |  1732  | 490  |   V8_INLINE static bool IsEmpty(T* value) { |  1733  | 490  |     return ValueAsRepr(value) == kEmpty;  |  1734  | 490  |   }  |  
 Unexecuted instantiation: bool v8::internal::ValueHelper::IsEmpty<v8::Float32Array>(v8::Float32Array*) bool v8::internal::ValueHelper::IsEmpty<v8::Float64Array>(v8::Float64Array*) Line  | Count  | Source  |  1732  | 350  |   V8_INLINE static bool IsEmpty(T* value) { |  1733  | 350  |     return ValueAsRepr(value) == kEmpty;  |  1734  | 350  |   }  |  
 bool v8::internal::ValueHelper::IsEmpty<v8::BigInt64Array>(v8::BigInt64Array*) Line  | Count  | Source  |  1732  | 140  |   V8_INLINE static bool IsEmpty(T* value) { |  1733  | 140  |     return ValueAsRepr(value) == kEmpty;  |  1734  | 140  |   }  |  
 bool v8::internal::ValueHelper::IsEmpty<v8::Array>(v8::Array*) Line  | Count  | Source  |  1732  | 35  |   V8_INLINE static bool IsEmpty(T* value) { |  1733  | 35  |     return ValueAsRepr(value) == kEmpty;  |  1734  | 35  |   }  |  
 Unexecuted instantiation: bool v8::internal::ValueHelper::IsEmpty<v8::Module>(v8::Module*) Unexecuted instantiation: bool v8::internal::ValueHelper::IsEmpty<v8::ArrayBuffer>(v8::ArrayBuffer*) Unexecuted instantiation: bool v8::internal::ValueHelper::IsEmpty<v8::UnboundScript>(v8::UnboundScript*) Unexecuted instantiation: bool v8::internal::ValueHelper::IsEmpty<v8::Promise>(v8::Promise*) Unexecuted instantiation: bool v8::internal::ValueHelper::IsEmpty<v8::Promise::Resolver>(v8::Promise::Resolver*) Unexecuted instantiation: bool v8::internal::ValueHelper::IsEmpty<v8::SharedArrayBuffer>(v8::SharedArrayBuffer*) Unexecuted instantiation: bool v8::internal::ValueHelper::IsEmpty<v8::RegExp>(v8::RegExp*) Unexecuted instantiation: bool v8::internal::ValueHelper::IsEmpty<v8::WasmMemoryObject>(v8::WasmMemoryObject*) Unexecuted instantiation: bool v8::internal::ValueHelper::IsEmpty<v8::Map>(v8::Map*) Unexecuted instantiation: bool v8::internal::ValueHelper::IsEmpty<v8::ArrayBufferView>(v8::ArrayBufferView*) Unexecuted instantiation: bool v8::internal::ValueHelper::IsEmpty<v8::FunctionTemplate>(v8::FunctionTemplate*)  | 
1735  |  |  | 
1736  |  |   // Returns a handle's "value" for all kinds of abstract handles. For Local,  | 
1737  |  |   // it is equivalent to `*handle`. The variadic parameters support handle  | 
1738  |  |   // types with extra type parameters, like `Persistent<T, M>`.  | 
1739  |  |   template <template <typename T, typename... Ms> typename H, typename T,  | 
1740  |  |             typename... Ms>  | 
1741  |  |   V8_INLINE static T* HandleAsValue(const H<T, Ms...>& handle) { | 
1742  |  |     return handle.template value<T>();  | 
1743  |  |   }  | 
1744  |  |  | 
1745  |  | #ifdef V8_ENABLE_DIRECT_HANDLE  | 
1746  |  |  | 
1747  |  |   template <typename T>  | 
1748  |  |   V8_INLINE static Address ValueAsAddress(const T* value) { | 
1749  |  |     return reinterpret_cast<Address>(value);  | 
1750  |  |   }  | 
1751  |  |  | 
1752  |  |   template <typename T, bool check_null = true, typename S>  | 
1753  |  |   V8_INLINE static T* SlotAsValue(S* slot) { | 
1754  |  |     if (check_null && slot == nullptr) { | 
1755  |  |       return reinterpret_cast<T*>(kTaggedNullAddress);  | 
1756  |  |     }  | 
1757  |  |     return *reinterpret_cast<T**>(slot);  | 
1758  |  |   }  | 
1759  |  |  | 
1760  |  |   template <typename T>  | 
1761  |  |   V8_INLINE static InternalRepresentationType ValueAsRepr(const T* value) { | 
1762  |  |     return reinterpret_cast<InternalRepresentationType>(value);  | 
1763  |  |   }  | 
1764  |  |  | 
1765  |  |   template <typename T>  | 
1766  |  |   V8_INLINE static T* ReprAsValue(InternalRepresentationType repr) { | 
1767  |  |     return reinterpret_cast<T*>(repr);  | 
1768  |  |   }  | 
1769  |  |  | 
1770  |  | #else  // !V8_ENABLE_DIRECT_HANDLE  | 
1771  |  |  | 
1772  |  |   template <typename T>  | 
1773  | 6.86M  |   V8_INLINE static Address ValueAsAddress(const T* value) { | 
1774  | 6.86M  |     return *reinterpret_cast<const Address*>(value);  | 
1775  | 6.86M  |   } unsigned long v8::internal::ValueHelper::ValueAsAddress<v8::Value>(v8::Value const*) Line  | Count  | Source  |  1773  | 1.76M  |   V8_INLINE static Address ValueAsAddress(const T* value) { |  1774  | 1.76M  |     return *reinterpret_cast<const Address*>(value);  |  1775  | 1.76M  |   }  |  
 Unexecuted instantiation: unsigned long v8::internal::ValueHelper::ValueAsAddress<v8::Data>(v8::Data const*) Unexecuted instantiation: unsigned long v8::internal::ValueHelper::ValueAsAddress<v8::String>(v8::String const*) unsigned long v8::internal::ValueHelper::ValueAsAddress<v8::Object>(v8::Object const*) Line  | Count  | Source  |  1773  | 840  |   V8_INLINE static Address ValueAsAddress(const T* value) { |  1774  | 840  |     return *reinterpret_cast<const Address*>(value);  |  1775  | 840  |   }  |  
 unsigned long v8::internal::ValueHelper::ValueAsAddress<v8::Context>(v8::Context const*) Line  | Count  | Source  |  1773  | 5.09M  |   V8_INLINE static Address ValueAsAddress(const T* value) { |  1774  | 5.09M  |     return *reinterpret_cast<const Address*>(value);  |  1775  | 5.09M  |   }  |  
 unsigned long v8::internal::ValueHelper::ValueAsAddress<v8::Function>(v8::Function const*) Line  | Count  | Source  |  1773  | 875  |   V8_INLINE static Address ValueAsAddress(const T* value) { |  1774  | 875  |     return *reinterpret_cast<const Address*>(value);  |  1775  | 875  |   }  |  
 Unexecuted instantiation: unsigned long v8::internal::ValueHelper::ValueAsAddress<v8::Int8Array>(v8::Int8Array const*) unsigned long v8::internal::ValueHelper::ValueAsAddress<v8::Uint8Array>(v8::Uint8Array const*) Line  | Count  | Source  |  1773  | 245  |   V8_INLINE static Address ValueAsAddress(const T* value) { |  1774  | 245  |     return *reinterpret_cast<const Address*>(value);  |  1775  | 245  |   }  |  
 Unexecuted instantiation: unsigned long v8::internal::ValueHelper::ValueAsAddress<v8::Int16Array>(v8::Int16Array const*) Unexecuted instantiation: unsigned long v8::internal::ValueHelper::ValueAsAddress<v8::Uint16Array>(v8::Uint16Array const*) unsigned long v8::internal::ValueHelper::ValueAsAddress<v8::Int32Array>(v8::Int32Array const*) Line  | Count  | Source  |  1773  | 175  |   V8_INLINE static Address ValueAsAddress(const T* value) { |  1774  | 175  |     return *reinterpret_cast<const Address*>(value);  |  1775  | 175  |   }  |  
 unsigned long v8::internal::ValueHelper::ValueAsAddress<v8::Uint32Array>(v8::Uint32Array const*) Line  | Count  | Source  |  1773  | 490  |   V8_INLINE static Address ValueAsAddress(const T* value) { |  1774  | 490  |     return *reinterpret_cast<const Address*>(value);  |  1775  | 490  |   }  |  
 Unexecuted instantiation: unsigned long v8::internal::ValueHelper::ValueAsAddress<v8::Float32Array>(v8::Float32Array const*) unsigned long v8::internal::ValueHelper::ValueAsAddress<v8::Float64Array>(v8::Float64Array const*) Line  | Count  | Source  |  1773  | 350  |   V8_INLINE static Address ValueAsAddress(const T* value) { |  1774  | 350  |     return *reinterpret_cast<const Address*>(value);  |  1775  | 350  |   }  |  
 unsigned long v8::internal::ValueHelper::ValueAsAddress<v8::BigInt64Array>(v8::BigInt64Array const*) Line  | Count  | Source  |  1773  | 140  |   V8_INLINE static Address ValueAsAddress(const T* value) { |  1774  | 140  |     return *reinterpret_cast<const Address*>(value);  |  1775  | 140  |   }  |  
 unsigned long v8::internal::ValueHelper::ValueAsAddress<v8::Array>(v8::Array const*) Line  | Count  | Source  |  1773  | 35  |   V8_INLINE static Address ValueAsAddress(const T* value) { |  1774  | 35  |     return *reinterpret_cast<const Address*>(value);  |  1775  | 35  |   }  |  
 Unexecuted instantiation: unsigned long v8::internal::ValueHelper::ValueAsAddress<v8::Private>(v8::Private const*) Unexecuted instantiation: unsigned long v8::internal::ValueHelper::ValueAsAddress<v8::Symbol>(v8::Symbol const*) Unexecuted instantiation: unsigned long v8::internal::ValueHelper::ValueAsAddress<v8::DictionaryTemplate>(v8::DictionaryTemplate const*) Unexecuted instantiation: unsigned long v8::internal::ValueHelper::ValueAsAddress<v8::FunctionTemplate>(v8::FunctionTemplate const*) Unexecuted instantiation: unsigned long v8::internal::ValueHelper::ValueAsAddress<v8::ObjectTemplate>(v8::ObjectTemplate const*) Unexecuted instantiation: unsigned long v8::internal::ValueHelper::ValueAsAddress<v8::Module>(v8::Module const*) Unexecuted instantiation: unsigned long v8::internal::ValueHelper::ValueAsAddress<v8::ArrayBuffer>(v8::ArrayBuffer const*) Unexecuted instantiation: unsigned long v8::internal::ValueHelper::ValueAsAddress<v8::UnboundScript>(v8::UnboundScript const*) Unexecuted instantiation: unsigned long v8::internal::ValueHelper::ValueAsAddress<v8::Promise>(v8::Promise const*) Unexecuted instantiation: unsigned long v8::internal::ValueHelper::ValueAsAddress<v8::Promise::Resolver>(v8::Promise::Resolver const*) Unexecuted instantiation: unsigned long v8::internal::ValueHelper::ValueAsAddress<v8::SharedArrayBuffer>(v8::SharedArrayBuffer const*) Unexecuted instantiation: unsigned long v8::internal::ValueHelper::ValueAsAddress<v8::RegExp>(v8::RegExp const*) Unexecuted instantiation: unsigned long v8::internal::ValueHelper::ValueAsAddress<v8::WasmMemoryObject>(v8::WasmMemoryObject const*) Unexecuted instantiation: unsigned long v8::internal::ValueHelper::ValueAsAddress<v8::Map>(v8::Map const*) Unexecuted instantiation: unsigned long v8::internal::ValueHelper::ValueAsAddress<v8::ArrayBufferView>(v8::ArrayBufferView const*)  | 
1776  |  |  | 
1777  |  |   template <typename T, bool check_null = true, typename S>  | 
1778  | 12.1M  |   V8_INLINE static T* SlotAsValue(S* slot) { | 
1779  | 12.1M  |     return reinterpret_cast<T*>(slot);  | 
1780  | 12.1M  |   } v8::Value* v8::internal::ValueHelper::SlotAsValue<v8::Value, false, unsigned long>(unsigned long*) Line  | Count  | Source  |  1778  | 1.64M  |   V8_INLINE static T* SlotAsValue(S* slot) { |  1779  | 1.64M  |     return reinterpret_cast<T*>(slot);  |  1780  | 1.64M  |   }  |  
 Unexecuted instantiation: v8::Data* v8::internal::ValueHelper::SlotAsValue<v8::Data, false, unsigned long>(unsigned long*) v8::Object* v8::internal::ValueHelper::SlotAsValue<v8::Object, false, unsigned long>(unsigned long*) Line  | Count  | Source  |  1778  | 319k  |   V8_INLINE static T* SlotAsValue(S* slot) { |  1779  | 319k  |     return reinterpret_cast<T*>(slot);  |  1780  | 319k  |   }  |  
 v8::Context* v8::internal::ValueHelper::SlotAsValue<v8::Context, false, unsigned long>(unsigned long*) Line  | Count  | Source  |  1778  | 8.43M  |   V8_INLINE static T* SlotAsValue(S* slot) { |  1779  | 8.43M  |     return reinterpret_cast<T*>(slot);  |  1780  | 8.43M  |   }  |  
 Unexecuted instantiation: v8::Date* v8::internal::ValueHelper::SlotAsValue<v8::Date, false, unsigned long>(unsigned long*) v8::FunctionTemplate* v8::internal::ValueHelper::SlotAsValue<v8::FunctionTemplate, false, unsigned long>(unsigned long*) Line  | Count  | Source  |  1778  | 14.6k  |   V8_INLINE static T* SlotAsValue(S* slot) { |  1779  | 14.6k  |     return reinterpret_cast<T*>(slot);  |  1780  | 14.6k  |   }  |  
 v8::Template* v8::internal::ValueHelper::SlotAsValue<v8::Template, false, unsigned long>(unsigned long*) Line  | Count  | Source  |  1778  | 6.58k  |   V8_INLINE static T* SlotAsValue(S* slot) { |  1779  | 6.58k  |     return reinterpret_cast<T*>(slot);  |  1780  | 6.58k  |   }  |  
 v8::Function* v8::internal::ValueHelper::SlotAsValue<v8::Function, false, unsigned long>(unsigned long*) Line  | Count  | Source  |  1778  | 4.76k  |   V8_INLINE static T* SlotAsValue(S* slot) { |  1779  | 4.76k  |     return reinterpret_cast<T*>(slot);  |  1780  | 4.76k  |   }  |  
 v8::ObjectTemplate* v8::internal::ValueHelper::SlotAsValue<v8::ObjectTemplate, false, unsigned long>(unsigned long*) Line  | Count  | Source  |  1778  | 9.10k  |   V8_INLINE static T* SlotAsValue(S* slot) { |  1779  | 9.10k  |     return reinterpret_cast<T*>(slot);  |  1780  | 9.10k  |   }  |  
 v8::Context* v8::internal::ValueHelper::SlotAsValue<v8::Context, true, unsigned long>(unsigned long*) Line  | Count  | Source  |  1778  | 22.1k  |   V8_INLINE static T* SlotAsValue(S* slot) { |  1779  | 22.1k  |     return reinterpret_cast<T*>(slot);  |  1780  | 22.1k  |   }  |  
 v8::Script* v8::internal::ValueHelper::SlotAsValue<v8::Script, false, unsigned long>(unsigned long*) Line  | Count  | Source  |  1778  | 8.90k  |   V8_INLINE static T* SlotAsValue(S* slot) { |  1779  | 8.90k  |     return reinterpret_cast<T*>(slot);  |  1780  | 8.90k  |   }  |  
 v8::Object* v8::internal::ValueHelper::SlotAsValue<v8::Object, true, unsigned long>(unsigned long*) Line  | Count  | Source  |  1778  | 280  |   V8_INLINE static T* SlotAsValue(S* slot) { |  1779  | 280  |     return reinterpret_cast<T*>(slot);  |  1780  | 280  |   }  |  
 v8::Array* v8::internal::ValueHelper::SlotAsValue<v8::Array, false, unsigned long>(unsigned long*) Line  | Count  | Source  |  1778  | 741k  |   V8_INLINE static T* SlotAsValue(S* slot) { |  1779  | 741k  |     return reinterpret_cast<T*>(slot);  |  1780  | 741k  |   }  |  
 Unexecuted instantiation: v8::Number* v8::internal::ValueHelper::SlotAsValue<v8::Number, false, unsigned long>(unsigned long*) v8::DictionaryTemplate* v8::internal::ValueHelper::SlotAsValue<v8::DictionaryTemplate, false, unsigned long>(unsigned long*) Line  | Count  | Source  |  1778  | 35  |   V8_INLINE static T* SlotAsValue(S* slot) { |  1779  | 35  |     return reinterpret_cast<T*>(slot);  |  1780  | 35  |   }  |  
 Unexecuted instantiation: v8::Int8Array* v8::internal::ValueHelper::SlotAsValue<v8::Int8Array, true, unsigned long>(unsigned long*) v8::Uint8Array* v8::internal::ValueHelper::SlotAsValue<v8::Uint8Array, true, unsigned long>(unsigned long*) Line  | Count  | Source  |  1778  | 140  |   V8_INLINE static T* SlotAsValue(S* slot) { |  1779  | 140  |     return reinterpret_cast<T*>(slot);  |  1780  | 140  |   }  |  
 Unexecuted instantiation: v8::Int16Array* v8::internal::ValueHelper::SlotAsValue<v8::Int16Array, true, unsigned long>(unsigned long*) Unexecuted instantiation: v8::Uint16Array* v8::internal::ValueHelper::SlotAsValue<v8::Uint16Array, true, unsigned long>(unsigned long*) v8::Int32Array* v8::internal::ValueHelper::SlotAsValue<v8::Int32Array, true, unsigned long>(unsigned long*) Line  | Count  | Source  |  1778  | 70  |   V8_INLINE static T* SlotAsValue(S* slot) { |  1779  | 70  |     return reinterpret_cast<T*>(slot);  |  1780  | 70  |   }  |  
 v8::Uint32Array* v8::internal::ValueHelper::SlotAsValue<v8::Uint32Array, true, unsigned long>(unsigned long*) Line  | Count  | Source  |  1778  | 245  |   V8_INLINE static T* SlotAsValue(S* slot) { |  1779  | 245  |     return reinterpret_cast<T*>(slot);  |  1780  | 245  |   }  |  
 Unexecuted instantiation: v8::Float32Array* v8::internal::ValueHelper::SlotAsValue<v8::Float32Array, true, unsigned long>(unsigned long*) v8::Float64Array* v8::internal::ValueHelper::SlotAsValue<v8::Float64Array, true, unsigned long>(unsigned long*) Line  | Count  | Source  |  1778  | 175  |   V8_INLINE static T* SlotAsValue(S* slot) { |  1779  | 175  |     return reinterpret_cast<T*>(slot);  |  1780  | 175  |   }  |  
 v8::BigInt64Array* v8::internal::ValueHelper::SlotAsValue<v8::BigInt64Array, true, unsigned long>(unsigned long*) Line  | Count  | Source  |  1778  | 70  |   V8_INLINE static T* SlotAsValue(S* slot) { |  1779  | 70  |     return reinterpret_cast<T*>(slot);  |  1780  | 70  |   }  |  
 v8::Value* v8::internal::ValueHelper::SlotAsValue<v8::Value, true, unsigned long>(unsigned long*) Line  | Count  | Source  |  1778  | 758k  |   V8_INLINE static T* SlotAsValue(S* slot) { |  1779  | 758k  |     return reinterpret_cast<T*>(slot);  |  1780  | 758k  |   }  |  
 Unexecuted instantiation: v8::Function* v8::internal::ValueHelper::SlotAsValue<v8::Function, true, unsigned long>(unsigned long*) Unexecuted instantiation: v8::Private* v8::internal::ValueHelper::SlotAsValue<v8::Private, false, unsigned long>(unsigned long*) v8::Symbol* v8::internal::ValueHelper::SlotAsValue<v8::Symbol, false, unsigned long>(unsigned long*) Line  | Count  | Source  |  1778  | 735  |   V8_INLINE static T* SlotAsValue(S* slot) { |  1779  | 735  |     return reinterpret_cast<T*>(slot);  |  1780  | 735  |   }  |  
 v8::String* v8::internal::ValueHelper::SlotAsValue<v8::String, false, unsigned long>(unsigned long*) Line  | Count  | Source  |  1778  | 188k  |   V8_INLINE static T* SlotAsValue(S* slot) { |  1779  | 188k  |     return reinterpret_cast<T*>(slot);  |  1780  | 188k  |   }  |  
 v8::ArrayBuffer* v8::internal::ValueHelper::SlotAsValue<v8::ArrayBuffer, false, unsigned long>(unsigned long*) Line  | Count  | Source  |  1778  | 770  |   V8_INLINE static T* SlotAsValue(S* slot) { |  1779  | 770  |     return reinterpret_cast<T*>(slot);  |  1780  | 770  |   }  |  
 v8::Int32Array* v8::internal::ValueHelper::SlotAsValue<v8::Int32Array, false, unsigned long>(unsigned long*) Line  | Count  | Source  |  1778  | 105  |   V8_INLINE static T* SlotAsValue(S* slot) { |  1779  | 105  |     return reinterpret_cast<T*>(slot);  |  1780  | 105  |   }  |  
 v8::Uint32Array* v8::internal::ValueHelper::SlotAsValue<v8::Uint32Array, false, unsigned long>(unsigned long*) Line  | Count  | Source  |  1778  | 245  |   V8_INLINE static T* SlotAsValue(S* slot) { |  1779  | 245  |     return reinterpret_cast<T*>(slot);  |  1780  | 245  |   }  |  
 Unexecuted instantiation: v8::Promise* v8::internal::ValueHelper::SlotAsValue<v8::Promise, false, unsigned long>(unsigned long*) v8::Uint8Array* v8::internal::ValueHelper::SlotAsValue<v8::Uint8Array, false, unsigned long>(unsigned long*) Line  | Count  | Source  |  1778  | 175  |   V8_INLINE static T* SlotAsValue(S* slot) { |  1779  | 175  |     return reinterpret_cast<T*>(slot);  |  1780  | 175  |   }  |  
 v8::Float64Array* v8::internal::ValueHelper::SlotAsValue<v8::Float64Array, false, unsigned long>(unsigned long*) Line  | Count  | Source  |  1778  | 175  |   V8_INLINE static T* SlotAsValue(S* slot) { |  1779  | 175  |     return reinterpret_cast<T*>(slot);  |  1780  | 175  |   }  |  
 Unexecuted instantiation: v8::Array* v8::internal::ValueHelper::SlotAsValue<v8::Array, true, unsigned long>(unsigned long*) Unexecuted instantiation: v8::Uint32* v8::internal::ValueHelper::SlotAsValue<v8::Uint32, false, unsigned long>(unsigned long*) Unexecuted instantiation: v8::ModuleRequest* v8::internal::ValueHelper::SlotAsValue<v8::ModuleRequest, false, unsigned long>(unsigned long*) Unexecuted instantiation: v8::Module* v8::internal::ValueHelper::SlotAsValue<v8::Module, false, unsigned long>(unsigned long*) Unexecuted instantiation: v8::Module* v8::internal::ValueHelper::SlotAsValue<v8::Module, true, unsigned long>(unsigned long*) v8::PrimitiveArray* v8::internal::ValueHelper::SlotAsValue<v8::PrimitiveArray, false, unsigned long>(unsigned long*) Line  | Count  | Source  |  1778  | 35  |   V8_INLINE static T* SlotAsValue(S* slot) { |  1779  | 35  |     return reinterpret_cast<T*>(slot);  |  1780  | 35  |   }  |  
 Unexecuted instantiation: v8::Int32* v8::internal::ValueHelper::SlotAsValue<v8::Int32, false, unsigned long>(unsigned long*) v8::ArrayBufferView* v8::internal::ValueHelper::SlotAsValue<v8::ArrayBufferView, false, unsigned long>(unsigned long*) Line  | Count  | Source  |  1778  | 105  |   V8_INLINE static T* SlotAsValue(S* slot) { |  1779  | 105  |     return reinterpret_cast<T*>(slot);  |  1780  | 105  |   }  |  
 Unexecuted instantiation: v8::UnboundModuleScript* v8::internal::ValueHelper::SlotAsValue<v8::UnboundModuleScript, false, unsigned long>(unsigned long*) Unexecuted instantiation: v8::FixedArray* v8::internal::ValueHelper::SlotAsValue<v8::FixedArray, false, unsigned long>(unsigned long*) Unexecuted instantiation: v8::Promise::Resolver* v8::internal::ValueHelper::SlotAsValue<v8::Promise::Resolver, false, unsigned long>(unsigned long*) Unexecuted instantiation: v8::ArrayBuffer* v8::internal::ValueHelper::SlotAsValue<v8::ArrayBuffer, true, unsigned long>(unsigned long*) Unexecuted instantiation: v8::SharedArrayBuffer* v8::internal::ValueHelper::SlotAsValue<v8::SharedArrayBuffer, false, unsigned long>(unsigned long*) Unexecuted instantiation: v8::Integer* v8::internal::ValueHelper::SlotAsValue<v8::Integer, false, unsigned long>(unsigned long*) Unexecuted instantiation: v8::Set* v8::internal::ValueHelper::SlotAsValue<v8::Set, false, unsigned long>(unsigned long*) v8::Boolean* v8::internal::ValueHelper::SlotAsValue<v8::Boolean, false, unsigned long>(unsigned long*) Line  | Count  | Source  |  1778  | 105  |   V8_INLINE static T* SlotAsValue(S* slot) { |  1779  | 105  |     return reinterpret_cast<T*>(slot);  |  1780  | 105  |   }  |  
 Unexecuted instantiation: v8::Message* v8::internal::ValueHelper::SlotAsValue<v8::Message, false, unsigned long>(unsigned long*) v8::Name* v8::internal::ValueHelper::SlotAsValue<v8::Name, false, unsigned long>(unsigned long*) Line  | Count  | Source  |  1778  | 280  |   V8_INLINE static T* SlotAsValue(S* slot) { |  1779  | 280  |     return reinterpret_cast<T*>(slot);  |  1780  | 280  |   }  |  
 Unexecuted instantiation: v8::UnboundScript* v8::internal::ValueHelper::SlotAsValue<v8::UnboundScript, false, unsigned long>(unsigned long*) Unexecuted instantiation: v8::UnboundScript* v8::internal::ValueHelper::SlotAsValue<v8::UnboundScript, true, unsigned long>(unsigned long*) v8::BigInt64Array* v8::internal::ValueHelper::SlotAsValue<v8::BigInt64Array, false, unsigned long>(unsigned long*) Line  | Count  | Source  |  1778  | 70  |   V8_INLINE static T* SlotAsValue(S* slot) { |  1779  | 70  |     return reinterpret_cast<T*>(slot);  |  1780  | 70  |   }  |  
 Unexecuted instantiation: v8::StackFrame* v8::internal::ValueHelper::SlotAsValue<v8::StackFrame, false, unsigned long>(unsigned long*) Unexecuted instantiation: v8::StackTrace* v8::internal::ValueHelper::SlotAsValue<v8::StackTrace, false, unsigned long>(unsigned long*) Unexecuted instantiation: v8::BigInt* v8::internal::ValueHelper::SlotAsValue<v8::BigInt, false, unsigned long>(unsigned long*) Unexecuted instantiation: v8::Promise* v8::internal::ValueHelper::SlotAsValue<v8::Promise, true, unsigned long>(unsigned long*) Unexecuted instantiation: v8::Promise::Resolver* v8::internal::ValueHelper::SlotAsValue<v8::Promise::Resolver, true, unsigned long>(unsigned long*) Unexecuted instantiation: v8::WasmModuleObject* v8::internal::ValueHelper::SlotAsValue<v8::WasmModuleObject, false, unsigned long>(unsigned long*) Unexecuted instantiation: v8::External* v8::internal::ValueHelper::SlotAsValue<v8::External, false, unsigned long>(unsigned long*) Unexecuted instantiation: v8::Map* v8::internal::ValueHelper::SlotAsValue<v8::Map, false, unsigned long>(unsigned long*) Unexecuted instantiation: v8::RegExp* v8::internal::ValueHelper::SlotAsValue<v8::RegExp, false, unsigned long>(unsigned long*) Unexecuted instantiation: v8::RegExp* v8::internal::ValueHelper::SlotAsValue<v8::RegExp, true, unsigned long>(unsigned long*) Unexecuted instantiation: v8::Proxy* v8::internal::ValueHelper::SlotAsValue<v8::Proxy, false, unsigned long>(unsigned long*) Unexecuted instantiation: v8::WasmMemoryObject* v8::internal::ValueHelper::SlotAsValue<v8::WasmMemoryObject, true, unsigned long>(unsigned long*) Unexecuted instantiation: v8::WasmMemoryObject* v8::internal::ValueHelper::SlotAsValue<v8::WasmMemoryObject, false, unsigned long>(unsigned long*) Unexecuted instantiation: v8::Map* v8::internal::ValueHelper::SlotAsValue<v8::Map, true, unsigned long>(unsigned long*) Unexecuted instantiation: v8::ArrayBufferView* v8::internal::ValueHelper::SlotAsValue<v8::ArrayBufferView, true, unsigned long>(unsigned long*) Unexecuted instantiation: v8::TypedArray* v8::internal::ValueHelper::SlotAsValue<v8::TypedArray, false, unsigned long>(unsigned long*) Unexecuted instantiation: v8::DataView* v8::internal::ValueHelper::SlotAsValue<v8::DataView, false, unsigned long>(unsigned long*) Unexecuted instantiation: v8::FunctionTemplate* v8::internal::ValueHelper::SlotAsValue<v8::FunctionTemplate, true, unsigned long>(unsigned long*)  | 
1781  |  |  | 
1782  |  |   template <typename T>  | 
1783  | 1.55M  |   V8_INLINE static InternalRepresentationType ValueAsRepr(const T* value) { | 
1784  | 1.55M  |     return const_cast<InternalRepresentationType>(  | 
1785  | 1.55M  |         reinterpret_cast<const Address*>(value));  | 
1786  | 1.55M  |   } Unexecuted instantiation: unsigned long* v8::internal::ValueHelper::ValueAsRepr<v8::Data>(v8::Data const*) unsigned long* v8::internal::ValueHelper::ValueAsRepr<v8::Context>(v8::Context const*) Line  | Count  | Source  |  1783  | 35.7k  |   V8_INLINE static InternalRepresentationType ValueAsRepr(const T* value) { |  1784  | 35.7k  |     return const_cast<InternalRepresentationType>(  |  1785  | 35.7k  |         reinterpret_cast<const Address*>(value));  |  1786  | 35.7k  |   }  |  
 unsigned long* v8::internal::ValueHelper::ValueAsRepr<v8::Function>(v8::Function const*) Line  | Count  | Source  |  1783  | 875  |   V8_INLINE static InternalRepresentationType ValueAsRepr(const T* value) { |  1784  | 875  |     return const_cast<InternalRepresentationType>(  |  1785  | 875  |         reinterpret_cast<const Address*>(value));  |  1786  | 875  |   }  |  
 unsigned long* v8::internal::ValueHelper::ValueAsRepr<v8::Object>(v8::Object const*) Line  | Count  | Source  |  1783  | 840  |   V8_INLINE static InternalRepresentationType ValueAsRepr(const T* value) { |  1784  | 840  |     return const_cast<InternalRepresentationType>(  |  1785  | 840  |         reinterpret_cast<const Address*>(value));  |  1786  | 840  |   }  |  
 unsigned long* v8::internal::ValueHelper::ValueAsRepr<v8::Value>(v8::Value const*) Line  | Count  | Source  |  1783  | 1.51M  |   V8_INLINE static InternalRepresentationType ValueAsRepr(const T* value) { |  1784  | 1.51M  |     return const_cast<InternalRepresentationType>(  |  1785  | 1.51M  |         reinterpret_cast<const Address*>(value));  |  1786  | 1.51M  |   }  |  
 Unexecuted instantiation: unsigned long* v8::internal::ValueHelper::ValueAsRepr<v8::Int8Array>(v8::Int8Array const*) unsigned long* v8::internal::ValueHelper::ValueAsRepr<v8::Uint8Array>(v8::Uint8Array const*) Line  | Count  | Source  |  1783  | 245  |   V8_INLINE static InternalRepresentationType ValueAsRepr(const T* value) { |  1784  | 245  |     return const_cast<InternalRepresentationType>(  |  1785  | 245  |         reinterpret_cast<const Address*>(value));  |  1786  | 245  |   }  |  
 Unexecuted instantiation: unsigned long* v8::internal::ValueHelper::ValueAsRepr<v8::Int16Array>(v8::Int16Array const*) Unexecuted instantiation: unsigned long* v8::internal::ValueHelper::ValueAsRepr<v8::Uint16Array>(v8::Uint16Array const*) unsigned long* v8::internal::ValueHelper::ValueAsRepr<v8::Int32Array>(v8::Int32Array const*) Line  | Count  | Source  |  1783  | 175  |   V8_INLINE static InternalRepresentationType ValueAsRepr(const T* value) { |  1784  | 175  |     return const_cast<InternalRepresentationType>(  |  1785  | 175  |         reinterpret_cast<const Address*>(value));  |  1786  | 175  |   }  |  
 unsigned long* v8::internal::ValueHelper::ValueAsRepr<v8::Uint32Array>(v8::Uint32Array const*) Line  | Count  | Source  |  1783  | 490  |   V8_INLINE static InternalRepresentationType ValueAsRepr(const T* value) { |  1784  | 490  |     return const_cast<InternalRepresentationType>(  |  1785  | 490  |         reinterpret_cast<const Address*>(value));  |  1786  | 490  |   }  |  
 Unexecuted instantiation: unsigned long* v8::internal::ValueHelper::ValueAsRepr<v8::Float32Array>(v8::Float32Array const*) unsigned long* v8::internal::ValueHelper::ValueAsRepr<v8::Float64Array>(v8::Float64Array const*) Line  | Count  | Source  |  1783  | 350  |   V8_INLINE static InternalRepresentationType ValueAsRepr(const T* value) { |  1784  | 350  |     return const_cast<InternalRepresentationType>(  |  1785  | 350  |         reinterpret_cast<const Address*>(value));  |  1786  | 350  |   }  |  
 unsigned long* v8::internal::ValueHelper::ValueAsRepr<v8::BigInt64Array>(v8::BigInt64Array const*) Line  | Count  | Source  |  1783  | 140  |   V8_INLINE static InternalRepresentationType ValueAsRepr(const T* value) { |  1784  | 140  |     return const_cast<InternalRepresentationType>(  |  1785  | 140  |         reinterpret_cast<const Address*>(value));  |  1786  | 140  |   }  |  
 unsigned long* v8::internal::ValueHelper::ValueAsRepr<v8::Array>(v8::Array const*) Line  | Count  | Source  |  1783  | 35  |   V8_INLINE static InternalRepresentationType ValueAsRepr(const T* value) { |  1784  | 35  |     return const_cast<InternalRepresentationType>(  |  1785  | 35  |         reinterpret_cast<const Address*>(value));  |  1786  | 35  |   }  |  
 Unexecuted instantiation: unsigned long* v8::internal::ValueHelper::ValueAsRepr<v8::Module>(v8::Module const*) Unexecuted instantiation: unsigned long* v8::internal::ValueHelper::ValueAsRepr<v8::ArrayBuffer>(v8::ArrayBuffer const*) Unexecuted instantiation: unsigned long* v8::internal::ValueHelper::ValueAsRepr<v8::UnboundScript>(v8::UnboundScript const*) Unexecuted instantiation: unsigned long* v8::internal::ValueHelper::ValueAsRepr<v8::Promise>(v8::Promise const*) Unexecuted instantiation: unsigned long* v8::internal::ValueHelper::ValueAsRepr<v8::Promise::Resolver>(v8::Promise::Resolver const*) Unexecuted instantiation: unsigned long* v8::internal::ValueHelper::ValueAsRepr<v8::SharedArrayBuffer>(v8::SharedArrayBuffer const*) Unexecuted instantiation: unsigned long* v8::internal::ValueHelper::ValueAsRepr<v8::RegExp>(v8::RegExp const*) Unexecuted instantiation: unsigned long* v8::internal::ValueHelper::ValueAsRepr<v8::WasmMemoryObject>(v8::WasmMemoryObject const*) Unexecuted instantiation: unsigned long* v8::internal::ValueHelper::ValueAsRepr<v8::Map>(v8::Map const*) Unexecuted instantiation: unsigned long* v8::internal::ValueHelper::ValueAsRepr<v8::ArrayBufferView>(v8::ArrayBufferView const*) Unexecuted instantiation: unsigned long* v8::internal::ValueHelper::ValueAsRepr<v8::FunctionTemplate>(v8::FunctionTemplate const*)  | 
1787  |  |  | 
1788  |  |   template <typename T>  | 
1789  | 0  |   V8_INLINE static T* ReprAsValue(InternalRepresentationType repr) { | 
1790  | 0  |     return reinterpret_cast<T*>(repr);  | 
1791  | 0  |   } Unexecuted instantiation: v8::Private* v8::internal::ValueHelper::ReprAsValue<v8::Private>(unsigned long*) Unexecuted instantiation: v8::Symbol* v8::internal::ValueHelper::ReprAsValue<v8::Symbol>(unsigned long*) Unexecuted instantiation: v8::String* v8::internal::ValueHelper::ReprAsValue<v8::String>(unsigned long*) Unexecuted instantiation: v8::DictionaryTemplate* v8::internal::ValueHelper::ReprAsValue<v8::DictionaryTemplate>(unsigned long*) Unexecuted instantiation: v8::FunctionTemplate* v8::internal::ValueHelper::ReprAsValue<v8::FunctionTemplate>(unsigned long*) Unexecuted instantiation: v8::ObjectTemplate* v8::internal::ValueHelper::ReprAsValue<v8::ObjectTemplate>(unsigned long*) Unexecuted instantiation: v8::Uint32Array* v8::internal::ValueHelper::ReprAsValue<v8::Uint32Array>(unsigned long*) Unexecuted instantiation: v8::Uint8Array* v8::internal::ValueHelper::ReprAsValue<v8::Uint8Array>(unsigned long*) Unexecuted instantiation: v8::Float64Array* v8::internal::ValueHelper::ReprAsValue<v8::Float64Array>(unsigned long*) Unexecuted instantiation: v8::Array* v8::internal::ValueHelper::ReprAsValue<v8::Array>(unsigned long*) Unexecuted instantiation: v8::Object* v8::internal::ValueHelper::ReprAsValue<v8::Object>(unsigned long*) Unexecuted instantiation: v8::Int32Array* v8::internal::ValueHelper::ReprAsValue<v8::Int32Array>(unsigned long*) Unexecuted instantiation: v8::BigInt64Array* v8::internal::ValueHelper::ReprAsValue<v8::BigInt64Array>(unsigned long*) Unexecuted instantiation: v8::Function* v8::internal::ValueHelper::ReprAsValue<v8::Function>(unsigned long*) Unexecuted instantiation: v8::Context* v8::internal::ValueHelper::ReprAsValue<v8::Context>(unsigned long*)  | 
1792  |  |  | 
1793  |  | #endif  // V8_ENABLE_DIRECT_HANDLE  | 
1794  |  | };  | 
1795  |  |  | 
1796  |  | /**  | 
1797  |  |  * Helper functions about handles.  | 
1798  |  |  */  | 
1799  |  | class HandleHelper final { | 
1800  |  |  public:  | 
1801  |  |   /**  | 
1802  |  |    * Checks whether two handles are equal.  | 
1803  |  |    * They are equal iff they are both empty or they are both non-empty and the  | 
1804  |  |    * objects to which they refer are physically equal.  | 
1805  |  |    *  | 
1806  |  |    * If both handles refer to JS objects, this is the same as strict equality.  | 
1807  |  |    * For primitives, such as numbers or strings, a `false` return value does not  | 
1808  |  |    * indicate that the values aren't equal in the JavaScript sense.  | 
1809  |  |    * Use `Value::StrictEquals()` to check primitives for equality.  | 
1810  |  |    */  | 
1811  |  |   template <typename T1, typename T2>  | 
1812  | 737k  |   V8_INLINE static bool EqualHandles(const T1& lhs, const T2& rhs) { | 
1813  | 737k  |     if (lhs.IsEmpty()) return rhs.IsEmpty();  | 
1814  | 737k  |     if (rhs.IsEmpty()) return false;  | 
1815  | 737k  |     return lhs.ptr() == rhs.ptr();  | 
1816  | 737k  |   } Unexecuted instantiation: bool v8::internal::HandleHelper::EqualHandles<v8::TracedReferenceBase, v8::TracedReferenceBase>(v8::TracedReferenceBase const&, v8::TracedReferenceBase const&) Unexecuted instantiation: bool v8::internal::HandleHelper::EqualHandles<v8::Local<v8::Object>, v8::Local<v8::Object> >(v8::Local<v8::Object> const&, v8::Local<v8::Object> const&) bool v8::internal::HandleHelper::EqualHandles<v8::Local<v8::Context>, v8::Local<v8::Context> >(v8::Local<v8::Context> const&, v8::Local<v8::Context> const&) Line  | Count  | Source  |  1812  | 737k  |   V8_INLINE static bool EqualHandles(const T1& lhs, const T2& rhs) { |  1813  | 737k  |     if (lhs.IsEmpty()) return rhs.IsEmpty();  |  1814  | 737k  |     if (rhs.IsEmpty()) return false;  |  1815  | 737k  |     return lhs.ptr() == rhs.ptr();  |  1816  | 737k  |   }  |  
 Unexecuted instantiation: bool v8::internal::HandleHelper::EqualHandles<v8::PersistentBase<v8::Context>, v8::Local<v8::Context> >(v8::PersistentBase<v8::Context> const&, v8::Local<v8::Context> const&) Unexecuted instantiation: bool v8::internal::HandleHelper::EqualHandles<v8::Local<v8::Data>, v8::Local<v8::Data> >(v8::Local<v8::Data> const&, v8::Local<v8::Data> const&) Unexecuted instantiation: bool v8::internal::HandleHelper::EqualHandles<v8::PersistentBase<v8::Module>, v8::Local<v8::Module> >(v8::PersistentBase<v8::Module> const&, v8::Local<v8::Module> const&) Unexecuted instantiation: bool v8::internal::HandleHelper::EqualHandles<v8::Local<v8::Symbol>, v8::Local<v8::Symbol> >(v8::Local<v8::Symbol> const&, v8::Local<v8::Symbol> const&) Unexecuted instantiation: bool v8::internal::HandleHelper::EqualHandles<v8::Local<v8::Value>, v8::Local<v8::Object> >(v8::Local<v8::Value> const&, v8::Local<v8::Object> const&) Unexecuted instantiation: bool v8::internal::HandleHelper::EqualHandles<v8::Local<v8::SharedArrayBuffer>, v8::Local<v8::SharedArrayBuffer> >(v8::Local<v8::SharedArrayBuffer> const&, v8::Local<v8::SharedArrayBuffer> const&) Unexecuted instantiation: bool v8::internal::HandleHelper::EqualHandles<v8::Local<v8::ArrayBuffer>, v8::Local<v8::ArrayBuffer> >(v8::Local<v8::ArrayBuffer> const&, v8::Local<v8::ArrayBuffer> const&) Unexecuted instantiation: bool v8::internal::HandleHelper::EqualHandles<v8::Local<v8::Value>, v8::Local<v8::Symbol> >(v8::Local<v8::Value> const&, v8::Local<v8::Symbol> const&) Unexecuted instantiation: bool v8::internal::HandleHelper::EqualHandles<v8::Local<v8::Object>, v8::Local<v8::Value> >(v8::Local<v8::Object> const&, v8::Local<v8::Value> const&)  | 
1817  |  | };  | 
1818  |  |  | 
1819  |  | V8_EXPORT void VerifyHandleIsNonEmpty(bool is_empty);  | 
1820  |  |  | 
1821  |  | // These functions are here just to match friend declarations in  | 
1822  |  | // XxxCallbackInfo classes allowing these functions to access the internals  | 
1823  |  | // of the info objects. These functions are supposed to be called by debugger  | 
1824  |  | // macros.  | 
1825  |  | void PrintFunctionCallbackInfo(void* function_callback_info);  | 
1826  |  | void PrintPropertyCallbackInfo(void* property_callback_info);  | 
1827  |  |  | 
1828  |  | }  // namespace internal  | 
1829  |  | }  // namespace v8  | 
1830  |  |  | 
1831  |  | #endif  // INCLUDE_V8_INTERNAL_H_  |