rem: if (window.arguments.length >= 5) { arg = window.arguments[4]; 
add: if (window.arguments.length >= 4) { arg = window.arguments[3]; 
context: function viewSource(url){  if (!url)    return false; // throw Components.results.NS_ERROR_FAILURE;  getBrowser().addEventListener("unload", onUnloadContent, true);  getBrowser().addEventListener("load", onLoadContent, true);  var loadFromURL = true;  //  // Parse the 'arguments' supplied with the dialog.  //    arg[0] - URL string.  //    arg[1] - Charset value in the form 'charset=xxx'.  //    arg[2] - Whether charset was forced by the user  //    arg[3] - Page descriptor used to load content from the cache.  //    arg[4] - Line number to go to.  //  if ("arguments" in window) {    var arg;    //    // Set the charset of the viewsource window...    //    var charset;    if (window.arguments.length >= 2) {      arg = window.arguments[1];      try {        if (typeof(arg) == "string" && arg.indexOf('charset=') != -1) {          var arrayArgComponents = arg.split('=');          if (arrayArgComponents) {            //we should "inherit" the charset menu setting in a new window            charset = arrayArgComponents[1];            gBrowser.markupDocumentViewer.defaultCharacterSet = charset;          }        }      } catch (ex) {        // Ignore the failure and keep processing arguments...      }    }    // If the document had a forced charset, set it here also    if (window.arguments.length >= 3) {      arg = window.arguments[2];      try {        if (arg === true) {          var docCharset = getBrowser().docShell.QueryInterface                             (Components.interfaces.nsIDocCharset);          docCharset.charset = charset;        }      } catch (ex) {        // Ignore the failure and keep processing arguments...      }    }    //    // Get any specified line to jump to.    //    if (window.arguments.length >= 5) {      arg = window.arguments[4];      gGoToLine = parseInt(arg);    }    //    // Use the page descriptor to load the content from the cache (if    // available).    //    if (window.arguments.length >= 4) {      arg = window.arguments[3];      try {        if (typeof(arg) == "object" && arg != null) {          var PageLoader = getBrowser().webNavigation.QueryInterface(pageLoaderIface);          //          // Load the page using the page descriptor rather than the URL.          // This allows the content to be fetched from the cache (if          // possible) rather than the network...          //          PageLoader.loadPage(arg, pageLoaderIface.DISPLAY_AS_SOURCE);          // The content was successfully loaded from the page cookie.          loadFromURL = false;        }      } catch(ex) {        // Ignore the failure.  The content will be loaded via the URL        // that was supplied in arg[0].      }    }  }  if (loadFromURL) {    //    // Currently, an exception is thrown if the URL load fails...    //    var loadFlags = Components.interfaces.nsIWebNavigation.LOAD_FLAGS_NONE;    var viewSrcUrl = "view-source:" + url;    getBrowser().webNavigation.loadURI(viewSrcUrl, loadFlags, null, null, null);  }  //check the view_source.wrap_long_lines pref and set the menuitem's checked attribute accordingly  if (gPrefs) {    try {      var wraplonglinesPrefValue = gPrefs.getBoolPref("view_source.wrap_long_lines");      if (wraplonglinesPrefValue)        document.getElementById('menu_wrapLongLines').setAttribute("checked", "true");    } catch (ex) {    }    try {      document.getElementById("menu_highlightSyntax").setAttribute("checked", gPrefs.getBoolPref("view_source.syntax_highlight"));    } catch (ex) {    }  } else {    document.getElementById("menu_highlightSyntax").setAttribute("hidden", "true");  }  window._content.focus();  return true;}
meta: 10234	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/10234/8580de274420fc2b99d8fe66b98464b4aeccea2a/viewSource.js/buggy/toolkit/components/viewsource/content/viewSource.js