![]() |
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 |