I think the question has been answered above, just wanted to add my two cents on the topic of 'with.' The example almost all of you bring up are ambigious class and variable names, which with with or without with are hard to maintain and understand. If you name your variables, classes, objects with some kind of meaning with can be golden.
var car = {
wheels: {radius: 5, rim: 'gold', shape: 'circle'},
body: {color: 'black', windows: 'tinted'}
};
and Now:
with (car){
wheels.shape = square;
body.color = blue;
}
Point being, with can be powerful and save a lot of time for the programmer after you. It works well only if you use it correctly and already have a habit of verbose naming of variables and sufficient commenting. Furthermore, someone said that if you do:
with(a){
x = 3;
}
that somehow a variable that is not a member of the class will somehow gets overridden. Correct me if I am wrong but if there is a global variable x and a property a.x, in the with block, only the a.x get's overridden since that is the current scope.