const handler = { get(target, propKey, receiver) { if (/^[0-9]+$/.test(propKey)) { const result = []; const first = Number(receiver); const last = Number(propKey); for (let i=first; i<=last; i++) { result.push(i); } return result; } return Reflect.get(target, propKey, receiver); } }; const proxy = new Proxy(Object.prototype, handler); Object.setPrototypeOf(Number.prototype, proxy); /* > 1[3] [ 1, 2, 3 ] > 11[14] [ 11, 12, 13, 14 ] */