You compare it to Python, then complain about weak typing?
What would you expect in your example? A deep copy/merge, a shallow copy/merge... right merged with left and result returned?
I expect a type error, like I said before. Implicit coercion between types is the definition of weak typing, and is part of what separates Python from Javascript.