v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
isolate-utils.h
Go to the documentation of this file.
1
// Copyright 2019 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 V8_EXECUTION_ISOLATE_UTILS_H_
6
#define V8_EXECUTION_ISOLATE_UTILS_H_
7
8
#include "
src/common/globals.h
"
9
10
namespace
v8::internal
{
11
12
class
HeapObjectLayout;
13
14
// Computes the pointer compression cage base from any read only or writable
15
// heap object. The resulting value is intended to be used only as a hoisted
16
// computation of cage base inside trivial accessors for optimizing value
17
// decompression. When pointer compression is disabled this function always
18
// returns nullptr.
19
V8_INLINE
PtrComprCageBase
GetPtrComprCageBase
(
Tagged<HeapObject>
object
);
20
21
V8_INLINE
Heap*
GetHeapFromWritableObject
(
Tagged<HeapObject>
object
);
22
23
V8_INLINE
Isolate*
GetIsolateFromWritableObject
(
Tagged<HeapObject>
object
);
24
25
// Support `*this` for HeapObjectLayout subclasses.
26
// TODO(leszeks): Change the NEVER_READ_ONLY_SPACE_IMPL macro to pass `this`
27
// instead of `*this` and use `const HeapObjectLayout*` here.
28
V8_INLINE
Heap*
GetHeapFromWritableObject
(
const
HeapObjectLayout&
object
);
29
V8_INLINE
Isolate*
GetIsolateFromWritableObject
(
const
HeapObjectLayout&
object
);
30
31
// Returns true if it succeeded to obtain isolate from given object.
32
// If it fails then the object is definitely a read-only object but it may also
33
// succeed for read only objects if pointer compression is enabled.
34
V8_INLINE
bool
GetIsolateFromHeapObject
(
Tagged<HeapObject>
object
,
35
Isolate** isolate);
36
37
}
// namespace v8::internal
38
39
#endif
// V8_EXECUTION_ISOLATE_UTILS_H_
globals.h
v8::internal
Definition
api-arguments-inl.h:20
v8::internal::GetIsolateFromWritableObject
V8_INLINE Isolate * GetIsolateFromWritableObject(Tagged< HeapObject > object)
Definition
isolate-utils-inl.h:35
v8::internal::GetIsolateFromHeapObject
V8_INLINE bool GetIsolateFromHeapObject(Tagged< HeapObject > object, Isolate **isolate)
Definition
isolate-utils-inl.h:48
v8::internal::Tagged< HeapObject >
kInterpreterTrampolineOffset Tagged< HeapObject >
Definition
shared-function-info-inl.h:118
v8::internal::GetPtrComprCageBase
V8_INLINE PtrComprCageBase GetPtrComprCageBase()
Definition
ptr-compr-inl.h:357
v8::internal::GetHeapFromWritableObject
V8_INLINE Heap * GetHeapFromWritableObject(Tagged< HeapObject > object)
Definition
isolate-utils-inl.h:19
V8_INLINE
#define V8_INLINE
Definition
v8config.h:500
src
execution
isolate-utils.h
Generated on Sun Apr 6 2025 21:08:53 for v8 by
1.12.0