I'm 98% sure it's primarily because of Function.prototype.toString()
and that there's no way to disable that, secondarily for debugging.
There's an internal mechanism to mark JS functions as native that lets
V8 throw away the source code but it's not available to regular JS. I
don't think it's even exposed through the public C++ API.