xpcom/ds/nsIArrayExtensions.idl
author Kris Maglione <maglione.k@gmail.com>
Thu, 10 May 2018 10:36:53 -0700
changeset 473641 1becc594554c1a273535ed175895e801667735e9
parent 362100 2431c088b4c11110274e97a5e8d3acb935db2119
child 488331 e8c65dc566057853a19c477e0b30cd9e81d6326b
permissions -rw-r--r--
Bug 1460600: Remove unsupported --enable-system-hunspell flag. r=glandium Our bundled Hunspell now significantly differs from upstream Hunspell. Most importantly, it supports loading dictionaries from jar: URIs, which is now a requirement for loading bundled and extension dictionaries. This means that system Hunspell libraries are no longer compatible with our spell checker code. We should remove the option to use them so that users don't fall into the trap of trying to use them. MozReview-Commit-ID: 2ihJe6YOnGf

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "nsIArray.idl"

/**
 * Helper interface for allowing scripts to treat nsIArray instances as if
 * they were nsISupportsArray instances while iterating.
 *
 * nsISupportsArray is convenient to iterate over in JavaScript:
 *
 * for (let i = 0; i < array.Count(); ++i) {
 *   let elem = array.GetElementAt(i);
 *   ...
 * }
 *
 * but doing the same with nsIArray is somewhat less convenient, since
 * queryElementAt is not nearly so nice to use from JavaScript.  So we provide
 * this extension interface so interfaces that currently return
 * nsISupportsArray can start returning nsIArrayExtensions and all JavaScript
 * should Just Work. Eventually we'll roll this interface into nsIArray
 * itself, possibly getting rid of the Count() method, as it duplicates
 * nsIArray functionality.
 */
[scriptable, uuid(261d442e-050c-453d-8aaa-b3f23bcc528b)]
interface nsIArrayExtensions : nsIArray
{
  /**
   * Count()
   *
   * Retrieves the length of the array. This is an alias for the
   * |nsIArray.length| attribute.
   */
  uint32_t Count();

  /**
   * GetElementAt()
   *
   * Retrieve a specific element of the array. null is a valid result for
   * this method.
   *
   * Note: If the index is out of bounds null will be returned.
   *       This differs from the behavior of nsIArray.queryElementAt() which
   *       will throw if an invalid index is specified.
   *
   * @param index position of element
   */
  nsISupports GetElementAt(in uint32_t index);
};