anchor.diff:    }
   
     void _updateBlending(Blending blending) {
  -    if (blending != null && !identical(blending, _blending)) {
  +    if (blending != null) {
         if (!_blendingEnabled) {
           _context.enable(WebGL.BLEND);
           _blendingEnabled = true;
         }
   
  -      if (blending.colorFunction != _blending.colorFunction ||
  -          blending.alphaFunction != _blending.alphaFunction) {
  -        _context.blendEquationSeparate(
  -            _blendingFunctionMap[blending.colorFunction],
  -            _blendingFunctionMap[blending.alphaFunction]);
  -      }
  -
  -      if (blending.sourceColorFactor != _blending.sourceColorFactor ||
  -          blending.sourceAlphaFactor != _blending.sourceAlphaFactor ||
  -          blending.destinationColorFactor != _blending.destinationColorFactor ||
  -          blending.destinationAlphaFactor != _blending.destinationAlphaFactor) {
  -        _context.blendFuncSeparate(
  -            _blendingFactorMap[blending.sourceColorFactor],
  -            _blendingFactorMap[blending.destinationColorFactor],
  -            _blendingFactorMap[blending.sourceAlphaFactor],
  -            _blendingFactorMap[blending.destinationAlphaFactor]);
  -      }
  -
  -      _blending = blending;
  +      if (!identical(blending, _blending)) {
  +        if (blending.colorFunction != _blending.colorFunction ||
  +            blending.alphaFunction != _blending.alphaFunction) {
  +          _context.blendEquationSeparate(
  +              _blendingFunctionMap[blending.colorFunction],
  +              _blendingFunctionMap[blending.alphaFunction]);
  +        }
  +
  +        if (blending.sourceColorFactor != _blending.sourceColorFactor ||
  +            blending.sourceAlphaFactor != _blending.sourceAlphaFactor ||
  +            blending.destinationColorFactor !=
  +                _blending.destinationColorFactor ||
  +            blending.destinationAlphaFactor !=
  +                _blending.destinationAlphaFactor) {
  +          _context.blendFuncSeparate(
  +              _blendingFactorMap[blending.sourceColorFactor],
  +              _blendingFactorMap[blending.destinationColorFactor],
  +              _blendingFactorMap[blending.sourceAlphaFactor],
  +              _blendingFactorMap[blending.destinationAlphaFactor]);
  +        }
  +
  +        _blending = blending;
  +      }
       } else if (blending == null && _blendingEnabled) {
         _context.disable(WebGL.BLEND);
         _blendingEnabled = false;
  
positive.code:     _samplerResources = new _ContextSamplerResourceManager(this);
      _defaultFrame = new Frame._default(this);
      _boundFrame = _defaultFrame;
      _recentlyUsedTextureUnits = new Queue.from(new List.generate(maxTextureUnits, (i) => i));
    }
  
    /// Retrieves a [RenderingContext] for the [canvas].
  
negative.code:   }
  
    void _bindSampler2D(Sampler2D sampler) {
      if (sampler != _boundSampler2D ||
          sampler != _textureUnitsSamplers[_activeTextureUnit]) {
        if (sampler == null) {
          _context.bindTexture(WebGL.TEXTURE_2D, null);
        } else {
  