Thank you for illustrating my point. All of the dynamic languages made different decisions on how to handle type conflicts, there simply is no right or wrong answer.
Oh, and JavaScript is single-threaded. It's impossible to share resources in a single process.