rem:  s = bundle.eras[dateObject.getFullYear() < 0 ? 1 : 0]; 
add: s = bundle[(l < 4) ? "eraAbbr" : "eraNames"][dateObject.getFullYear() < 0 ? 0 : 1]; 
context: 		return pattern.replace(/([a-z])\1*/ig, function(match){			var s;			var c = match.charAt(0);			var l = match.length;			var pad;			var widthList = ["abbr", "wide", "narrow"];			switch(c){				case 'G'://					if(l>3){/*unimplemented*/}					s = bundle.eras[dateObject.getFullYear() < 0 ? 1 : 0];					break;				case 'y':					s = dateObject.getFullYear();					switch(l){						case 1:							break;						case 2:							s = String(s); s = s.substr(s.length - 2);							break;						default:							pad = true;					}					break;				case 'Q':				case 'q':					s = Math.ceil((dateObject.getMonth()+1)/3);//					switch(l){//						case 1: case 2:							pad = true;//							break;//						case 3: case 4: // unimplemented//					}					break;				case 'M':				case 'L':					var m = dateObject.getMonth();					var width;					switch(l){						case 1: case 2:							s = m+1; pad = true;							break;						case 3: case 4: case 5:							width = widthList[l-3];							break;					}					if(width){						var type = (c == "L") ? "standalone" : "format";						var prop = ["months",type,width].join("-");						s = bundle[prop][m];					}					break;				case 'w':					var firstDay = 0;					s = dojo.date.locale._getWeekOfYear(dateObject, firstDay); pad = true;					break;				case 'd':					s = dateObject.getDate(); pad = true;					break;				case 'D':					s = dojo.date.locale._getDayOfYear(dateObject); pad = true;					break;				case 'E':				case 'e':				case 'c': // REVIEW: don't see this in the spec?					var d = dateObject.getDay();					var width;					switch(l){						case 1: case 2:							if(c == 'e'){								var first = dojo.cldr.supplemental.getFirstDayOfWeek(options.locale);								d = (d-first+7)%7;							}							if(c != 'c'){								s = d+1; pad = true;								break;							}							// else fallthrough...						case 3: case 4: case 5:							width = widthList[l-3];							break;					}					if(width){						var type = (c == "c") ? "standalone" : "format";						var prop = ["days",type,width].join("-");						s = bundle[prop][d];					}					break;				case 'a':					var timePeriod = (dateObject.getHours() < 12) ? 'am' : 'pm';					s = bundle[timePeriod];					break;				case 'h':				case 'H':				case 'K':				case 'k':					var h = dateObject.getHours();					// strange choices in the date format make it impossible to write this succinctly					switch (c) {						case 'h': // 1-12							s = (h % 12) || 12;							break;						case 'H': // 0-23							s = h;							break;						case 'K': // 0-11							s = (h % 12);							break;						case 'k': // 1-24							s = h || 24;							break;					}					pad = true;					break;				case 'm':					s = dateObject.getMinutes(); pad = true;					break;				case 's':					s = dateObject.getSeconds(); pad = true;					break;				case 'S':					s = Math.round(dateObject.getMilliseconds() * Math.pow(10, l-3));					break;				case 'v': // FIXME: don't know what this is. seems to be same as z?				case 'z':					// We only have one timezone to offer; the one from the browser					s = dojo.date.getTimezoneName(dateObject);					if(s){break;}					l=4;					// fallthrough... use GMT if tz not available				case 'Z':					var offset = dateObject.getTimezoneOffset();					var tz = [						(offset<=0 ? "+" : "-"),						dojo.string.pad(Math.floor(Math.abs(offset)/60), 2),						dojo.string.pad(Math.abs(offset)% 60, 2)					];					if(l==4){						tz.splice(0, 0, "GMT");						tz.splice(3, 0, ":");					}					s = tz.join("");					break;//				case 'Y': case 'u': case 'W': case 'F': case 'g': case 'A'://					console.debug(match+" modifier unimplemented");				default:					throw new Error("dojo.date.locale.format: invalid pattern char: "+pattern);			}			if(pad){ s = dojo.string.pad(s, l); }			return s;		});
meta: 4497	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/4497/93884b123c5ce92f99854d962b7fd4cb7aa1a016/locale.js/buggy/date/locale.js