void insert(int index, E element)

Inserts the object at position index in this list.

This increases the length of the list by one and shifts all objects at or after the index towards the end of the list.

An error occurs if the index is less than 0 or greater than length. An UnsupportedError occurs if the list is fixed-length.

Source

void insert(int index, E element) {
  RangeError.checkValueInInterval(index, 0, length, "index");
  if (index == this.length) {
    add(element);
    return;
  }
  // We are modifying the length just below the is-check. Without the check
  // Array.copy could throw an exception, leaving the list in a bad state
  // (with a length that has been increased, but without a new element).
  if (index is! int) throw new ArgumentError(index);
  this.length++;
  setRange(index + 1, this.length, this, index);
  this[index] = element;
}