Hash Tables & JavaScript Objects

What type of object protection is implemented here?
const handler = {
  get(target, prop) {
    if (prop in target) return target[prop];
    throw new Error(`Property ${prop} doesn't exist`);
  },
  set(target, prop, value) {
    if (typeof value !== 'number') {
      throw new TypeError('Value must be a number');
    }
    target[prop] = value;
    return true;
  }
};
const validated = new Proxy({}, handler);
Next Question (20/20)