Imported Upstream version 1.0.0
[platform/upstream/js.git] / js / src / tests / js1_5 / Regress / regress-449627.js
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);