"get" using define plugin not fired when map is extended

I have a can.Map hierarchy define as follows:

var Model = can.Map.extend({
  define: {
    value: {
      value: false
    },
    
    theValue: {
      get: function(){
        return this.attr('value');
      }
    }
  }
})

var ExtendedModel = Model.extend({
  define: {
    anotherValue: {
      value: true
    },
    
    extendedTheValue: {
      get: function(){
        return this.attr('value');
      }
    }
  },
  
  toggleValue: function(){
    this.attr('value', !this.attr('value'));
  }
})

However, the theValue method is never called but the extendedTheValue method is called. Seems as though the theValue get is not inherited. I did read something about the define inheritance somewhere but I do not know if this is related.

Example in this jsbin.

Any way to get this working as expected?

I think canjs#1322 was the original issue that led to the development of define inheritance. I’m not sure where the current status is, but you can probably follow the links to the other issues to find out. can-map-define#17 is recent and may be related.

The old trick people used to do involves basically merging the two define blocks yourself, so you can probably do something like this for now:

var ExtendedModel = BaseModel.extend({
  define: can.extend({
    foo: {
      value: true
    }
  }, BaseModel.prototype.define)
})