Only need Java if you want to build a minified version of jQuery.
[jquery.git] / build / speed / benchmarker.js
index a04e5ac..bfcc16e 100755 (executable)
@@ -1,18 +1,42 @@
   jQuery.benchmarker.tests = [
-               "*",
-               "body", "body div", "div", 
-               "div div div", "div div", ".dialog", "div.dialog", "div .dialog",
-               "#speech5", "div#speech5", "div #speech5", "div > div", "div.scene div.dialog",
-               "div#scene1.scene div.dialog div", "#scene1 #speech1", "body > div.dialog div#speech5",
-               "div:nth-child(even)", "div:nth-child(odd)",
-               "div:nth-child(1)", "div:nth-child(2n)",
-               "div:nth-child(2n+3)", "div:first-child",
-               "div:last-child", "div:only-child",
-               "div:contains(CELIA)",
-               "div ~ div", "div + div",
-               "div[@class]", "div[@class=dialog]", "div[@class!=dialog]", 
-               "div[@class^=dialog]", "div[@class$=dialog]", "div[@class*=dialog]"
-               ]
+       // Selectors from:
+       // http://ejohn.org/blog/selectors-that-people-actually-use/
+       /*
+       // For Amazon.com
+       "#navAmazonLogo", "#navSwmSkedPop",
+       ".navbar", ".navGreeting",
+       "div", "table",
+       "img.navCrossshopTabCap", "span.navGreeting",
+       "#navbar table", "#navidWelcomeMsg span",
+       "div#navbar", "ul#navAmazonLogo",
+       "#navAmazonLogo .navAmazonLogoGatewayPanel", "#navidWelcomeMsg .navGreeting",
+       ".navbar .navAmazonLogoGatewayPanel", ".navbar .navGreeting",
+       "*",
+       "#navAmazonLogo li.navAmazonLogoGatewayPanel", "#navidWelcomeMsg span.navGreeting",
+       "a[name=top]", "form[name=site-search]",
+       ".navbar li", ".navbar span",
+       "[name=top]", "[name=site-search]",
+       "ul li", "a img",
+       "#navbar #navidWelcomeMsg", "#navbar #navSwmDWPop",
+       "#navbar ul li", "#navbar a img"
+       */
+       // For Yahoo.com
+       "#page", "#masthead", "#mastheadhd",
+       ".mastheadbd", ".first", ".on",
+       "div", "li", "a",
+       "div.mastheadbd", "li.first", "li.on",
+       "#page div", "#dtba span",
+       "div#page", "div#masthead",
+       "#page .mastheadbd", "#page .first",
+       ".outer_search_container .search_container", ".searchbox_container .inputtext",
+       "*",
+       "#page div.mastheadbd", "#page li.first",
+       "input[name=p]", "a[name=marketplace]",
+       ".outer_search_container div", ".searchbox_container span",
+       "[name=p]", "[name=marketplace]",
+       "ul li", "form input",
+       "#page #e2econtent", "#page #e2e"
+  ];
 
   jQuery.fn.benchmark = function() {
     this.each(function() {
@@ -20,8 +44,8 @@
         jQuery(this).parent().children("*:gt(1)").remove();
       } catch(e) { }
     })
-    var times = 5;
-    jQuery("#times").html(times);
+    // set # times to run the test in index.html
+    var times = parseInt(jQuery("#times").val());
     jQuery.benchmarker.startingList = this.get();
     benchmark(this.get(), times, jQuery.benchmarker.libraries);
   }
     jQuery("tbody tr:first-child").remove();
     jQuery("td.test").before("<td><input type='checkbox' checked='checked' /></td>");
     jQuery("button.runTests").bind("click", function() {
-      jQuery('td[input:checked] + td.test').benchmark();
+      jQuery('td:has(input:checked) + td.test').benchmark();
     });
 
-    jQuery("button.retryTies").bind("click", function() { jQuery("tr[td.tie] td.test").benchmark() })
+    jQuery("button.retryTies").bind("click", function() { jQuery("tr:has(td.tie) td.test").benchmark() })
 
-    jQuery("button.selectAll").bind("click", function() { jQuery("input[@type=checkbox]").each(function() { this.checked = true }) })
-    jQuery("button.deselectAll").bind("click", function() { jQuery("input[@type=checkbox]").each(function() { this.checked = false }) })
+    jQuery("button.selectAll").bind("click", function() { jQuery("input[type=checkbox]").each(function() { this.checked = true }) })
+    jQuery("button.deselectAll").bind("click", function() { jQuery("input[type=checkbox]").each(function() { this.checked = false }) })
 
     jQuery("#addTest").bind("click", function() {
       jQuery("table").append("<tr><td><input type='checkbox' /></td><td><input type='text' /><button>Add</button></td></tr>");
@@ -52,8 +76,9 @@
       })
     })
 
-    var headers = jQuery.map(jQuery.benchmarker.libraries, function(i) {
-      return "<th>" + i + "</th>"
+    var headers = jQuery.map(jQuery.benchmarker.libraries, function(i,n) {
+      var extra = n == 0 ? "basis - " : "";
+      return "<th>" + extra + i + "</th>"
     }).join("");
 
     jQuery("thead tr").append(headers);
        var times = times || 50;
        var el = list[0];
        var code = jQuery(el).text().replace(/^-/, "");
-         if(!libraries[0].match(/^jQ/)) {
-           code = code.replace(/@/, "");
-         }
          var timeArr = []
          for(i = 0; i < times + 2; i++) {
            var time = new Date()