V8 API Reference, 7.2.502.16 (for Deno 0.2.4)
v8::ObjectTemplate Class Reference

#include <v8.h>

Inheritance diagram for v8::ObjectTemplate:
v8::Template v8::Data

Public Member Functions

 V8_DEPRECATED ("Use maybe version", Local< Object > NewInstance())
 
V8_WARN_UNUSED_RESULT MaybeLocal< ObjectNewInstance (Local< Context > context)
 
void SetAccessor (Local< String > name, AccessorGetterCallback getter, AccessorSetterCallback setter=nullptr, Local< Value > data=Local< Value >(), AccessControl settings=DEFAULT, PropertyAttribute attribute=None, Local< AccessorSignature > signature=Local< AccessorSignature >(), SideEffectType getter_side_effect_type=SideEffectType::kHasSideEffect, SideEffectType setter_side_effect_type=SideEffectType::kHasSideEffect)
 
void SetAccessor (Local< Name > name, AccessorNameGetterCallback getter, AccessorNameSetterCallback setter=nullptr, Local< Value > data=Local< Value >(), AccessControl settings=DEFAULT, PropertyAttribute attribute=None, Local< AccessorSignature > signature=Local< AccessorSignature >(), SideEffectType getter_side_effect_type=SideEffectType::kHasSideEffect, SideEffectType setter_side_effect_type=SideEffectType::kHasSideEffect)
 
void SetHandler (const NamedPropertyHandlerConfiguration &configuration)
 
void SetIndexedPropertyHandler (IndexedPropertyGetterCallback getter, IndexedPropertySetterCallback setter=nullptr, IndexedPropertyQueryCallback query=nullptr, IndexedPropertyDeleterCallback deleter=nullptr, IndexedPropertyEnumeratorCallback enumerator=nullptr, Local< Value > data=Local< Value >())
 
void SetHandler (const IndexedPropertyHandlerConfiguration &configuration)
 
void SetCallAsFunctionHandler (FunctionCallback callback, Local< Value > data=Local< Value >())
 
void MarkAsUndetectable ()
 
void SetAccessCheckCallback (AccessCheckCallback callback, Local< Value > data=Local< Value >())
 
void SetAccessCheckCallbackAndHandler (AccessCheckCallback callback, const NamedPropertyHandlerConfiguration &named_handler, const IndexedPropertyHandlerConfiguration &indexed_handler, Local< Value > data=Local< Value >())
 
int InternalFieldCount ()
 
void SetInternalFieldCount (int value)
 
bool IsImmutableProto ()
 
void SetImmutableProto ()
 
- Public Member Functions inherited from v8::Template
void Set (Local< Name > name, Local< Data > value, PropertyAttribute attributes=None)
 
void SetPrivate (Local< Private > name, Local< Data > value, PropertyAttribute attributes=None)
 
V8_INLINE void Set (Isolate *isolate, const char *name, Local< Data > value)
 
void SetAccessorProperty (Local< Name > name, Local< FunctionTemplate > getter=Local< FunctionTemplate >(), Local< FunctionTemplate > setter=Local< FunctionTemplate >(), PropertyAttribute attribute=None, AccessControl settings=DEFAULT)
 
void SetNativeDataProperty (Local< String > name, AccessorGetterCallback getter, AccessorSetterCallback setter=nullptr, Local< Value > data=Local< Value >(), PropertyAttribute attribute=None, Local< AccessorSignature > signature=Local< AccessorSignature >(), AccessControl settings=DEFAULT, SideEffectType getter_side_effect_type=SideEffectType::kHasSideEffect, SideEffectType setter_side_effect_type=SideEffectType::kHasSideEffect)
 
void SetNativeDataProperty (Local< Name > name, AccessorNameGetterCallback getter, AccessorNameSetterCallback setter=nullptr, Local< Value > data=Local< Value >(), PropertyAttribute attribute=None, Local< AccessorSignature > signature=Local< AccessorSignature >(), AccessControl settings=DEFAULT, SideEffectType getter_side_effect_type=SideEffectType::kHasSideEffect, SideEffectType setter_side_effect_type=SideEffectType::kHasSideEffect)
 
void SetLazyDataProperty (Local< Name > name, AccessorNameGetterCallback getter, Local< Value > data=Local< Value >(), PropertyAttribute attribute=None, SideEffectType getter_side_effect_type=SideEffectType::kHasSideEffect, SideEffectType setter_side_effect_type=SideEffectType::kHasSideEffect)
 
void SetIntrinsicDataProperty (Local< Name > name, Intrinsic intrinsic, PropertyAttribute attribute=None)
 

Static Public Member Functions

static Local< ObjectTemplateNew (Isolate *isolate, Local< FunctionTemplate > constructor=Local< FunctionTemplate >())
 
static MaybeLocal< ObjectTemplateFromSnapshot (Isolate *isolate, size_t index)
 
static V8_INLINE ObjectTemplateCast (Data *data)
 

Friends

class FunctionTemplate
 

Detailed Description

An ObjectTemplate is used to create objects at runtime.

Properties added to an ObjectTemplate are added to each object created from the ObjectTemplate.

Definition at line 6027 of file v8.h.

Member Function Documentation

◆ FromSnapshot()

MaybeLocal< ObjectTemplate > v8::ObjectTemplate::FromSnapshot ( Isolate *  isolate,
size_t  index 
)
static

Get a template included in the snapshot by index.

Definition at line 1648 of file api.cc.

◆ InternalFieldCount()

int v8::ObjectTemplate::InternalFieldCount ( )

Gets the number of internal fields for objects generated from this template.

Definition at line 1969 of file api.cc.

◆ IsImmutableProto()

bool v8::ObjectTemplate::IsImmutableProto ( )

Returns true if the object will be an immutable prototype exotic object.

Definition at line 1990 of file api.cc.

◆ MarkAsUndetectable()

void v8::ObjectTemplate::MarkAsUndetectable ( )

Mark object instances of the template as undetectable.

In many ways, undetectable objects behave as though they are not there. They behave like 'undefined' in conditionals and when printed. However, properties can be accessed and called as on normal objects.

Definition at line 1863 of file api.cc.

◆ New()

Local< ObjectTemplate > v8::ObjectTemplate::New ( Isolate *  isolate,
v8::Local< FunctionTemplate constructor = Local<FunctionTemplate>() 
)
static

Creates an ObjectTemplate.

Definition at line 1616 of file api.cc.

◆ SetAccessCheckCallback()

void v8::ObjectTemplate::SetAccessCheckCallback ( AccessCheckCallback  callback,
Local< Value data = Local<Value>() 
)

Sets access check callback on the object template and enables access checks.

When accessing properties on instances of this object template, the access check callback will be called to determine whether or not to allow cross-context access to the properties.

Definition at line 1873 of file api.cc.

◆ SetAccessCheckCallbackAndHandler()

void v8::ObjectTemplate::SetAccessCheckCallbackAndHandler ( AccessCheckCallback  callback,
const NamedPropertyHandlerConfiguration named_handler,
const IndexedPropertyHandlerConfiguration indexed_handler,
Local< Value data = Local<Value>() 
)

Like SetAccessCheckCallback but invokes an interceptor on failed access checks instead of looking up all-can-read properties. You can only use either this method or SetAccessCheckCallback, but not both at the same time.

Definition at line 1899 of file api.cc.

◆ SetAccessor()

void v8::ObjectTemplate::SetAccessor ( v8::Local< String name,
AccessorGetterCallback  getter,
AccessorSetterCallback  setter = nullptr,
v8::Local< Value data = Local<Value>(),
AccessControl  settings = DEFAULT,
PropertyAttribute  attribute = None,
v8::Local< AccessorSignature signature = Local<AccessorSignature>(),
SideEffectType  getter_side_effect_type = SideEffectType::kHasSideEffect,
SideEffectType  setter_side_effect_type = SideEffectType::kHasSideEffect 
)

Sets an accessor on the object template.

Whenever the property with the given name is accessed on objects created from this ObjectTemplate the getter and setter callbacks are called instead of getting and setting the property directly on the JavaScript object.

Parameters
nameThe name of the property for which an accessor is added.
getterThe callback to invoke when getting the property.
setterThe callback to invoke when setting the property.
dataA piece of data that will be passed to the getter and setter callbacks whenever they are invoked.
settingsAccess control settings for the accessor. This is a bit field consisting of one of more of DEFAULT = 0, ALL_CAN_READ = 1, or ALL_CAN_WRITE = 2. The default is to not allow cross-context access. ALL_CAN_READ means that all cross-context reads are allowed. ALL_CAN_WRITE means that all cross-context writes are allowed. The combination ALL_CAN_READ | ALL_CAN_WRITE can be used to allow all cross-context access.
attributeThe attributes of the property for which an accessor is added.
signatureThe signature describes valid receivers for the accessor and is used to perform implicit instance checks against them. If the receiver is incompatible (i.e. is not an instance of the constructor as defined by FunctionTemplate::HasInstance()), an implicit TypeError is thrown and no callback is invoked.

Definition at line 1748 of file api.cc.

◆ SetCallAsFunctionHandler()

void v8::ObjectTemplate::SetCallAsFunctionHandler ( FunctionCallback  callback,
Local< Value data = Local<Value>() 
)

Sets the callback to be used when calling instances created from this template as a function. If no callback is set, instances behave like normal JavaScript objects that cannot be called as a function.

Definition at line 1952 of file api.cc.

◆ SetHandler() [1/2]

void v8::ObjectTemplate::SetHandler ( const NamedPropertyHandlerConfiguration configuration)

Sets a named property handler on the object template.

Whenever a property whose name is a string or a symbol is accessed on objects created from this object template, the provided callback is invoked instead of accessing the property directly on the JavaScript object.

Parameters
configurationThe NamedPropertyHandlerConfiguration that defines the callbacks to invoke when accessing a property.

Definition at line 1854 of file api.cc.

◆ SetHandler() [2/2]

void v8::ObjectTemplate::SetHandler ( const IndexedPropertyHandlerConfiguration configuration)

Sets an indexed property handler on the object template.

Whenever an indexed property is accessed on objects created from this object template, the provided callback is invoked instead of accessing the property directly on the JavaScript object.

Parameters
configurationThe IndexedPropertyHandlerConfiguration that defines the callbacks to invoke when accessing a property.

Definition at line 1938 of file api.cc.

◆ SetImmutableProto()

void v8::ObjectTemplate::SetImmutableProto ( )

Makes the ObjectTemplate for an immutable prototype exotic object, with an immutable proto.

Definition at line 1994 of file api.cc.

◆ SetIndexedPropertyHandler()

void v8::ObjectTemplate::SetIndexedPropertyHandler ( IndexedPropertyGetterCallback  getter,
IndexedPropertySetterCallback  setter = nullptr,
IndexedPropertyQueryCallback  query = nullptr,
IndexedPropertyDeleterCallback  deleter = nullptr,
IndexedPropertyEnumeratorCallback  enumerator = nullptr,
Local< Value data = Local<Value>() 
)
inline

Sets an indexed property handler on the object template.

Whenever an indexed property is accessed on objects created from this object template, the provided callback is invoked instead of accessing the property directly on the JavaScript object.

Parameters
getterThe callback to invoke when getting a property.
setterThe callback to invoke when setting a property.
queryThe callback to invoke to check if an object has a property.
deleterThe callback to invoke when deleting a property.
enumeratorThe callback to invoke to enumerate all the indexed properties of an object.
dataA piece of data that will be passed to the callbacks whenever they are invoked.

Definition at line 6118 of file v8.h.

◆ SetInternalFieldCount()

void v8::ObjectTemplate::SetInternalFieldCount ( int  value)

Sets the number of internal fields for objects generated from this template.

Definition at line 1973 of file api.cc.

◆ V8_DEPRECATED()

v8::ObjectTemplate::V8_DEPRECATED ( "Use maybe version"  ,
Local< Object >   NewInstance() 
)

Creates a new instance of this template.


The documentation for this class was generated from the following files: