if (newExp.isConstant()) {
if (newExp!=cond) {
    public Object visitWhileStatement(JWhileStatement self,				      JExpression cond,				      JStatement body) {	loopDepth++;	if(!write) {	    cond.accept(this);	    body.accept(this);	} else {	    Propagator newProp=construct(cloneTable(constants),false);	    cond.accept(newProp);	    body.accept(newProp);	    Enumeration remove=newProp.changed.keys();	    while(remove.hasMoreElements()) {		JLocalVariable var=(JLocalVariable)remove.nextElement();		constants.remove(var);		changed.put(var,Boolean.TRUE);	    }	    Hashtable saveConstants=cloneTable(constants);	    JExpression newExp = (JExpression)cond.accept(this);	    // reset if we found a constant	    if (newExp.isConstant()) {		self.setCondition(newExp);	    }	    body.accept(this);	    constants=saveConstants;	}	loopDepth--;	return self;    }