Rename API functions and throw errors

What is this? Why would we pass in a truthy value that returns 'undefined' for toString? Seems like this is covering up for a bug somewhere else?