| Index: src/utils.h
|
| diff --git a/src/utils.h b/src/utils.h
|
| index ebc33ba2651f425caa9e96b0c030f478660bee6b..fcc80b9e14e5979865622626ad8ab6a52d2fc0dc 100644
|
| --- a/src/utils.h
|
| +++ b/src/utils.h
|
| @@ -112,6 +112,12 @@ int HandleObjectPointerCompare(const Handle<T>* a, const Handle<T>* b) {
|
| }
|
|
|
|
|
| +template <typename T, typename U>
|
| +inline bool IsAligned(T value, U alignment) {
|
| + return (value & (alignment - 1)) == 0;
|
| +}
|
| +
|
| +
|
| // Returns true if (addr + offset) is aligned.
|
| inline bool IsAddressAligned(Address addr,
|
| intptr_t alignment,
|
| @@ -1536,6 +1542,16 @@ bool StringToArrayIndex(Stream* stream, uint32_t* index) {
|
| }
|
|
|
|
|
| -} } // namespace v8::internal
|
| +// Returns current value of top of the stack. Works correctly with ASAN.
|
| +DISABLE_ASAN
|
| +inline uintptr_t GetCurrentStackPosition() {
|
| + // Takes the address of the limit variable in order to find out where
|
| + // the top of stack is right now.
|
| + uintptr_t limit = reinterpret_cast<uintptr_t>(&limit);
|
| + return limit;
|
| +}
|
| +
|
| +} // namespace internal
|
| +} // namespace v8
|
|
|
| #endif // V8_UTILS_H_
|
|
|