|
|
Internet Explorer 7
|
FireFox
|
Safari
|
|
Description
|
Time (ns)
|
% of base
|
Time (ns)
|
% of base
|
Time (ns)
|
% of base
|
|
Normal Empty function call (Base Operation)
|
4.7
|
100%
|
3.9
|
100%
|
1.6
|
100%
|
|
Basic Function Calls
|
|
|
|
|
|
|
|
Function call using function.call(this)
|
5.5
|
116%
|
2.4
|
60%
|
1.6
|
100%
|
|
Normal Empty function using apply
|
5.5
|
117%
|
7.0
|
179%
|
2.4
|
152%
|
|
Normal Empty function using apply with 3 parameters
|
7.0
|
149%
|
7.1
|
181%
|
2.4
|
152%
|
|
Eval a function
|
172.0
|
3660%
|
546.0
|
14000%
|
9.4
|
603%
|
|
Eval an object
|
94.0
|
2000%
|
749.0
|
19205%
|
22.7
|
1461%
|
|
Basic Operations
|
|
|
|
|
|
|
|
Access Properties through a getter
|
13.3
|
282%
|
6.3
|
160%
|
5.5
|
352%
|
|
Access Properties directly
|
4.7
|
100%
|
3.2
|
81%
|
2.4
|
152%
|
|
|
|
|
|
|
|
|
|
Simple string concatenation
|
4.7
|
100%
|
2.3
|
59%
|
1.6
|
100%
|
|
Simple string compare
|
3.9
|
83%
|
2.4
|
60%
|
0.8
|
48%
|
|
Change string to upper case
|
11.7
|
249%
|
3.9
|
100%
|
4.7
|
303%
|
|
Replace string reg expression
|
12.5
|
266%
|
7.1
|
181%
|
9.4
|
603%
|
|
String concat with integer
|
7.1
|
150%
|
4.7
|
119%
|
2.4
|
152%
|
|
String concat with float
|
6.3
|
133%
|
4.7
|
121%
|
2.4
|
152%
|
|
Index of Bob in string, not found, length = 71
|
6.3
|
133%
|
6.3
|
160%
|
2.4
|
152%
|
|
Match of Bob in string, not found, length = 71
|
14.9
|
316%
|
25.0
|
640%
|
3.9
|
252%
|
|
charAt(10) in string
|
11.7
|
249%
|
6.3
|
160%
|
3.1
|
200%
|
|
|
|
|
|
|
|
|
|
Create object constructor initialized
|
11.7
|
249%
|
23.4
|
600%
|
3.2
|
203%
|
|
create simple object
|
8.6
|
182%
|
23.4
|
600%
|
2.4
|
152%
|
|
|
|
0%
|
|
|
|
|
|
Variable declaration
|
4.0
|
84%
|
2.3
|
59%
|
0.8
|
48%
|
|
Multiple variable declaration, multiple var
|
3.9
|
83%
|
2.4
|
60%
|
2.4
|
152%
|
|
Multiple variable declaration single var
|
3.9
|
83%
|
2.4
|
60%
|
1.6
|
100%
|
|
Variable declaration set to null
|
3.9
|
83%
|
2.4
|
60%
|
1.6
|
100%
|
|
|
|
0%
|
|
|
|
|
|
Variable assignment++
|
4.7
|
100%
|
5.5
|
140%
|
1.6
|
103%
|
|
Variable assignment + 1
|
5.5
|
116%
|
7.1
|
181%
|
1.6
|
100%
|
|
|
|
|
|
|
|
|
|
Four levels of property access
|
5.5
|
116%
|
5.5
|
140%
|
1.6
|
100%
|
|
Three levels of property access
|
4.7
|
100%
|
4.7
|
121%
|
2.4
|
152%
|
|
Two levels of property access
|
4.7
|
100%
|
4.7
|
119%
|
1.6
|
100%
|
|
One level of property access
|
3.9
|
83%
|
4.7
|
121%
|
1.6
|
103%
|
|
|
|
0%
|
|
|
|
|
|
Using the typeof function
|
3.9
|
83%
|
4.7
|
119%
|
1.6
|
100%
|
|
Array Operations
|
|
|
|
|
|
|
|
Array access
|
7.1
|
150%
|
7.0
|
179%
|
1.6
|
100%
|
|
Array index value change
|
3.9
|
83%
|
4.7
|
121%
|
1.6
|
103%
|
|
Empty Array index value change
|
8.6
|
183%
|
8.6
|
221%
|
6.3
|
403%
|
|
Empty Array add three values
|
10.2
|
216%
|
11.7
|
300%
|
3.1
|
200%
|
|
Empty Array with set size
|
11.0
|
233%
|
11.0
|
281%
|
3.2
|
203%
|
|
Empty Array using constructor
|
9.4
|
199%
|
25.8
|
662%
|
2.3
|
148%
|
|
|
|
|
|
|
|
|
|
Push element onto an Array
|
25.0
|
532%
|
6.3
|
160%
|
1.5
|
98%
|
|
Pop element of an Array
|
165.6
|
3523%
|
6.3
|
160%
|
249.7
|
16112%
|
|
Push element onto an Array
|
6.2
|
132%
|
7.1
|
181%
|
1.4
|
92%
|
|
Shift elements off the front of an Array
|
2030.0
|
43191%
|
5620.0
|
144103%
|
1250.0
|
80645%
|
|
Join the array into a string
|
125000
|
2659574%
|
47000
|
1205128%
|
16000
|
1032258%
|
|
Push element onto an Array
|
7.1
|
150%
|
7.0
|
179%
|
3.9
|
252%
|
|
Sorting of an Array
|
93.0
|
1979%
|
45.3
|
1162%
|
32.9
|
2119%
|
|
|
|
|
|
|
|
|
|
Math.max(7.25,7.30)
|
5.5
|
116%
|
4.7
|
121%
|
3.9
|
252%
|
|
Math.min(7.25,7.30)
|
5.5
|
117%
|
4.7
|
121%
|
3.2
|
203%
|
|
HTML DOM Operations
|
|
|
|
|
|
|
|
Change text using innerHTML
|
469.0
|
9979%
|
234.0
|
6000%
|
109.0
|
7032%
|
|
Create a text node on HTML Dom
|
1093.0
|
23255%
|
156.0
|
4000%
|
110.0
|
7097%
|
|
Change the class name of an element
|
422.0
|
8979%
|
47.0
|
1205%
|
109.0
|
7032%
|
|
|
|
|
|
|
|
|
|
getElementById
|
86.8
|
1846%
|
15.7
|
401%
|
3.9
|
252%
|
|
getElementsByTagName("div")
|
153.1
|
3257%
|
18.0
|
462%
|
5.5
|
352%
|
|
getElementsByTagName("spa")
|
142.2
|
3024%
|
18.8
|
481%
|
5.5
|
355%
|
|
getElementsByName
|
93.8
|
1995%
|
44.6
|
1142%
|
4.7
|
303%
|
|
|
|
|
|
|
|
|
|
placeDiv.getAttribute("id")
|
29.7
|
632%
|
46.8
|
1200%
|
5.5
|
352%
|
|
placeDiv.attributes["id"]
|
31.3
|
665%
|
225.0
|
5769%
|
6.3
|
403%
|
|
var atts = placeDiv.attributes; atts["id"].name
|
11.7
|
249%
|
18.8
|
482%
|
4.7
|
303%
|
|
var atts = placeDiv.attributes; atts.id.name
|
12.5
|
266%
|
18.8
|
482%
|
3.9
|
252%
|
|
Try/Catch
|
|
|
|
|
|
|
|
Function call using function.call(this)
|
7.1
|
150%
|
4.0
|
101%
|
2.4
|
152%
|
|
Try catch
|
7.1
|
150%
|
6.3
|
160%
|
5.5
|
352%
|
|
Try catch with throw
|
17.2
|
365%
|
7.8
|
200%
|
5.5
|
355%
|
|
Try catch finally
|
9.4
|
199%
|
7.8
|
200%
|
4.7
|
303%
|
|
Try catch finally with throw
|
16.5
|
350%
|
11.0
|
281%
|
6.3
|
403%
|
|
If statement and Date object
|
|
|
|
|
|
|
|
Create a date object
|
12.5
|
266%
|
10.2
|
260%
|
3.1
|
200%
|
|
Create a date object and call getDate()
|
28.1
|
598%
|
50.8
|
1303%
|
10.2
|
658%
|
|
|
|
|
|
|
|
|
|
The switch statement
|
4.7
|
99%
|
2.4
|
60%
|
2.4
|
152%
|
|
An if statement
|
4.0
|
84%
|
2.4
|
60%
|
2.4
|
152%
|
|
|
|
|
|
|
|
|
|
Simple if else
|
4.1
|
86%
|
2.2
|
56%
|
1.9
|
121%
|
|
turinary operator
|
3.9
|
83%
|
2.3
|
60%
|
2.0
|
131%
|
|
|
|
|
|
|
|
|
|
Compare of matching string ==
|
4.7
|
100%
|
7.1
|
181%
|
2.4
|
152%
|
|
Compare of matching string ===
|
4.7
|
100%
|
7.0
|
179%
|
2.4
|
152%
|
|
Compare of non-matching string
|
4.7
|
100%
|
3.9
|
100%
|
2.4
|
152%
|
|
|
|
|
|
|
|
|
|
Compare TEST_INT == 5
|
4.1
|
86%
|
4.2
|
108%
|
1.7
|
111%
|
|
Compare 5 == 5
|
4.1
|
87%
|
2.0
|
52%
|
1.6
|
101%
|
|
Looping Performance Statistics
|
|
|
|
|
|
|
|
Loop through an array using in
|
10.3
|
219%
|
62.8
|
1610%
|
7.8
|
503%
|
|
Loop through an array using for (i++)
|
6.3
|
133%
|
10.6
|
273%
|
3.4
|
222%
|
|
Loop through an array using for (i < myArray.length)
|
6.2
|
133%
|
10.9
|
281%
|
3.1
|
201%
|
|
Loop through an array using for (i = 0; i < len; i++)
|
5.0
|
106%
|
4.7
|
120%
|
4.1
|
262%
|
|
Loop through an array using for (i = 0; i < len; i++)
|
5.3
|
113%
|
5.0
|
128%
|
4.1
|
262%
|
|
Loop through an array using while {i++}
|
5.3
|
113%
|
5.3
|
136%
|
4.7
|
302%
|
|
Loop through an array using while (i++ < len)
|
5.0
|
106%
|
5.0
|
128%
|
4.4
|
283%
|