rem: if (digest !== this.getDigest(session.data.token)) { throw new Exception("loginTypo"); 
add: if (digest !== user.getDigest(session.data.token)) { throw Error("Unfortunately, your login failed. Maybe a typo?"); 
context: User.prototype.login = function(data) {   var user = this;   var digest = data.digest;   // Calculate digest for JavaScript-disabled browsers   if (!digest) {      digest = ((data.password + this.value("salt")).md5() +             session.data.token).md5();   }   // Check if login is correct   if (digest !== this.getDigest(session.data.token)) {      throw new Exception("loginTypo");   }   session.login(user);   user.touch();   if (data.remember) {      // Set long running cookies for automatic login      res.setCookie("avUsr", user.value("name"), 365);      var ip = req.data.http_remotehost.clip(getProperty("cookieLevel", "4"),             "", "\\.");      res.setCookie("avPw", (user.value("hash") + ip).md5(), 365);      }   return new Message("welcome", [res.handlers.context.getTitle(), user.name]);};
meta: 993	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/993/e9a7800a87905f590201a6af0beb752a4e65a080/User.js/buggy/code/User/User.js