Lines Matching defs:Handle
41 // Base class for Handle instantiations. Don't use directly.
80 // A Handle provides a reference to an object that survives relocation by
88 // semantics is ambiguous between Handle location and object identity. Instead
91 class Handle final : public HandleBase {
93 // {ObjectRef} is returned by {Handle::operator->}. It should never be stored
103 friend class Handle<T>;
109 V8_INLINE explicit Handle() : HandleBase(nullptr) {
110 // Skip static type check in order to allow Handle<XXX>::null() as default
115 V8_INLINE explicit Handle(Address* location) : HandleBase(location) {
122 V8_INLINE Handle(T object, Isolate* isolate);
123 V8_INLINE Handle(T object, LocalIsolate* isolate);
124 V8_INLINE Handle(T object, LocalHeap* local_heap);
127 V8_INLINE static Handle<T> New(T object, Isolate* isolate);
130 // Ex. Handle<JSFunction> can be passed when Handle<Object> is expected.
133 V8_INLINE Handle(Handle<S> handle) : HandleBase(handle) {}
138 // unchecked_cast because we rather trust Handle<T> to contain a T than
145 inline static const Handle<T> cast(Handle<S> that);
149 static const Handle<T> null() { return Handle<T>(); }
152 bool equals(Handle<T> other) const { return address() == other.address(); }
154 // Patches this Handle's value, in-place, with a new value. All handles with
163 V8_INLINE bool operator()(Handle<T> lhs, Handle<T> rhs) const {
170 V8_INLINE size_t operator()(Handle<T> const& handle) const {
178 friend class Handle;
185 std::ostream& operator<<(std::ostream& os, Handle<T> handle);
238 // a Handle backed by the parent scope holding the
241 Handle<T> CloseAndEscape(Handle<T> handle_value);