Defines a single property for an object.

Syntax

struct JSPropertySpec {
    struct SelfHostedWrapper {
        void       *unused;
        const char *funname;
    };

    const char                  *name;
    int8                        tinyid; // Obsolete since JSAPI 31
    uint8_t                     flags;
    union {
        JSNativeWrapper     native;
        SelfHostedWrapper   selfHosted;
    } getter;
    union {
        JSNativeWrapper           native;
        SelfHostedWrapper         selfHosted;
    } setter;

    /* Obsolete since JSAPI 29 */
    /* Added in JSAPI 28 */
    const char                 *selfHostedGetter;
    const char                 *selfHostedSetter;
};
Name Type Description
name const char * Name to assign the property.
tinyid int8 Obsolete since JSAPI 31 Unique ID number for the property to aid in resolving getProperty and setProperty method calls. This value should be zero if you are not using tinyIDs (i.e. the getter/setter function is only used by one property).
flags uint8_t The bitwise OR of any number of Property attributes.
getter JSNativeWrapper or SelfHostedWrapper Getter method for the property.
setter JSNativeWrapper or SelfHostedWrapper Setter method for the property. If a property is read-only, its setter is never called.

Description

JSPropertySpec defines the attributes for a single JS property to associate with an object. Pass to JS_DefineProperties or JS_InitClass to create the properties and assign them to an object.

To define an array of JSPropertySpec, use JS_PSG, JS_PSGS, JS_SELF_HOSTED_GET, JS_SELF_HOSTED_GETSET, and JS_PS_END

See Also