context:     _decryptLogins : function (logins) {        var result = [], userCanceled = false;        for each (var login in logins) {            var username, password;            [username, userCanceled] =                this._decrypt(login.wrappedJSObject.encryptedUsername);            if (userCanceled)                break;            [password, userCanceled] =                this._decrypt(login.wrappedJSObject.encryptedPassword);            // Probably can't hit this case, but for completeness...            if (userCanceled)                break;            // If decryption failed (corrupt entry?) skip it.            // Note that we allow password-only logins, so username con be "".            if (username == null || !password)                continue;            // We could set the decrypted values on a copy of the object, to            // try to prevent the decrypted values from sitting around in            // memory if they're not needed. But thanks to GC that's happening            // anyway, so meh.            login.username = username;            login.password = password;            // Force any old mime64-obscured entries to be reencrypted.            if (login.wrappedJSObject.encryptedUsername &&                login.wrappedJSObject.encryptedUsername.charAt(0) == '~')                login.wrappedJSObject.encryptedUsername = null;            if (login.wrappedJSObject.encryptedPassword &&                login.wrappedJSObject.encryptedPassword.charAt(0) == '~')                login.wrappedJSObject.encryptedPassword = null;            result.push(login);        }        return [result, userCanceled];    },
meta: 8395	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/8395/50f670f73894d7f25afbddc0c2992d8546181476/storage-Legacy.js/buggy/toolkit/components/passwordmgr/src/storage-Legacy.js