anchor.diff:  part of index_geometry;
   
  +/// List of integers used to describe how the vertices in a [VertexArray] are
  +/// connected into geometry primitives.
   class IndexList extends DelegatingList<int> implements Uint16List {
     final Uint16List delegate;
   
  
positive.code:   /// dynamic can still be modified.
    final bool isDynamic;
  
    /// Instantiates a new [IndexList
    factory IndexList(int length) => new IndexList._internal(length, false);
  
    factory IndexList.dynamic(int length) =>
        new IndexList._internal(length, true);
  
  
negative.code: 
    IndexList._fromUint16List(this.delegate, this.isDynamic);
  
    /// Instantiates a new [IndexList] from the given list of [elements].
    ///
    /// Instantiates a new [IndexList] with the same length as the lists of
    /// [elements] and copies over the values from that list.
    IndexList.fromList(List<int> elements)
        : isDynamic = false,
          delegate = new Uint16List.fromList(elements);
  
    /// Instantiates a new [IndexList] from the given list of [elements], marked
    /// as dynamic.
    ///
    /// Instantiates a new [IndexList] with the same length as the lists of
    /// [elements] and copies over the values from that list.
    ///
    /// When index geometry is marked as dynamic it signals to the rendering
    /// back-end that the indices are intended to be modified regularly, allowing
    /// the rendering back-end to optimize for this. Note that this is merely a
    /// hint that can be used for tuning the performance of a rendering back-end:
    /// the index data for geometry that is not marked as dynamic can still be
    /// modified.
    IndexList.dynamicFromList(List<int> elements)
        : isDynamic = true,
          delegate = new Uint16List.fromList(elements);
  
    /// Instantiates a new [IndexList] as a view of the specified region in the
    /// [buffer].
    ///
    /// Changes to the [IndexList] will affect the data in the [buffer] and vice
    /// versa. If the [offsetInBytes] index of the region is not specified, it
    /// defaults to zero (the first byte in the [buffer]). If the [length] is not
    /// specified, it defaults to null, which indicates that the view extends to
    /// the end of the [buffer].
    ///
    /// When index geometry is marked as dynamic it signals to the rendering
    /// back-end that the indices are intended to be modified regularly, allowing
    /// the rendering back-end to optimize for this. Note that this is merely a
    /// hint that can be used for tuning the performance of a rendering back-end:
    /// the index data for geometry that is not marked as dynamic can still be
    /// modified.
    ///
    /// Throws a [RangeError] if [offsetInBytes] or [length] are negative, or if
    /// `offsetInBytes + (length * elementSizeInBytes)` is greater than the length
    /// of buffer.
    ///
    /// Throws an [ArgumentError] if [offsetInBytes] is not a multiple of
    /// [BYTES_PER_ELEMENT].
    IndexList.view(ByteBuffer buffer, [int offsetInBytes = 0, int length])
        : isDynamic = false,
          delegate = new Uint16List.view(buffer, offsetInBytes, length);
  
    /// Instantiates a new [IndexList] as a view of the specified region in the
    /// [buffer], marked as dynamic
    ///
    /// Changes to the [IndexList] will affect the data in the [buffer] and vice
    /// versa. If the [offsetInBytes] index of the region is not specified, it
    /// defaults to zero (the first byte in the [buffer]). If the [length] is not
    /// specified, it defaults to null, which indicates that the view extends to
    /// the end of the [buffer].
    ///
    /// Throws a [RangeError] if [offsetInBytes] or [length] are negative, or if
    /// `offsetInBytes + (length * elementSizeInBytes)` is greater than the length
    /// of buffer.
    ///
    /// Throws an [ArgumentError] if [offsetInBytes] is not a multiple of
    /// [BYTES_PER_ELEMENT].
    IndexList.dynamicView(ByteBuffer buffer, [int offsetInBytes = 0, int length])
        : isDynamic = true,
          delegate = new Uint16List.view(buffer, offsetInBytes, length);
  