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() {
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>");
})
})
- 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()