JS_DefineProperties

Define multiple properties for a single object.

Syntax

bool
JS_DefineProperties(JSContext *cx, JS::HandleObject obj, const JSPropertySpec *ps);
Name Type Description
cx JSContext * The context in which to define the properties. Requires request. In a JS_THREADSAFE build, the caller must be in a request on this JSContext.
obj JSObject * The object on which to define new properties.
ps const JSPropertySpec * Pointer to the first element of an array containing names, ids, flags, and getProperty and setProperty method for the properties to create. The last array element must contain 0-valued members.
In SpiderMonkey versions prior to SpiderMonkey 24, the last argument to JS_DefinePropeties was not const.

Description

JS_DefineProperties creates properties on a specified object, obj.

ps is a pointer to the first element of an array of JSPropertySpec structures. Each array element defines a single property: its name, attributes, getter, and setter. The name field of the last array element must be NULL. JS_DefineProperties creates one property for each element in the array before the element with a null name field. Each property is defined as though by calling JS_DefineProperties.

The initial stored value of each property created is undefined.

On success, JS_DefineProperties returns true, indicating it has created all properties listed in the array. Otherwise it returns false.

See Also