anchor.diff:    }
   
     bool SupportsAttribute(String canonical) {
  -    return _locationMap != null && _locationMap.containsKey(canonical);
  +    return _locationMap.containsKey(canonical);
     }
   
     int GetNumItems() {
  
positive.code: 
    @override
    void AddToSink(RenderInputSink program) {
      if (_locationMap != null) {
        _cgl.bindVertexArray(_vao);
      }
      for (String canonical in _buffers.keys) {
        program.SetInput(canonical, _buffers[canonical], this);
      }
  
negative.code: 
  void _GeometryBuilderAttributesToMeshData(GeometryBuilder gb, MeshData md) {
    for (String canonical in gb.attributes.keys) {
      if (!md.SupportsAttribute(canonical)) {
        print("Dropping unnecessary attribute: ${canonical}");
        continue;
      }
      dynamic lst = gb.attributes[canonical];
      ShaderVarDesc desc = RetrieveShaderVarDesc(canonical);
  
      //print("${md.name} ${canonical} ${lst}");
      switch (desc.type) {
        case VarTypeVec2:
  