)
Check that a value is a valid index into an indexable object.
Throws if index
is not a valid index into indexable
.
An indexable object is one that has a length
and a and index-operator
[]
that accepts an index if 0 <= index < length
.
If length
is provided, it is used as the length of the indexable object,
otherwise the length is found as indexable.length
.
Source
/**
* Check that a value is a valid index into an indexable object.
*
* Throws if [index] is not a valid index into [indexable].
*
* An indexable object is one that has a `length` and a and index-operator
* `[]` that accepts an index if `0 <= index < length`.
*
* If [length] is provided, it is used as the length of the indexable object,
* otherwise the length is found as `indexable.length`.
*/
static void checkValidIndex(int index, var indexable,
[String name, int length, String message]) {
if (length == null) length = indexable.length;
if (index < 0 || index >= length) {
if (name == null) name = "index";
throw new RangeError.index(index, indexable, name, message, length);
}
}