Namespaces were once a consideration for ECMAScript (the old ECMAScript 4) but were taken out. As Brendan Eich says in this message:
  One of the use-cases for namespaces in
  ES4 was early binding (use   namespace
  intrinsic), both for performance and
  for programmer   comprehension -- no
  chance of runtime name binding
  disagreeing with   any earlier
  binding. But early binding in any
  dynamic code loading   scenario like
  the web requires a prioritization or
  reservation   mechanism to avoid early
  versus late binding conflicts.
  
  Plus, as some JS implementors have
  noted with concern, multiple open
  namespaces impose runtime cost unless
  an implementation works
  significantly harder.
  
  For these reasons, namespaces and
  early binding (like packages before
  them, this past April) must go.
But I'm not sure I understand all of that. What exactly is a prioritization or reservation mechanism and why would either of those be needed? Also, must early binding and namespaces go hand-in-hand? For some reason I can't wrap my head around the issues involved. Can anyone attempt a more fleshed out explanation?
Also, why would namespaces impose runtime costs? In my mind I can't help but see little difference in concept between a namespace and a function using closures. For instance, Yahoo and Google both have YAHOO and google objects that "act like" namespaces in that they contain all of their public and private variables, functions, and objects within a single access point. So why, then, would a namespace be so significantly different in implementation? Maybe I just have a misconception as to what a namespace is exactly.