This article covers features introduced in SpiderMonkey 17
Take ownership of a JSIdArray and free it later.
Syntax
AutoIdArray(JSContext *cx, JSIdArray *ida);
| Name | Type | Description | 
|---|---|---|
| cx | JSContext * | The context in which to add the root. Requires request. In a JS_THREADSAFEbuild, the caller must be in a request on thisJSContext. | 
| ida | JSIdArray * | A pointer to JSIdArrayto take the ownership. | 
Methods
| Method | Description | 
|---|---|
| bool operator!() const | Return trueif this has no owned array. | 
| jsid operator[](size_t i) const | Return a jsidin specified index of the owned array. | 
| size_t length() const | Return the length of the owned array. | 
| JSIdArray *steal() | Return the owned array and release the ownership. | 
Description
JS::AutoIdArray takes the ownership of JSIdArray, and frees it in destructor by calling JS_DestroyIdArray.
Examples
{
  JS::AutoIdArray ids(cx, JS_Enumerate(cx, obj));
  if (!ids) // Check the returned value from JS_Enumerate
    return false;
  for (int32_t i = 0, len = ids.length(); i < len; i++) {
    someFunc(cx, ids[i]);
  }
  /* when leaving this scope, the JSIdArray returned by JS_Enumerate is freed. */
}