Property Access
These functions provide access to JavaScript object properties from C code. Properties can be accessed using atoms, strings, or numeric indices.Getting Properties
JS_GetProperty
Gets a property value using an atom.ctx- JavaScript contextthis_obj- Object to get property fromprop- Property name as atom
JS_EXCEPTION on error
Example:
JS_GetPropertyStr
Gets a property value using a C string.ctx- JavaScript contextthis_obj- Object to get property fromprop- Property name as null-terminated string
JS_EXCEPTION on error
Example:
JS_GetPropertyUint32
Gets a property value using a numeric index.ctx- JavaScript contextthis_obj- Object to get property fromidx- Property index (0-based)
JS_EXCEPTION on error
Example:
JS_GetPropertyInt64
Gets a property value using a 64-bit integer index.ctx- JavaScript contextthis_obj- Object to get property fromidx- Property index
JS_EXCEPTION on error
Setting Properties
JS_SetProperty
Sets a property value using an atom.ctx- JavaScript contextthis_obj- Object to set property onprop- Property name as atomval- Value to set (ownership transferred)
1on success0on failure-1on exception
val. Do not call JS_FreeValue() on it.
Example:
JS_SetPropertyStr
Sets a property value using a C string.ctx- JavaScript contextthis_obj- Object to set property onprop- Property name as null-terminated stringval- Value to set (ownership transferred)
1on success0on failure-1on exception
JS_SetPropertyUint32
Sets a property value using a numeric index.ctx- JavaScript contextthis_obj- Object to set property onidx- Property index (0-based)val- Value to set (ownership transferred)
1on success0on failure-1on exception
JS_SetPropertyInt64
Sets a property value using a 64-bit integer index.ctx- JavaScript contextthis_obj- Object to set property onidx- Property indexval- Value to set (ownership transferred)
1on success0on failure-1on exception
Checking Properties
JS_HasProperty
Checks if an object has a property.ctx- JavaScript contextthis_obj- Object to checkprop- Property name as atom
1if property exists0if property does not exist-1on exception
JS_DeleteProperty
Deletes a property from an object.ctx- JavaScript contextobj- Object to delete property fromprop- Property name as atomflags- Combination ofJS_PROP_*flags
1on success0on failure-1on exception
Advanced Property Operations
JS_DefineProperty
Defines a property with a descriptor.ctx- JavaScript contextthis_obj- Object to define property onprop- Property name as atomval- Property value (orJS_UNDEFINED)getter- Getter function (orJS_UNDEFINED)setter- Setter function (orJS_UNDEFINED)flags- Property flags (see below)
0on success-1on exception
JS_DefinePropertyValue
Defines a data property with a value.ctx- JavaScript contextthis_obj- Object to define property onprop- Property name as atomval- Property value (ownership transferred)flags- Property flags
0on success-1on exception
JS_DefinePropertyValueStr
Defines a data property with a value using a string name.ctx- JavaScript contextthis_obj- Object to define property onprop- Property name as null-terminated stringval- Property value (ownership transferred)flags- Property flags
0on success-1on exception
JS_DefinePropertyValueUint32
Defines a data property with a value using a numeric index.ctx- JavaScript contextthis_obj- Object to define property onidx- Property indexval- Property value (ownership transferred)flags- Property flags
0on success-1on exception
JS_DefinePropertyGetSet
Defines an accessor property with getter and setter.ctx- JavaScript contextthis_obj- Object to define property onprop- Property name as atomgetter- Getter function (ownership transferred)setter- Setter function (ownership transferred)flags- Property flags
0on success-1on exception
JS_GetOwnProperty
Gets the property descriptor for an own property.ctx- JavaScript contextdesc- Pointer to property descriptor structureobj- Object to queryprop- Property name as atom
1if property exists0if property does not exist-1on exception
JS_GetOwnPropertyNames
Gets an array of property names from an object.ctx- JavaScript contextptab- Pointer to receive property arrayplen- Pointer to receive property countobj- Object to queryflags- Combination ofJS_GPN_*flags
0on success-1on exception
JS_FreePropertyEnum
Frees a property enumeration array.ctx- JavaScript contexttab- Property array to freelen- Number of properties
Special Property Operations
JS_GetPrototype
Gets the prototype of an object.ctx- JavaScript contextval- Object to get prototype from
JS_EXCEPTION on error
JS_SetPrototype
Sets the prototype of an object.ctx- JavaScript contextobj- Object to set prototype onproto_val- New prototype object orJS_NULL
0on success-1on exception
JS_GetLength
Gets the length property of an object.ctx- JavaScript contextobj- Object to get length frompres- Pointer to store the length
0on success-1on exception
JS_SetLength
Sets the length property of an object.ctx- JavaScript contextobj- Object to set length onlen- New length value
0on success-1on exception