smparkes-envjs 0.0.9 → 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (186) hide show
  1. data/bin/envjsrb +157 -73
  2. data/bin/jquery-1.3.2-test.js +11 -4
  3. data/lib/envjs/env.js +935 -11028
  4. data/lib/envjs/net/cgi.rb +94 -0
  5. data/lib/envjs/net/file.rb +4 -4
  6. data/lib/envjs/runtime.rb +80 -24
  7. data/test/call-load-test.js +0 -2
  8. data/test/firebug/errorIcon.png +0 -0
  9. data/test/firebug/firebug.css +209 -0
  10. data/test/firebug/firebug.html +23 -0
  11. data/test/firebug/firebug.js +672 -0
  12. data/test/firebug/firebugx.js +10 -0
  13. data/test/firebug/infoIcon.png +0 -0
  14. data/test/firebug/warningIcon.png +0 -0
  15. data/test/fixtures/html/events.html +171 -0
  16. data/test/fixtures/html/iframe1.html +46 -0
  17. data/test/fixtures/html/iframe1a.html +46 -0
  18. data/test/fixtures/html/iframe2.html +45 -0
  19. data/test/fixtures/html/iframe3.html +28 -0
  20. data/test/fixtures/html/iframeN.html +57 -0
  21. data/test/fixtures/html/malformed.html +181 -0
  22. data/test/fixtures/html/scope.html +81 -0
  23. data/test/fixtures/html/trivial.html +19 -0
  24. data/test/fixtures/html/with_js.html +26 -0
  25. data/test/fixtures/images/icon-blue.png +0 -0
  26. data/test/fixtures/js/external_script.js +1 -0
  27. data/test/fixtures/js/script.js +1 -0
  28. data/test/fixtures/js/script_error.js +2 -0
  29. data/test/html/malformed.html +1 -0
  30. data/test/index.html +21 -19
  31. data/test/{primaryTests.js → primary-tests.js} +1 -3
  32. data/test/{prototype.js → prototype-test.js} +0 -2
  33. data/test/qunit/qunit/qunit.css +0 -0
  34. data/test/qunit/qunit/qunit.js +2 -2
  35. data/test/{qunit/qunit/qunit.js.smp → specs/dist/env.spec.js} +539 -7
  36. data/test/specs/envjs.spec.css +46 -0
  37. data/test/specs/parser/html.js +31 -0
  38. data/test/specs/parser/spec.html +40 -0
  39. data/test/specs/parser/xml.js +31 -0
  40. data/test/specs/qunit.bdd.js +210 -0
  41. data/test/{qunit.smp/qunit → specs}/qunit.css +0 -0
  42. data/test/{qunit.smp/qunit → specs}/qunit.js +2 -2
  43. data/test/specs/template/spec-0.js +31 -0
  44. data/test/specs/template/spec-1.js +31 -0
  45. data/test/specs/template/spec.html +40 -0
  46. data/test/specs/window/css.js +23 -0
  47. data/test/specs/window/dialog.js +25 -0
  48. data/test/specs/window/document.js +23 -0
  49. data/test/specs/window/event.js +25 -0
  50. data/test/specs/window/history.js +34 -0
  51. data/test/specs/window/location.js +34 -0
  52. data/test/specs/window/navigator.js +71 -0
  53. data/test/specs/window/screen.js +42 -0
  54. data/test/specs/window/spec.html +48 -0
  55. data/test/specs/window/timer.js +26 -0
  56. data/test/specs/window/window.js +53 -0
  57. data/test/specs/xhr/spec.html +47 -0
  58. data/test/specs/xhr/xhr.js +31 -0
  59. data/test/test.js +10 -0
  60. data/test/unit/elementmembers.js +31 -0
  61. data/test/unit/nu.validator.js +34 -0
  62. data/test/unit/onload.js +1 -3
  63. data/test/unit/parser.js +106 -98
  64. data/test/unit/prototypecompat.js +2 -2
  65. data/test/vendor/jQuery/1.3.2/ChangeLog.txt +98 -0
  66. data/test/vendor/jQuery/1.3.2/GPL-LICENSE.txt +278 -0
  67. data/test/vendor/jQuery/1.3.2/MIT-LICENSE.txt +20 -0
  68. data/test/vendor/jQuery/1.3.2/Makefile +154 -0
  69. data/test/vendor/jQuery/1.3.2/README +67 -0
  70. data/test/vendor/jQuery/1.3.2/build/ant-contrib-0.6.jar +0 -0
  71. data/test/vendor/jQuery/1.3.2/build/build/min.js +11 -0
  72. data/test/vendor/jQuery/1.3.2/build/build/pack.js +19 -0
  73. data/test/vendor/jQuery/1.3.2/build/js/Packer.js +209 -0
  74. data/test/vendor/jQuery/1.3.2/build/js/ParseMaster.js +106 -0
  75. data/test/vendor/jQuery/1.3.2/build/js/Words.js +62 -0
  76. data/test/vendor/jQuery/1.3.2/build/js/base2.js +978 -0
  77. data/test/vendor/jQuery/1.3.2/build/js/jsmin.js +316 -0
  78. data/test/vendor/jQuery/1.3.2/build/js/json.js +117 -0
  79. data/test/vendor/jQuery/1.3.2/build/js/pack.js +316 -0
  80. data/test/vendor/jQuery/1.3.2/build/js/parse.js +105 -0
  81. data/test/vendor/jQuery/1.3.2/build/js/writeFile.js +19 -0
  82. data/test/vendor/jQuery/1.3.2/build/js/xml.js +25 -0
  83. data/test/vendor/jQuery/1.3.2/build/js.jar +0 -0
  84. data/test/vendor/jQuery/1.3.2/build/runtest/env.js +1 -0
  85. data/test/vendor/jQuery/1.3.2/build/runtest/test.js +106 -0
  86. data/test/vendor/jQuery/1.3.2/build/runtest/testrunner.js +197 -0
  87. data/test/vendor/jQuery/1.3.2/build/speed/benchmarker.css +65 -0
  88. data/test/vendor/jQuery/1.3.2/build/speed/benchmarker.js +181 -0
  89. data/test/vendor/jQuery/1.3.2/build/speed/index.html +72 -0
  90. data/test/vendor/jQuery/1.3.2/build/speed/jquery-basis.js +3549 -0
  91. data/test/vendor/jQuery/1.3.2/build/style.xsl +99 -0
  92. data/test/vendor/jQuery/1.3.2/build/yuicompressor-2.4.2.jar +0 -0
  93. data/test/vendor/jQuery/1.3.2/build.xml +123 -0
  94. data/test/vendor/jQuery/1.3.2/dist/jquery.js +4376 -0
  95. data/test/vendor/jQuery/1.3.2/reminder.txt +3 -0
  96. data/test/vendor/jQuery/1.3.2/src/ajax.js +541 -0
  97. data/test/vendor/jQuery/1.3.2/src/core.js +1255 -0
  98. data/test/vendor/jQuery/1.3.2/src/data.js +145 -0
  99. data/test/vendor/jQuery/1.3.2/src/dimensions.js +49 -0
  100. data/test/vendor/jQuery/1.3.2/src/event.js +684 -0
  101. data/test/vendor/jQuery/1.3.2/src/fx.js +407 -0
  102. data/test/vendor/jQuery/1.3.2/src/intro.js +13 -0
  103. data/test/vendor/jQuery/1.3.2/src/offset.js +155 -0
  104. data/test/vendor/jQuery/1.3.2/src/outro.js +1 -0
  105. data/test/vendor/jQuery/1.3.2/src/selector.js +1015 -0
  106. data/test/vendor/jQuery/1.3.2/src/support.js +112 -0
  107. data/test/vendor/jQuery/1.3.2/test/data/cow.jpg +0 -0
  108. data/test/vendor/jQuery/1.3.2/test/data/dashboard.xml +11 -0
  109. data/test/vendor/jQuery/1.3.2/test/data/echoQuery.php +1 -0
  110. data/test/vendor/jQuery/1.3.2/test/data/iframe.html +8 -0
  111. data/test/vendor/jQuery/1.3.2/test/data/json.php +9 -0
  112. data/test/vendor/jQuery/1.3.2/test/data/json_assigned_obj.js +1 -0
  113. data/test/vendor/jQuery/1.3.2/test/data/json_obj.js +1 -0
  114. data/test/vendor/jQuery/1.3.2/test/data/jsonp.php +10 -0
  115. data/test/vendor/jQuery/1.3.2/test/data/name.html +1 -0
  116. data/test/vendor/jQuery/1.3.2/test/data/name.php +29 -0
  117. data/test/vendor/jQuery/1.3.2/test/data/offset/absolute.html +39 -0
  118. data/test/vendor/jQuery/1.3.2/test/data/offset/body.html +24 -0
  119. data/test/vendor/jQuery/1.3.2/test/data/offset/fixed.html +33 -0
  120. data/test/vendor/jQuery/1.3.2/test/data/offset/relative.html +31 -0
  121. data/test/vendor/jQuery/1.3.2/test/data/offset/scroll.html +39 -0
  122. data/test/vendor/jQuery/1.3.2/test/data/offset/static.html +31 -0
  123. data/test/vendor/jQuery/1.3.2/test/data/offset/table.html +43 -0
  124. data/test/vendor/jQuery/1.3.2/test/data/params_html.php +12 -0
  125. data/test/vendor/jQuery/1.3.2/test/data/test.html +7 -0
  126. data/test/vendor/jQuery/1.3.2/test/data/test.js +3 -0
  127. data/test/vendor/jQuery/1.3.2/test/data/test.php +7 -0
  128. data/test/vendor/jQuery/1.3.2/test/data/test2.html +5 -0
  129. data/test/vendor/jQuery/1.3.2/test/data/test3.html +3 -0
  130. data/test/vendor/jQuery/1.3.2/test/data/testrunner.js +1 -0
  131. data/test/vendor/jQuery/1.3.2/test/data/text.php +12 -0
  132. data/test/vendor/jQuery/1.3.2/test/data/with_fries.xml +25 -0
  133. data/test/vendor/jQuery/1.3.2/test/index.html +229 -0
  134. data/test/vendor/jQuery/1.3.2/test/jqenv-1259090275493.html +247 -0
  135. data/test/vendor/jQuery/1.3.2/test/jqenv-1259091671501.html +247 -0
  136. data/test/vendor/jQuery/1.3.2/test/jqenv-1259175319655.html +247 -0
  137. data/test/vendor/jQuery/1.3.2/test/offset.html +28 -0
  138. data/test/vendor/jQuery/1.3.2/test/otherlibs/jquery/1.2.1/jquery.js +11 -0
  139. data/test/vendor/jQuery/1.3.2/test/otherlibs/jquery/1.2.3/jquery.js +11 -0
  140. data/test/vendor/jQuery/1.3.2/test/otherlibs/mootools/1.11/mootools.js +1577 -0
  141. data/test/vendor/jQuery/1.3.2/test/otherlibs/prototype/1.6.0.2/prototype.js +4221 -0
  142. data/test/vendor/jQuery/1.3.2/test/otherlibs/scriptaculous/1.7.0/builder.js +131 -0
  143. data/test/vendor/jQuery/1.3.2/test/otherlibs/scriptaculous/1.7.0/controls.js +835 -0
  144. data/test/vendor/jQuery/1.3.2/test/otherlibs/scriptaculous/1.7.0/dragdrop.js +944 -0
  145. data/test/vendor/jQuery/1.3.2/test/otherlibs/scriptaculous/1.7.0/effects.js +1090 -0
  146. data/test/vendor/jQuery/1.3.2/test/otherlibs/scriptaculous/1.7.0/scriptaculous.js +51 -0
  147. data/test/vendor/jQuery/1.3.2/test/otherlibs/scriptaculous/1.7.0/slider.js +278 -0
  148. data/test/vendor/jQuery/1.3.2/test/otherlibs/scriptaculous/1.7.0/unittest.js +564 -0
  149. data/test/vendor/jQuery/1.3.2/test/otherlibs/scriptaculous/1.8.1/builder.js +136 -0
  150. data/test/vendor/jQuery/1.3.2/test/otherlibs/scriptaculous/1.8.1/controls.js +965 -0
  151. data/test/vendor/jQuery/1.3.2/test/otherlibs/scriptaculous/1.8.1/dragdrop.js +974 -0
  152. data/test/vendor/jQuery/1.3.2/test/otherlibs/scriptaculous/1.8.1/effects.js +1122 -0
  153. data/test/vendor/jQuery/1.3.2/test/otherlibs/scriptaculous/1.8.1/scriptaculous.js +58 -0
  154. data/test/vendor/jQuery/1.3.2/test/otherlibs/scriptaculous/1.8.1/slider.js +275 -0
  155. data/test/vendor/jQuery/1.3.2/test/otherlibs/scriptaculous/1.8.1/sound.js +55 -0
  156. data/test/vendor/jQuery/1.3.2/test/otherlibs/scriptaculous/1.8.1/unittest.js +568 -0
  157. data/test/vendor/jQuery/1.3.2/test/polluted.php +64 -0
  158. data/test/vendor/jQuery/1.3.2/test/qunit/testrunner.js +780 -0
  159. data/test/vendor/jQuery/1.3.2/test/qunit/testsuite.css +120 -0
  160. data/test/vendor/jQuery/1.3.2/test/test.js +41 -0
  161. data/test/vendor/jQuery/1.3.2/test/unit/ajax.js +856 -0
  162. data/test/vendor/jQuery/1.3.2/test/unit/core.js +1872 -0
  163. data/test/vendor/jQuery/1.3.2/test/unit/data.js +160 -0
  164. data/test/vendor/jQuery/1.3.2/test/unit/dimensions.js +86 -0
  165. data/test/vendor/jQuery/1.3.2/test/unit/event.js +670 -0
  166. data/test/vendor/jQuery/1.3.2/test/unit/fx.js +451 -0
  167. data/test/vendor/jQuery/1.3.2/test/unit/offset.js +173 -0
  168. data/test/vendor/jQuery/1.3.2/test/unit/selector.js +395 -0
  169. data/test/vendor/jQuery/1.3.2/test/xhtml.php +5 -0
  170. data/test/vendor/jQuery/1.3.2/version.txt +1 -0
  171. metadata +158 -22
  172. data/lib/envjs/runtime.rb.smp +0 -133
  173. data/test/envjs-call-load-test.js +0 -5
  174. data/test/envjs-prototype.js +0 -5
  175. data/test/qunit/package.json +0 -21
  176. data/test/qunit/test/index.html +0 -17
  177. data/test/qunit/test/same.js +0 -1368
  178. data/test/qunit/test/test.js +0 -136
  179. data/test/qunit.smp/package.json +0 -21
  180. data/test/qunit.smp/test/index.html +0 -17
  181. data/test/qunit.smp/test/same.js +0 -1368
  182. data/test/qunit.smp/test/test.js +0 -136
  183. data/test/rhino-call-load-test.js +0 -5
  184. data/test/rhino-prototype.js +0 -5
  185. data/test/test-with-envs-jar.js +0 -8
  186. data/test/test-with-rhino-jar.js +0 -9
@@ -0,0 +1,197 @@
1
+ function test(name, fn){
2
+ expected = -1;
3
+ numTests = 0;
4
+ reset();
5
+
6
+ fn();
7
+
8
+ if ( expected != -1 && expected != numTests )
9
+ log( false, "Wrong number of tests run. " + numTests + " ran, expected " + expected );
10
+ }
11
+
12
+ var orig = document.getElementById('main').innerHTML;
13
+
14
+ /**
15
+ * Resets the test setup. Useful for tests that modify the DOM.
16
+ */
17
+ function reset() {
18
+ document.getElementById('main').innerHTML = orig;
19
+ }
20
+
21
+ var currentModule = "";
22
+
23
+ // call on start of module test to prepend name to all tests
24
+ function module(moduleName) {
25
+ currentModule = moduleName;
26
+ }
27
+
28
+ var expected = -1;
29
+
30
+ /**
31
+ * Specify the number of expected assertions to gurantee that failed test (no assertions are run at all) don't slip through.
32
+ */
33
+ function expect(asserts) {
34
+ expected = asserts;
35
+ }
36
+
37
+ /**
38
+ * Asserts true.
39
+ * @example ok( $("a").size() > 5, "There must be at least 5 anchors" );
40
+ */
41
+ function ok(a, msg) {
42
+ log( !!a, msg );
43
+ }
44
+
45
+ /**
46
+ * Asserts that two arrays are the same
47
+ */
48
+ function isSet(a, b, msg) {
49
+ var ret = true;
50
+ if ( a && b && a.length != undefined && a.length == b.length ) {
51
+ for ( var i = 0; i < a.length; i++ ) {
52
+ if ( a[i] != b[i] )
53
+ ret = false;
54
+ }
55
+ } else
56
+ ret = false;
57
+ if ( !ret )
58
+ log( ret, msg + " expected: " + serialArray(b) + " result: " + serialArray(a) );
59
+ else
60
+ log( ret, msg );
61
+ }
62
+
63
+ /**
64
+ * Asserts that two objects are equivalent
65
+ */
66
+ function isObj(a, b, msg) {
67
+ var ret = true;
68
+
69
+ if ( a && b ) {
70
+ for ( var i in a )
71
+ if ( a[i] != b[i] )
72
+ ret = false;
73
+
74
+ for ( i in b )
75
+ if ( a[i] != b[i] )
76
+ ret = false;
77
+ } else
78
+ ret = false;
79
+
80
+ log( ret, msg );
81
+ }
82
+
83
+ function serialArray( a ) {
84
+ var r = [];
85
+
86
+ if ( a && a.length )
87
+ for ( var i = 0; i < a.length; i++ ) {
88
+ var str = a[i] ? a[i].nodeName : "";
89
+ if ( str ) {
90
+ str = str.toLowerCase();
91
+ if ( a[i].id )
92
+ str += "#" + a[i].id;
93
+ } else
94
+ str = a[i];
95
+ r.push( str );
96
+ }
97
+
98
+ return "[ " + r.join(", ") + " ]"
99
+ }
100
+
101
+ /**
102
+ * Returns an array of elements with the given IDs, eg.
103
+ * @example q("main", "foo", "bar")
104
+ * @result [<div id="main">, <span id="foo">, <input id="bar">]
105
+ */
106
+ function q() {
107
+ var r = [];
108
+ for ( var i = 0; i < arguments.length; i++ )
109
+ r.push( document.getElementById( arguments[i] ) );
110
+ return r;
111
+ }
112
+
113
+ /**
114
+ * Asserts that a select matches the given IDs
115
+ * @example t("Check for something", "//[a]", ["foo", "baar"]);
116
+ * @result returns true if "//[a]" return two elements with the IDs 'foo' and 'baar'
117
+ */
118
+ function t(a,b,c) {
119
+ var f = jQuery(b);
120
+ var s = "";
121
+ for ( var i = 0; i < f.length; i++ )
122
+ s += (s && ",") + '"' + f[i].id + '"';
123
+ isSet(f, q.apply(q,c), a + " (" + b + ")");
124
+ }
125
+
126
+ /**
127
+ * Checks that the first two arguments are equal, with an optional message.
128
+ * Prints out both expected and actual values on failure.
129
+ *
130
+ * Prefered to ok( expected == actual, message )
131
+ *
132
+ * @example equals( "Expected 2 characters.", v.formatMessage("Expected {0} characters.", 2) );
133
+ *
134
+ * @param Object expected
135
+ * @param Object actual
136
+ * @param String message (optional)
137
+ */
138
+ function equals(expected, actual, message) {
139
+ var result = expected == actual;
140
+ message = message || (result ? "okay" : "failed");
141
+ log( result, result ? message + ": " + expected : message + " expected: " + expected + " actual: " + actual );
142
+ }
143
+
144
+ var numTests = 0, total = 0, pass = 0, fail = 0;
145
+
146
+ function log(state, msg){
147
+ print( (state ? "PASS" : "FAIL") + " (" + (++total) + ") " +
148
+ (currentModule ? "[" + currentModule + "] " : "") + msg );
149
+
150
+ numTests++;
151
+
152
+ if ( state )
153
+ pass++;
154
+ else
155
+ fail++;
156
+ }
157
+
158
+ function results(){
159
+ print( pass + " Passed, " + fail + " Failed" );
160
+ }
161
+
162
+ function start(){}
163
+ function stop(){}
164
+
165
+ /**
166
+ * Trigger an event on an element.
167
+ *
168
+ * @example triggerEvent( document.body, "click" );
169
+ *
170
+ * @param DOMElement elem
171
+ * @param String type
172
+ */
173
+ function triggerEvent( elem, type, event ) {
174
+ /*
175
+ if ( jQuery.browser.mozilla || jQuery.browser.opera ) {
176
+ event = document.createEvent("MouseEvents");
177
+ event.initMouseEvent(type, true, true, elem.ownerDocument.defaultView,
178
+ 0, 0, 0, 0, 0, false, false, false, false, 0, null);
179
+ elem.dispatchEvent( event );
180
+ } else if ( jQuery.browser.msie ) {
181
+ elem.fireEvent("on"+type);
182
+ }
183
+ */
184
+ }
185
+
186
+ /**
187
+ * Add random number to url to stop IE from caching
188
+ *
189
+ * @example url("data/test.html")
190
+ * @result "data/test.html?10538358428943"
191
+ *
192
+ * @example url("data/test.php?foo=bar")
193
+ * @result "data/test.php?foo=bar&10538358345554"
194
+ */
195
+ function url(value) {
196
+ return value + (/\?/.test(value) ? "&" : "?") + new Date().getTime() + "" + parseInt(Math.random()*100000);
197
+ }
@@ -0,0 +1,65 @@
1
+
2
+ .dialog {
3
+ margin-bottom: 1em;
4
+ }
5
+ a.expand {
6
+ background: #e3e3e3;
7
+ }
8
+
9
+ div#time-test {
10
+ font-family: Arial, Helvetica, sans-serif;
11
+ font-size: 62.5%;
12
+ }
13
+
14
+ td.test button {
15
+ float: right;
16
+ }
17
+
18
+ table {
19
+ border: 1px solid #000;
20
+ }
21
+
22
+ table td, table th {
23
+ border: 1px solid #000;
24
+ padding: 10px;
25
+ }
26
+
27
+ td.winner {
28
+ background-color: #cfc;
29
+ }
30
+
31
+ td.tie {
32
+ background-color: #ffc;
33
+ }
34
+
35
+ td.fail {
36
+ background-color: #f99;
37
+ font-weight: bold;
38
+ text-align: center;
39
+ }
40
+
41
+ tfoot td {
42
+ text-align: center;
43
+ }
44
+
45
+ #time-test {
46
+ margin: 1em 0;
47
+ padding: .5em;
48
+ background: #e3e3e3;
49
+ }
50
+ #time-taken {
51
+ font-weight: bold;
52
+ }
53
+
54
+ span.wins {
55
+ color: #330;
56
+ }
57
+
58
+ span.fails {
59
+ color: #900;
60
+ }
61
+
62
+ div.buttons {
63
+ margin-top: 10px;
64
+ margin-bottom: 10px;
65
+ }
@@ -0,0 +1,181 @@
1
+ jQuery.benchmarker.tests = [
2
+ // Selectors from:
3
+ // http://ejohn.org/blog/selectors-that-people-actually-use/
4
+ /*
5
+ // For Amazon.com
6
+ "#navAmazonLogo", "#navSwmSkedPop",
7
+ ".navbar", ".navGreeting",
8
+ "div", "table",
9
+ "img.navCrossshopTabCap", "span.navGreeting",
10
+ "#navbar table", "#navidWelcomeMsg span",
11
+ "div#navbar", "ul#navAmazonLogo",
12
+ "#navAmazonLogo .navAmazonLogoGatewayPanel", "#navidWelcomeMsg .navGreeting",
13
+ ".navbar .navAmazonLogoGatewayPanel", ".navbar .navGreeting",
14
+ "*",
15
+ "#navAmazonLogo li.navAmazonLogoGatewayPanel", "#navidWelcomeMsg span.navGreeting",
16
+ "a[name=top]", "form[name=site-search]",
17
+ ".navbar li", ".navbar span",
18
+ "[name=top]", "[name=site-search]",
19
+ "ul li", "a img",
20
+ "#navbar #navidWelcomeMsg", "#navbar #navSwmDWPop",
21
+ "#navbar ul li", "#navbar a img"
22
+ */
23
+ // For Yahoo.com
24
+ "#page", "#masthead", "#mastheadhd",
25
+ ".mastheadbd", ".first", ".on",
26
+ "div", "li", "a",
27
+ "div.mastheadbd", "li.first", "li.on",
28
+ "#page div", "#dtba span",
29
+ "div#page", "div#masthead",
30
+ "#page .mastheadbd", "#page .first",
31
+ ".outer_search_container .search_container", ".searchbox_container .inputtext",
32
+ "*",
33
+ "#page div.mastheadbd", "#page li.first",
34
+ "input[name=p]", "a[name=marketplace]",
35
+ ".outer_search_container div", ".searchbox_container span",
36
+ "[name=p]", "[name=marketplace]",
37
+ "ul li", "form input",
38
+ "#page #e2econtent", "#page #e2e"
39
+ ];
40
+
41
+ jQuery.fn.benchmark = function() {
42
+ this.each(function() {
43
+ try {
44
+ jQuery(this).parent().children("*:gt(1)").remove();
45
+ } catch(e) { }
46
+ })
47
+ // set # times to run the test in index.html
48
+ var times = parseInt(jQuery("#times").val());
49
+ jQuery.benchmarker.startingList = this.get();
50
+ benchmark(this.get(), times, jQuery.benchmarker.libraries);
51
+ }
52
+
53
+ jQuery(function() {
54
+ for(i = 0; i < jQuery.benchmarker.tests.length; i++) {
55
+ jQuery("tbody").append("<tr><td class='test'>" + jQuery.benchmarker.tests[i] + "</td></tr>");
56
+ }
57
+ jQuery("tbody tr:first-child").remove();
58
+ jQuery("td.test").before("<td><input type='checkbox' checked='checked' /></td>");
59
+ jQuery("button.runTests").bind("click", function() {
60
+ jQuery('td:has(input:checked) + td.test').benchmark();
61
+ });
62
+
63
+ jQuery("button.retryTies").bind("click", function() { jQuery("tr:has(td.tie) td.test").benchmark() })
64
+
65
+ jQuery("button.selectAll").bind("click", function() { jQuery("input[type=checkbox]").each(function() { this.checked = true }) })
66
+ jQuery("button.deselectAll").bind("click", function() { jQuery("input[type=checkbox]").each(function() { this.checked = false }) })
67
+
68
+ jQuery("#addTest").bind("click", function() {
69
+ jQuery("table").append("<tr><td><input type='checkbox' /></td><td><input type='text' /><button>Add</button></td></tr>");
70
+ jQuery("div#time-test > button").each(function() { this.disabled = true; })
71
+ jQuery("tbody tr:last button").bind("click", function() {
72
+ var td = jQuery(this).parent();
73
+ td.html("<button>-</button>" + jQuery(this).prev().val()).addClass("test");
74
+ jQuery("div#time-test > button").each(function() { this.disabled = false; })
75
+ jQuery("button", td).bind("click", function() { jQuery(this).parents("tr").remove(); })
76
+ })
77
+ })
78
+
79
+ var headers = jQuery.map(jQuery.benchmarker.libraries, function(i,n) {
80
+ var extra = n == 0 ? "basis - " : "";
81
+ return "<th>" + extra + i + "</th>"
82
+ }).join("");
83
+
84
+ jQuery("thead tr").append(headers);
85
+
86
+ var footers = "";
87
+ for(i = 0; i < jQuery.benchmarker.libraries.length; i++)
88
+ footers += "<th></th>"
89
+
90
+ var wlfooters = "";
91
+ for(i = 0; i < jQuery.benchmarker.libraries.length; i++)
92
+ wlfooters += "<td><span class='wins'>W</span> / <span class='fails'>F</span></th>"
93
+
94
+ jQuery("tfoot tr:first").append(footers);
95
+ jQuery("tfoot tr:last").append(wlfooters);
96
+
97
+ });
98
+
99
+ benchmark = function(list, times, libraries) {
100
+ if(list[0]) {
101
+ var times = times || 50;
102
+ var el = list[0];
103
+ var code = jQuery(el).text().replace(/^-/, "");
104
+ var timeArr = []
105
+ for(i = 0; i < times + 2; i++) {
106
+ var time = new Date()
107
+ try {
108
+ window[libraries[0]](code);
109
+ } catch(e) { }
110
+ timeArr.push(new Date() - time);
111
+ }
112
+ var diff = Math.sum(timeArr) - Math.max.apply( Math, timeArr )
113
+ - Math.min.apply( Math, timeArr );
114
+ try {
115
+ var libRes = window[libraries[0]](code);
116
+ var jqRes = jQuery(code);
117
+ if(((jqRes.length == 0) && (libRes.length != 0)) ||
118
+ (libRes.length > 0 && (jqRes.length == libRes.length)) ||
119
+ ((libraries[0] == "cssQuery" || libraries[0] == "jQuery") && code.match(/nth\-child/) && (libRes.length > 0)) ||
120
+ ((libraries[0] == "jQold") && jqRes.length > 0)) {
121
+ jQuery(el).parent().append("<td>" + Math.round(diff / times * 100) / 100 + "ms</td>");
122
+ } else {
123
+ jQuery(el).parent().append("<td class='fail'>FAIL</td>");
124
+ }
125
+ } catch(e) {
126
+ jQuery(el).parent().append("<td class='fail'>FAIL</td>");
127
+ }
128
+ setTimeout(benchmarkList(list, times, libraries), 100);
129
+ } else if(libraries[1]) {
130
+ benchmark(jQuery.benchmarker.startingList, times, libraries.slice(1));
131
+ } else {
132
+ jQuery("tbody tr").each(function() {
133
+ var winners = jQuery("td:gt(1)", this).min(2);
134
+ if(winners.length == 1) winners.addClass("winner");
135
+ else winners.addClass("tie");
136
+ });
137
+ setTimeout(count, 100);
138
+ }
139
+ }
140
+
141
+ function benchmarkList(list, times, libraries) {
142
+ return function() {
143
+ benchmark(list.slice(1), times, libraries);
144
+ }
145
+ }
146
+
147
+ function count() {
148
+ for(i = 3; i <= jQuery.benchmarker.libraries.length + 2 ; i++) {
149
+ var fails = jQuery("td:nth-child(" + i + ").fail").length;
150
+ var wins = jQuery("td:nth-child(" + i + ").winner").length;
151
+ jQuery("tfoot tr:first th:eq(" + (i - 1) + ")")
152
+ .html("<span class='wins'>" + wins + "</span> / <span class='fails'>" + fails + "</span>");
153
+ }
154
+ }
155
+
156
+
157
+ jQuery.fn.maxmin = function(tolerance, maxmin, percentage) {
158
+ tolerance = tolerance || 0;
159
+ var target = Math[maxmin].apply(Math, jQuery.map(this, function(i) {
160
+ var parsedNum = parseFloat(i.innerHTML.replace(/[^\.\d]/g, ""));
161
+ if(parsedNum || (parsedNum == 0)) return parsedNum;
162
+ }));
163
+ return this.filter(function() {
164
+ if( withinTolerance(parseFloat(this.innerHTML.replace(/[^\.\d]/g, "")), target, tolerance, percentage) ) return true;
165
+ })
166
+ }
167
+
168
+ jQuery.fn.max = function(tolerance, percentage) { return this.maxmin(tolerance, "max", percentage) }
169
+ jQuery.fn.min = function(tolerance, percentage) { return this.maxmin(tolerance, "min", percentage) }
170
+
171
+ function withinTolerance(number, target, tolerance, percentage) {
172
+ if(percentage) { var high = target + ((tolerance / 100) * target); var low = target - ((tolerance / 100) * target); }
173
+ else { var high = target + tolerance; var low = target - tolerance; }
174
+ if(number >= low && number <= high) return true;
175
+ }
176
+
177
+ Math.sum = function(arr) {
178
+ var sum = 0;
179
+ for(i = 0; i < arr.length; i++) sum += arr[i];
180
+ return sum;
181
+ }
@@ -0,0 +1,72 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+ <head>
6
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
7
+ <title>Speed Test</title>
8
+ <script src="jquery-basis.js" type="text/javascript"></script>
9
+ <script src="../dist/jquery.js" type="text/javascript"></script>
10
+ <script type="text/javascript">jQuery.noConflict();</script>
11
+ <link rel="stylesheet" href="benchmarker.css" type="text/css" media="screen" />
12
+ </head>
13
+
14
+ <body>
15
+
16
+ <h1>Speed Test</h1>
17
+ <div id="badid"></div>
18
+ <div id="time-test">
19
+ <p>Using the following selector expressions (<input type="text" id="times" maxlength="5" size="5" value="20"/> times each):</p>
20
+ <p>NOTE: Number shown is an average.</p>
21
+ <div class="buttons">
22
+ <button class="selectAll">Select All</button>
23
+ <button class="deselectAll">Deselect All</button>
24
+
25
+ <button class="runTests">Run Tests</button>
26
+ <button class="retryTies">Retry Ties</button>
27
+ </div>
28
+ <table cellspacing="0">
29
+ <thead>
30
+ <tr>
31
+ <th>Run?</th>
32
+ <th>Test</th>
33
+
34
+ </tr>
35
+ </thead>
36
+ <tfoot>
37
+ <tr>
38
+ <th></th>
39
+ <th></th>
40
+ </tr>
41
+ <tr>
42
+ <th></th>
43
+
44
+ <th></th>
45
+ </tr>
46
+ </tfoot>
47
+ <tbody>
48
+ <tr>
49
+ <td></td>
50
+ <td></td>
51
+ </tr>
52
+ </tbody>
53
+
54
+ </table>
55
+
56
+ <div class="buttons">
57
+ <button class="selectAll">Select All</button>
58
+ <button class="deselectAll">Deselect All</button>
59
+ <button class="runTests">Run Tests</button>
60
+ <button class="retryTies">Retry Ties</button>
61
+ <button id="addTest">+</button>
62
+
63
+ </div>
64
+ </div>
65
+ <div style="display:none;"><div id="page"><div id="masthead"><div id="mastheadhd"></div><div id="mastheadbd"><div class="mastheadbd"><div id="eyebrow"><ul id="ypromo"><li><a id="sethomepage" href=""><strong>Make Y! your home page</strong></a></li><li id="toolbar"><a id="dtba" href=""><span id="tba">Get</span> Yahoo! Toolbar</a></li></ul><div id="ffhpcx"></div><div id="headline"><span><a href="">How much home can you afford?</a></span></div></div><h1><img src="blank.gif" border=0 width=232 height=44 alt="Yahoo!" id="ylogo"></h1><div id="searchwrapper"><form name="sf1" id="search" action="r/sx/*-http://search.yahoo.com/search"><fieldset><legend>Yahoo! Search</legend><ul id="vsearchtabs"><li class="first on"><a href="">Web</a></li><li><a href="">Images</a></li><li><a href="">Video</a></li><li><a href="">Local</a></li><li><a href="">Shopping</a></li><li class="last ignore"><dl id="vsearchm"><dt><a id="vsearchmore" href="">More</a></dt><dd id="vslist"></dd></dl></li></ul><div id="sbox"><label id="searchlabel" for="p">Search:</label><div class="outer_search_container"><div id="search_container" class="search_container"><img src="blank.gif" id="searchother_e2e" alt=""><div id="searchIE"><div id="searchmw1" class="iemw"></div></div><div class="fixfloat searchbox_container"><div id="searchbox"><input class="plong inputtext" type="text" id="p" name="p" accesskey="s"></div><span id="searchbtn"><input type="submit" id="searchsubmit" class="btn-more-2" value="Web Search"></span></div></div><div id="e2eClass" class="e2e"><div class="e2eTween"></div><div id="e2e"><div id="e2econtent"><div id="e2e_intl"></div><div class="ac_container"><div id="e2einfo"></div><div id="ac_container"></div><div id="e2escroll"></div></div></div><a title="toggle search suggestions" id="e2etoggle" href="" onclick="return false;"><img src="blank.gif" id="searchtoggle_e2e" alt="toggle search suggestions"></a></div></div></div><input type="hidden" name="fr" value="yfp"><input type="hidden" name="toggle" value="1"><input type="hidden" name="cop" value="mss"><input type="hidden" name="ei" value="UTF-8"></div><div id="sboxfooter"></div></fieldset></form></div><div class="mh_footer"><div id="doors"><h3 class="a11y">Popular Yahoo! Properties</h3><ul id="doors-links" class="fixfloat"><li class="first"><strong>Yahoo! Home</strong></li><li class="middle"><a href=r/i1 title="Go to My Yahoo!">My Yahoo!</a></li><li class="last"></li></ul></div><div id="pagesettingscx"><span id="navbardate"><cite class="timestamp">&nbsp;</cite></span><a href="" id="editpage">Page Options</a><div id="pagesettings"><div class="bd"><span><div class="iemw"></div><div id="pscolors"><h4>Color:</h4><ol id="themes"><li><a href="" id="t1" class="on" title="Ocean">Ocean</a></li><li><a href="" id="t4" title="Tangerine">Tangerine</a></li><li><a href="" id="t3" title="Violet">Violet</a></li><li><a href="" id="t2" title="Oyster">Oyster</a></li><li><a href="" id="t5" title="Grass">Grass</a></li><li><a href="" id="t7" title="Pink">Pink</a></li></ol></div><a id="sizetogglelink" href="">Switch to narrow layout</a><a id="myyahoolink" href="">Want more ways to customize <span>your home page?</span><span class="trymyyahoo">Try My Yahoo! &#187;</span></a></span></div></div></div></div></div></div><div id="mastheadft"></div></div><div id="colcx"><div id="left"><div id="trough" class="md"><div class="bd"><div id="trough-cols" class="fixfloat"><ul id="trough-1" class="col1"><li><a style="background-position:-400px -120px" href="">Answers</a></li><li><a style="background-position:-400px -440px" href="">Autos</a></li><li><a style="background-position:0 -761px" href="">Finance</a></li><li><a style="background-position:0 -1600px" href="">Games</a></li><li><a style="background-position:0 -1400px" href="">Groups</a></li><li><a style="background-position:0 -439px" href="">HotJobs</a></li><li><a style="background-position:0 -600px" href="">Maps</a></li><li><a style="background-position:0 -161px" href="">Mobile Web</a></li><li><a style="background-position:0 -561px;display:inline" href="">Movies</a> | <a class="trough_tv" href="">TV</a></li><li><a style="background-position:0 -1562px" href="">Music</a></li><li><a style="background-position:-400px -1119px" href="">OMG</a></li><li class="highlight"><a style="background-position:0 -40px" href="">Personals</a></li><li><a style="background-position:-400px -161px" href="">Real Estate<small class="updated"></small></a></li><li><a style="background-position:-400px -1321px" href="">Shine</a></li><li><a style="background-position:0 -1640px" href="">Shopping</a></li><li><a style="background-position:0 -800px" href="">Sports</a></li><li><a style="background-position:0 -79px" href="">Travel</a></li><li><a style="background-position:0 -121px" href="">Yellow Pages</a></li></ul></div><span id="allyservicescx"><a href="" id="allyservices" class="btn-more-2" title="View the complete list of Yahoo! Services">More Yahoo! Services</a></span></div></div><div class="md minimantle"><div id="smallbiz" class="md-sub"><div class="hd"><h2><a href="">Small Business</a></h2></div><ul id="smallbiz-links"><li><a href="">Get a Web Site</a></li><li><a href="">Domain Names</a></li><li><a href="">Sell Online</a></li><li><a href="">Search Ads</a></li></ul></div></div><div class="md minimantle"><div id="advertising" class="md-sub"><div class="hd"><h2><a href="">Featured Services</a></h2></div><ul id="advertising-links"><li><a href="">Downloads</a></li><li><a href="">Health</a></li><li><a href="">Kids</a></li><li><a href="">GeoCities</a></li><li><a href="">Mail Plus</a></li><li><a href="">Y! International</a></li></ul></div></div></div><div id="rightcx"><div id="middle"><div class="colpadding"><div id="today" class="md featured1"><div class="hd tabs"><h3 class="a11y">Featured Navigation</h3><ul id="todaytabs"><li class="on first"><em><a hidefocus="true" id="featured1" href="">Featured</a></em><span class="pipe"></span></li><li class="tab2"><em><a hidefocus="true" id="entertainment1" href="">Entertainment</a></em><span class="pipe"></span></li><li class="tab3"><em><a hidefocus="true" id="sports1" href="">Sports</a></em><span class="pipe"></span></li><li class="last"><em><a hidefocus="true" id="money1" href="">Video</a></em><span class="pipe"></span></li></ul></div><div id="todayvideo"></div><div id="todaybd" class="bd"><cite class="timestamp">&nbsp;</cite><span id="featured1ct" class="current"><div id="featured1main"><a href=s/1014544><img src="blank.gif" width="154" height="115" alt="Renee Zellweger (Steve Grantiz/WireImage)"></a><span><h3><a href=s/1014544>Worst dressed at the Globes</a></h3><p>Renee's look is a mess, and Miley's gown is a mistake. <a class=more href=s/1014544>&#187; See bad outfits</a></p><ul><li><a class=slideshow href=s/1014545>Best dressed</a></li><li><a class=slideshow href=s/1014546>Stunning couples</a></li><li><a class=video href=s/1014547>Watch Brangelina diss Ryan Seacrest</a></li><li><a class=bullet href=s/1014548>Outrageous moments</a></li><li><a class=bullet href=s/1014549>Big winners</a></li></ul></span></div></span><span id="featured2ct"></span><span id="featured3ct"></span><span id="featured4ct"></span><span id="entertainment1ct"></span><span id="entertainment2ct"></span><span id="entertainment3ct"></span><span id="entertainment4ct"></span><span id="sports1ct"></span><span id="sports2ct"></span><span id="sports3ct"></span><span id="sports4ct"></span><span id="money1ct"></span><span id="money2ct"></span><span id="money3ct"></span><span id="money4ct"></span></div><div id="todayft" class="ft"><span id="footer1" class="current"><ul id="todaystories1"><li id="featured1|106537" class="on"><a href=s/1014556><img src="blank.gif" alt="" width="29" height="21">See the worst-dressed stars at Golden Globes</a></li><li id="featured2|106533"><a href=s/1014475><img src="blank.gif" alt="" width="29" height="21">Obama: Dog search down to two breeds</a></li><li id="featured3|106522"><a href=s/1014275><img src="blank.gif" alt="" width="29" height="21">Eagles star gets penalty for 'phone call'</a></li><li id="featured4|106538"><a href=s/1014566><img src="blank.gif" alt="" width="29" height="21">Teen sends 14,528 texts in one month</a></li></ul><div id="more-featured" class="btn-more"><b>&#187;</b> More:<a class="first" href="">Featured</a><a class="last" href="">Buzz</a></div></span><span id="footer2"></span><span id="footer3"></span><span id="footer4"></span></div></div><div id="adwest" class="ad"></div><div id="news" class="md"><div class="hd tabs"><h3 class="a11y">News Navigation</h3><ul id="newstabs"><li class="on first"><em><a hidefocus="true" id="inthenews2" href="">News</a></em><span class="pipe"></span></li><li class="tab2"><em><a hidefocus="true" id="worldnews" href="">World</a></em><span class="pipe"></span></li><li class="tab3"><em><a hidefocus="true" id="localnews" href="">Local</a></em><span class="pipe"></span></li><li class="last"><em><a hidefocus="true" id="finsnews" href="">Finance</a></em><span class="pipe"></span></li></ul></div><div id="newsbd" class="bd"><span id="inthenews2ct" class="current"><h2 class="a11y">In the News</h2><div id="newstop"><cite class="timestamp">&nbsp;</cite>&#149;&nbsp;<a href=s/1014558>Obama advises Bush to request remaining $350B of bailout</a><br>&#149;&nbsp;<a href=s/1014502>Bush defends his presidency in final news conference</a><br>&#149;&nbsp;<a href=s/1014534>More than 900 Gazans dead as Israel continues attacks</a><br>&#149;&nbsp;<a href=s/1014517>Openly gay Episcopal bishop to say prayer at inaugural event</a><br>&#149;&nbsp;<a href=s/1014567>NYC judge allows Bernard Madoff to remain free on bail</a><br>&#149;&nbsp;<a href=s/1014516>British PM backing Prince Harry after racist remark</a><br>&#149;&nbsp;<a class=video style="background-position:-3px -48px;font:normal 100% arial;" href=s/1014537 onclick="window.open('s/1014537','playerWindow','width=793,height=608,scrollbars=no');return false;">Brothers separated at birth reunite after 80 years</a><br><ul id="more-news" class="btn-more"><li class="first"><b>&#187;</b> More:</li><li><a href=r/xn>News</a></li><li><a href=r/me>Popular</a></li><li class="last"><a href=r/z0>Politics</a></li></ul></div><div id="newsft"><div id="newsbottom"><div id="finance-data"><div id="markets"><h3><a href="">Markets:</a></h3><ul><li><strong><a href="">Dow: </a><span class="down">-1.0%</span></strong></li><li><strong><a href="">Nasdaq: </a><span class="down">-1.7%</span></strong></li></ul></div><div id="quotes"><form name="fq" id="fq" action="r/f4/*-http://finance.yahoo.com/q"><fieldset><legend>Yahoo! Finance</legend> <a href="">Real-Time Quotes:</a><input accesskey="q" class="inputtext" type="text" id="s" name="s" size="5" title="Enter ticker symbol" /><input type="submit" class="submit" value="Go" /></fieldset></form></div></div><div id="news-sponsor"><a href=""><img src="blank.gif" border=0 width=165 height=15 title="Switch to Scottrade"></a></div></div></div></span><span id="worldnewsct"></span><span id="localnewsct"></span><span id="finsnewsct"></span></div></div><div id="marketplace" class="md"><div class="hd"><h2><a href="" name="marketplace">Marketplace</a></h2></div><div id="marketplacebd" class="bd"><table border=0 cellpadding=0 cellspacing=0 width="100%"><tr><td valign=top><a href=""><img src="blank.gif" width=70 height=50 border=0></a></td><td width=8>&nbsp;</td><td valign=top><font face=arial size=-1><a href="">Why online college is rocking:</a><br>1) Accredited Associates, Bachelor&#39;s, Master&#39;s, MBA degrees 2) Some jobs pay tuition <a href="">3) Top schools online.</a></font></td></tr></table><hr size=1 noshade><a href="">A bad credit score is 600 or below. Click here to see yours online in just 2 easy steps for $0. By Experian&reg;</a><hr size=1 noshade><a href="">GEICO Car Insurance -</a> You could save over $500 on car insurance. <a href="">Get a fast, free quote.</a><hr size=1 noshade><a href="">100+ credit cards from 9 of the top 10 issuers. Instant approvals. Choose the right card for you. LendingTree&reg;</a></div></div></div></div><div id="right"><div class="colpadding"><div id="pa" class="md"><div id="pabd"><div id="patop"><ul id="reg" class="so"><li class="mailstatus">Check your mail status: <a href="">Sign In</a></li><li id="signup">Free mail: <a href="">Sign Up</a></li></ul></div><div id="patabs"><ul id="tabs1" class="patabs first"><li id="mail" class="first"><div><h4><a id="pamail" accesskey="m" href=""><span class="icon">Mail</span></a></h4></div></li><li id="messenger"><div><h4><a id="pamsgr" href=""><span class="icon">Messenger</span></a></h4></div></li><li id="games" class="last"><div><h4><a id="pagames" href=""><span class="icon">Puzzles</span></a></h4></div></li></ul><div id="tabs1previewdiv" class="papreviewdiv"></div><ul id="tabs2" class="patabs last"><li id="weather" class="first"><div><h4><a id="paweather" href=""><span class="icon">Weather</span></a></h4></div></li><li id="events"><div><h4><a id="paevents" href=""><span class="icon">Events</span></a></h4></div></li><li id="horoscope" class="last"><div><h4><a id="pahoroscope" href=""><span class="icon">Horoscopes</span></a></h4></div></li></ul><div id="tabs2previewdiv" class="papreviewdiv"></div></div></div></div><div id="ad" class="ad"><table cellspacing=0 cellpadding=0 border=0 width=100%><tr><td align=center><a href="" target="_top"><img src="blank.gif" alt="" width=300 height=250 border=0></a></td></tr><tr><td align=center><br><font face="verdana" size="-2"><a href="" target="_blank">Ad Feedback</a></font></td></tr></table></div><div id="mantlecx"><div id="mantle"><div id="mantle2" class="md"><div class="hd"><h2><a href="">Inside Yahoo! HotJobs</a></h2> </div><div class="bd"><a href=""><img src="blank.gif" height="68" width="92" alt="Yahoo! HotJobs" border="0"></a><h3><a href="">Great companies hiring now</a></h3><ul><li><a href="">Careers with bright futures</a></li><li><a href="">Low-stress jobs that pay</a></li><li><a href="">Super-easy career changes</a></li><li><a href="">How to find a job right for you</a></li></ul></div></div></div></div><div id="pulse" class="md"><div class="hd"><h2>Pulse - What Yahoos Are Into</h2></div><div id="pulsebd" class="bd"><h3>Star Searches: Most Popular Actors</h3><a href=s/1013525/*-http://movies.yahoo.com/movie/contributor/1800043966><img src="blank.gif" alt="Alyssa Milano (Steve Granitz, WireImage.com)" width="139" height="119"></a><ol><li class="tt1"><a href=s/1013525/*-http://movies.yahoo.com/movie/contributor/1800043966>Alyssa Milano</a></li><li class="tt2"><a href=s/1013526/*-http://movies.yahoo.com/movie/contributor/1800018965>Brad Pitt</a></li><li class="tt3"><a href=s/1013527/*-http://movies.yahoo.com/movie/contributor/1804705919>Anne Hathaway</a></li><li class="tt4"><a href=s/1013528/*-http://movies.yahoo.com/movie/contributor/1800424122>Ziyi Zhang</a></li><li class="tt5"><a href=s/1013529/*-http://movies.yahoo.com/movie/contributor/1800019484>Charlize Theron</a></li><li class="tt6"><a href=s/1013530/*-http://movies.yahoo.com/movie/contributor/1800019485>Johnny Depp</a></li></ol></div><a class=btn-more href=s/1013531/*-http://movies.yahoo.com>&#187; More Yahoo! Movies</a></div><div id="popsearch" class="md"><div class="hd"><h2>Today&#039;s Top Searches</h2></div><div id="popsearchbd" class="bd"><ol start=1><li><a href="">Odette Yustman</a></li><li><a href="">Kate Hudson</a></li><li><a href="">Ana Ortiz</a></li><li><a href="">Weight Loss Tips</a></li><li><a href="">Kimberley Locke</a></li></ol><ol start=6><li><a href="">Rod Blagojevich</a></li><li><a href="">2009 Jeep Commander</a></li><li><a href="">Attention Deficit...</a></li><li><a href="">Snoring</a></li><li><a href="">New Orleans Vacations</a></li></ol></div></div></div></div></div></div><div id="footer" class="md"><ul id="flist2"><li class="first"><a href="">Advertise with Us</a></li><li><a href="">Search Marketing</a></li><li><a href="">Privacy Policy</a></li><li><a href="">Terms of Service</a></li><li><a href=r/ad>Suggest a Site</a></li><li><a href="">Yahoo! en Espa&ntilde;ol</a></li><li><a href="">Send Feedback</a></li><li class="last"><a href="">Help</a></li></ul><ul id="copyright"><li class="first">Copyright &copy; 2009 Yahoo! Inc. All rights reserved.</li><li class="first"><a href="">Copyright/IP Policy</a></li><li><a href="">Company Info</a></li><li><a href="">Participate in Research</a></li><li><a href="">Jobs</a></li></ul></div></div> <div id="yblthm_sip" style="display:none"></div></div>
66
+ <script type="text/javascript" charset="utf-8">
67
+ jQuery.benchmarker = {libraries: ["$", "jQuery"]};
68
+ </script>
69
+
70
+ <script type="text/javascript" src="benchmarker.js"></script>
71
+ </body>
72
+ </html>