I would not worry about this. Changing Object.prototype[1] will break all default parameters. We could change the default param code to use own property but this is not a price I am willing to pay. Doing this is something that never happens outside of tests and I'm sure that 99% of the code out there will break if you start mucking with the builtins in these malicious ways.