Spot the bug in proxy validation

from Proxy and Reflect
Node 24 advanced 7 min 3 issues to find

Find the bypasses and forwarding bug in this generated validator.

JavaScript
function createValidatedUser(target) {
  return new Proxy(target, {
    set(target, key, value) {
      if (key === "age" && (!Number.isInteger(value) || value < 0)) {
        throw new TypeError("invalid age");
      }
      target[key] = value;
      return true;
    },
  });
}

const rawUser = { age: 20 };
const user = createValidatedUser(rawUser);
Object.defineProperty(user, "age", { value: -1, writable: true });
rawUser.age = -2;
Open in playground
Report an error