Hash Tables & JavaScript Objects

What object enhancement pattern is demonstrated here?
const obj = {};
Object.defineProperties(obj, {
  size: {
    get() { return Object.keys(this).length },
    enumerable: false
  },
  add: {
    value: function(key, val) { this[key] = val },
    enumerable: false
  }
});
Next Question (14/20)