![]() |
v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
|
#include <stddef.h>#include <stdint.h>#include <concepts>#include <limits>#include <type_traits>#include <utility>#include "src/base/numerics/integral_constant_like.h"Go to the source code of this file.
Namespaces | |
| namespace | v8 |
| namespace | v8::base |
| namespace | v8::base::internal |
Concepts | |
| concept | v8::base::internal::IsCheckedNumeric |
| concept | v8::base::internal::IsClampedNumeric |
| concept | v8::base::internal::IsStrictNumeric |
| concept | v8::base::internal::IsNumeric |
| concept | v8::base::internal::IsCheckedOp |
| concept | v8::base::internal::IsClampedOp |
| concept | v8::base::internal::IsStrictOp |
Macros | |
| #define | INTEGER_FOR_DIGITS_AND_SIGN(I) |
Typedefs | |
| template<size_t Size, bool IsSigned> | |
| using | v8::base::internal::IntegerForDigitsAndSign |
| template<typename Integer , bool IsSigned = std::is_signed_v<Integer>> | |
| using | v8::base::internal::TwiceWiderInteger |
| template<typename Lhs , typename Rhs > | |
| using | v8::base::internal::MaxExponentPromotion |
| template<typename Lhs , typename Rhs > | |
| using | v8::base::internal::LowestValuePromotion |
| template<typename Lhs , typename Rhs > | |
| using | v8::base::internal::BigEnoughPromotion = BigEnoughPromotionImpl<Lhs, Rhs>::type |
| template<typename Lhs , typename Rhs > | |
| using | v8::base::internal::FastIntegerArithmeticPromotion |
| template<typename T > | |
| using | v8::base::internal::ArithmeticOrUnderlyingEnum |
| template<typename T > | |
| using | v8::base::internal::UnderlyingType = UnderlyingTypeImpl<T>::type |
Enumerations | |
| enum class | v8::base::internal::IntegerRepresentation { v8::base::internal::kUnsigned , v8::base::internal::kSigned } |
| enum class | v8::base::internal::NumericRangeRepresentation { v8::base::internal::kNotContained , v8::base::internal::kContained } |
Functions | |
| template<typename T > requires (std::is_arithmetic_v<T>) | |
| constexpr bool | v8::base::internal::IsValueNegative (T value) |
| template<typename T > requires std::is_integral_v<T> | |
| constexpr auto | v8::base::internal::ConditionalNegate (T x, bool is_negative) |
| template<typename T > requires std::is_integral_v<T> | |
| constexpr auto | v8::base::internal::SafeUnsignedAbs (T value) |
| template<typename Dst , template< typename > class Bounds = std::numeric_limits, typename Src > requires (std::is_arithmetic_v<Src> && std::is_arithmetic_v<Dst> && Bounds<Dst>::lowest() < Bounds<Dst>::max()) | |
| constexpr RangeCheck | v8::base::internal::DstRangeRelationToSrcRange (Src value) |
| v8::base::internal::INTEGER_FOR_DIGITS_AND_SIGN (int8_t) | |
| v8::base::internal::INTEGER_FOR_DIGITS_AND_SIGN (uint8_t) | |
| v8::base::internal::INTEGER_FOR_DIGITS_AND_SIGN (int16_t) | |
| v8::base::internal::INTEGER_FOR_DIGITS_AND_SIGN (uint16_t) | |
| v8::base::internal::INTEGER_FOR_DIGITS_AND_SIGN (int32_t) | |
| v8::base::internal::INTEGER_FOR_DIGITS_AND_SIGN (uint32_t) | |
| v8::base::internal::INTEGER_FOR_DIGITS_AND_SIGN (int64_t) | |
| v8::base::internal::INTEGER_FOR_DIGITS_AND_SIGN (uint64_t) | |
| template<typename Src , typename Dst = std::make_signed_t<UnderlyingType<Src>>> requires std::integral<Dst> | |
| constexpr auto | v8::base::internal::as_signed (Src value) |
| template<typename Src , typename Dst = std::make_unsigned_t<UnderlyingType<Src>>> requires std::integral<Dst> | |
| constexpr auto | v8::base::internal::as_unsigned (Src value) |
| template<template< typename, typename > typename C, typename L , typename R > requires std::is_arithmetic_v<L> && std::is_arithmetic_v<R> | |
| constexpr bool | v8::base::internal::SafeCompare (L lhs, R rhs) |
| template<typename Dst , typename Src = Dst> | |
| constexpr Dst | v8::base::internal::CommonMaxOrMin (bool is_min) |
Variables | |
| template<typename NumericType > | |
| constexpr int | v8::base::internal::kMaxExponent |
| template<typename NumericType > | |
| constexpr int | v8::base::internal::kIntegerBitsPlusSign |
| constexpr bool | v8::base::internal::kEnableAsmCode = false |
| template<typename Dst , typename Src , IntegerRepresentation DstSign = std::is_signed_v<Dst> ? IntegerRepresentation::kSigned : IntegerRepresentation::kUnsigned, IntegerRepresentation SrcSign = std::is_signed_v<Src> ? IntegerRepresentation::kSigned : IntegerRepresentation::kUnsigned> | |
| constexpr auto | v8::base::internal::kStaticDstRangeRelationToSrcRange |
| template<typename Dst , typename Src > | |
| constexpr bool | v8::base::internal::kIsTypeInRangeForNumericType |
| template<typename Lhs , typename Rhs > | |
| constexpr bool | v8::base::internal::kIsBigEnoughPromotionContained |
| template<typename T , typename Lhs , typename Rhs = Lhs> | |
| constexpr bool | v8::base::internal::kIsIntegerArithmeticSafe |
| template<typename Lhs , typename Rhs > | |
| constexpr bool | v8::base::internal::kIsFastIntegerArithmeticPromotionContained |
| template<typename T > | |
| constexpr bool | v8::base::internal::kIsCheckedNumeric = false |
| template<typename T > | |
| constexpr bool | v8::base::internal::kIsCheckedNumeric< CheckedNumeric< T > > = true |
| template<typename T > | |
| constexpr bool | v8::base::internal::kIsClampedNumeric = false |
| template<typename T > | |
| constexpr bool | v8::base::internal::kIsClampedNumeric< ClampedNumeric< T > > = true |
| template<typename T > | |
| constexpr bool | v8::base::internal::kIsStrictNumeric = false |
| template<typename T > | |
| constexpr bool | v8::base::internal::kIsStrictNumeric< StrictNumeric< T > > = true |
| template<typename T > | |
| constexpr bool | v8::base::internal::kIsNumeric = std::is_arithmetic_v<UnderlyingType<T>> |
| template<typename T > | |
| constexpr bool | v8::base::internal::kIsNumeric< T > = true |
| template<typename Dst , typename Src > | |
| constexpr bool | v8::base::internal::kIsMaxInRangeForNumericType |
| template<typename Dst , typename Src > | |
| constexpr bool | v8::base::internal::kIsMinInRangeForNumericType |
| template<typename Dst , typename Src > | |
| constexpr Dst | v8::base::internal::kCommonMax |
| template<typename Dst , typename Src > | |
| constexpr Dst | v8::base::internal::kCommonMin |