Yes, you forgotyour strategy for detecting manipulation of the runtime forgets that it is also possible to override the toString method of build-in objectsany function. After the cheater changed Reflect.set to their own implementation, they just need to enter the following in the javascript console of their web browsers to break your cheat detection system:
Reflect.set.toString = function() { return "function set() { [native code] }" }
Alternatively, they could set a break-point before const myData and replace setTrap with a different function. Which might actuallyironically be really handy as an entry point for their own cheating functionality.
Sorry, but a browser-based anti cheat system is not going to work. The debugging tools of modern web browsers are just too powerful and the JavaScript language just allows too much runtime trickery.