docs
Loading...
Searching...
No Matches
Value.h

Classes

struct  NullType
 Tag type for the JavaScript null value (see js::null). More...
struct  UndefinedType
 Tag type for the JavaScript undefined value (see js::undefined). More...
class  Value
 A handle to a live JavaScript value. More...
class  Value::Ref
 A reference to a property of a Value (returned by Value::operator[]). More...
class  Arg
 An argument passed to a bound function. More...

Functions

constexpr PropertyAttributes operator| (PropertyAttributes a, PropertyAttributes b)
 Combine property attribute flags.
bool operator== (const Value &value, NullType)
 Compare against the JavaScript null literal: if (v == js::null).
bool operator== (const Value &value, UndefinedType)
 Compare against the JavaScript undefined literal: if (v == js::undefined).
template<typename T>
T Or (const Value &value, T fallback)
 Convert a value to a C++ type with a fallback (the free-function form of Value::Or()).
std::string Or (const Value &value, const char *fallback)
 Convert a value to a std::string with a string-literal fallback.
template<typename T>
T Or (const Arg &arg, T fallback)
 Convert a callback argument to a C++ type with a fallback.
std::string Or (const Arg &arg, const char *fallback)
 Convert a callback argument to a std::string with a string-literal fallback.
template<typename R, typename T>
requires std::is_same_v<std::remove_cvref_t<R>, Result<Value>>
T Or (const R &result, T fallback)
 Convert the value a call returned to a C++ type with a fallback.
template<typename R>
requires std::is_same_v<std::remove_cvref_t<R>, Result<Value>>
std::string Or (const R &result, const char *fallback)
 Convert the value a call returned to a std::string with a string-literal fallback.
template<typename T, typename U>
requires (!std::is_same_v<T, Value>)
T Or (const Result< T > &result, U &&fallback)
 Get a typed Result's value or fallback if it holds an error.
Value ExceptionValue (const Error &error)
 Get the value a JavaScript exception threw, to keep it or pass it back to the page.

Variables

constexpr NullType null {}
 The JavaScript null value.
constexpr UndefinedType undefined {}
 The JavaScript undefined value.

Namespaces

namespace  ultralight
 Root namespace for every public Ultralight type, function, and enumeration.
namespace  ultralight::js
 Type-checked JavaScript bridge between C++ and web pages.

Enumerations

enum class  PropertyAttributes : unsigned { None = kULJSPropertyAttributes_None , ReadOnly = kULJSPropertyAttributes_ReadOnly , DontEnum = kULJSPropertyAttributes_DontEnum , DontDelete = kULJSPropertyAttributes_DontDelete }
 Attribute flags for a property created by Value::SetProperty(). More...
enum class  Type : unsigned {
  Invalid = kULJSType_Invalid , Undefined = kULJSType_Undefined , Null = kULJSType_Null , Boolean = kULJSType_Boolean ,
  Number = kULJSType_Number , String = kULJSType_String , Symbol = kULJSType_Symbol , BigInt = kULJSType_BigInt ,
  Object = kULJSType_Object
}
 The type of a JavaScript value. More...

Go to the source code of this file.