anchor.diff:    }
   
     bool SupportsAttribute(String canonical) {
  -    return _locationMap != null && _locationMap.containsKey(canonical);
  +    return _locationMap.containsKey(canonical);
     }
   
     int GetNumItems() {
  
positive.code:   return md;
  }
  
  MeshData ExtractWireframeNormals(ShaderProgram prog, MeshData md, [scale = 1.0]) {
    assert(md._drawMode == GL_TRIANGLES);
    MeshData out = prog.MakeMeshData(md.name, GL_LINES);
    final Float32List vertices = md.GetAttribute(aVertexPosition);
  
negative.code:   void AddAttribute(String canonical, List data, int width) {
      _buffers[canonical] = _cgl.createBuffer();
      ChangeAttribute(canonical, data, width);
      _cgl.bindVertexArray(_vao);
      ShaderVarDesc desc = RetrieveShaderVarDesc(canonical);
      if (desc == null) throw "Unknown canonical ${canonical}";
      assert(_locationMap.containsKey(canonical),
          "unexpected attribute ${canonical}");
      int index = _locationMap[canonical];
      _cgl.enableVertexAttribArray(index, 0);
      _cgl.vertexAttribPointer(
          _buffers[canonical], index, desc.GetSize(), GL_FLOAT, false, 0, 0);
    }
  
    void AddVertices(Float32List data) {
      final String canonical = aVertexPosition;
      _buffers[canonical] = _cgl.createBuffer();
      ChangeVertices(data);
      _cgl.bindVertexArray(_vao);
      ShaderVarDesc desc = RetrieveShaderVarDesc(canonical);
      if (desc == null) throw "Unknown canonical ${canonical}";
      assert(_locationMap.containsKey(canonical));
      int index = _locationMap[canonical];
      _cgl.enableVertexAttribArray(index, 0);
      _cgl.vertexAttribPointer(
          _buffers[canonical], index, desc.GetSize(), GL_FLOAT, false, 0, 0);
    }
  
    void ChangeFaces(List<int> faces) {
  