|
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ |
|
2 /* |
|
3 * Any copyright is dedicated to the Public Domain. |
|
4 * http://creativecommons.org/licenses/publicdomain/ |
|
5 * Contributor: Robert Sayre |
|
6 */ |
|
7 |
|
8 //----------------------------------------------------------------------------- |
|
9 var BUGNUMBER = 449627; |
|
10 var summary = 'Crash with JIT in js_FillPropertyCache'; |
|
11 var actual = 'No Crash'; |
|
12 var expect = 'No Crash'; |
|
13 |
|
14 printBugNumber(BUGNUMBER); |
|
15 printStatus (summary); |
|
16 |
|
17 jit(true); |
|
18 |
|
19 /************************ BROWSER DETECT (http://www.quirksmode.org/js/detect.html) ************************/ |
|
20 |
|
21 if (typeof navigator == 'undefined') |
|
22 { |
|
23 navigator = { |
|
24 userAgent: "Firefox", |
|
25 vendor: "Mozilla", |
|
26 platform: "Mac" |
|
27 }; |
|
28 } |
|
29 |
|
30 global = this; |
|
31 |
|
32 var BrowserDetect = { |
|
33 init: function _init() |
|
34 { |
|
35 this.browser=this.searchString(this.dataBrowser) || "An unknown browser"; |
|
36 |
|
37 this.OS= this.searchString(this.dataOS)||"an unknown OS"; |
|
38 }, |
|
39 searchString: function _searchString(a) |
|
40 { |
|
41 for(var i=0; i < a.length; i++) |
|
42 { |
|
43 var b=a[i].string; |
|
44 var c=a[i].prop; |
|
45 this.versionSearchString=a[i].versionSearch||a[i].identity; |
|
46 if(b) |
|
47 { |
|
48 if(b.indexOf(a[i].subString)!=-1) |
|
49 return a[i].identity; |
|
50 } |
|
51 else if(c) |
|
52 return a[i].identity; |
|
53 } |
|
54 }, |
|
55 |
|
56 searchVersion:function _searchVersion(a) |
|
57 { |
|
58 var b=a.indexOf(this.versionSearchString); |
|
59 if(b==-1) |
|
60 return; |
|
61 return parseFloat(a.substring(b+this.versionSearchString.length+1)); |
|
62 }, |
|
63 |
|
64 dataBrowser:[ |
|
65 { |
|
66 string:navigator.userAgent,subString:"OmniWeb",versionSearch:"OmniWeb/",identity:"OmniWeb" |
|
67 }, |
|
68 { |
|
69 string:navigator.vendor,subString:"Apple",identity:"Safari" |
|
70 }, |
|
71 { |
|
72 prop:global.opera,identity:"Opera" |
|
73 }, |
|
74 { |
|
75 string:navigator.vendor,subString:"iCab",identity:"iCab" |
|
76 }, |
|
77 { |
|
78 string:navigator.vendor,subString:"KDE",identity:"Konqueror" |
|
79 }, |
|
80 { |
|
81 string:navigator.userAgent,subString:"Firefox",identity:"Firefox" |
|
82 }, |
|
83 { |
|
84 string:navigator.vendor,subString:"Camino",identity:"Camino" |
|
85 }, |
|
86 { |
|
87 string:navigator.userAgent,subString:"Netscape",identity:"Netscape" |
|
88 }, |
|
89 { |
|
90 string:navigator.userAgent,subString:"MSIE",identity:"Explorer",versionSearch:"MSIE" |
|
91 }, |
|
92 { |
|
93 string:navigator.userAgent,subString:"Gecko",identity:"Mozilla",versionSearch:"rv" |
|
94 }, |
|
95 { |
|
96 string:navigator.userAgent,subString:"Mozilla",identity:"Netscape",versionSearch:"Mozilla" |
|
97 } |
|
98 ], |
|
99 dataOS:[ |
|
100 { |
|
101 string:navigator.platform,subString:"Win",identity:"Windows" |
|
102 }, |
|
103 { |
|
104 string:navigator.platform,subString:"Mac",identity:"Mac" |
|
105 }, |
|
106 { |
|
107 string:navigator.platform,subString:"Linux",identity:"Linux" |
|
108 } |
|
109 ] |
|
110 }; |
|
111 |
|
112 BrowserDetect.init(); |
|
113 |
|
114 jit(false); |
|
115 |
|
116 reportCompare(expect, actual, summary); |