#ifndef INCLUDE_V8_VALUE_H_
#define INCLUDE_V8_VALUE_H_
#include "v8-data.h"
#include "v8-internal.h"
#include "v8-local-handle.h"
#include "v8-maybe.h"
#include "v8config.h"
namespace v8 {
class Primitive;
class Numeric;
class BigInt;
class Int32;
class Integer;
class Number;
class Object;
class String;
class Uint32;
class V8_EXPORT Value : public Data { … };
class V8_EXPORT TypecheckWitness { … };
template <>
V8_INLINE Value* Value::Cast(Data* value) { … }
bool Value::IsUndefined() const { … }
bool Value::QuickIsUndefined() const { … }
bool Value::IsNull() const { … }
bool Value::QuickIsNull() const { … }
bool Value::IsNullOrUndefined() const { … }
bool Value::QuickIsNullOrUndefined() const { … }
bool Value::IsTrue() const { … }
#if V8_STATIC_ROOTS_BOOL
bool Value::QuickIsTrue() const {
using A = internal::Address;
using I = internal::Internals;
A obj = internal::ValueHelper::ValueAsAddress(this);
return I::is_identical(obj, I::StaticReadOnlyRoot::kTrueValue);
}
#endif
bool Value::IsFalse() const { … }
#if V8_STATIC_ROOTS_BOOL
bool Value::QuickIsFalse() const {
using A = internal::Address;
using I = internal::Internals;
A obj = internal::ValueHelper::ValueAsAddress(this);
return I::is_identical(obj, I::StaticReadOnlyRoot::kFalseValue);
}
#endif
bool Value::IsString() const { … }
bool Value::QuickIsString() const { … }
bool TypecheckWitness::Matches(Local<Value> candidate) const { … }
}
#endif