anchor.diff:              'does not match the size of the uniform ($_size).');
         }
   
  -      final units = new Int32List(length);
  -
         for (var i = 0; i < length; i++) {
           final sampler = value[i];
           final texture = sampler.texture;
           final existingUnit = context._textureUnitsTextures.inverse[texture];
   
           if (existingUnit != null) {
  -          units[i] = existingUnit;
  +          _units[i] = existingUnit;
   
             context._recentlyUsedTextureUnits
               ..remove(existingUnit)
  
positive.code: 
            context._bindTexture2D(texture);
  
            units[i] = context._activeTextureUnit;
          }
  
          context.textureResources._getGLTexture2D(texture).applySampler(sampler);
        }
  
        glContext.uniform1iv(location, units);
      } else {
        throw new ArgumentError('Cannot bind a value of type '
            '`${value.runtimeType}` to uniform `${info.name}` of type '
  
negative.code: class _Sampler2DArrayUniform extends _BasicUniform {
    final int _size;
  
    final Int32List _units;
  
    _Sampler2DArrayUniform(RenderingContext context, _GLProgram program,
        WebGL.UniformLocation location, WebGL.ActiveInfo info, String name)
        : _size = info.size,
          _units = new Int32List(info.size),
          super(context, program, location, info, name);
  
    void bindValue(Object value, bool autoProvisioning) {
  