1# Copyright 2013 the V8 project authors. All rights reserved.
2# Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
3#
4# Redistribution and use in source and binary forms, with or without
5# modification, are permitted provided that the following conditions
6# are met:
7# 1.  Redistributions of source code must retain the above copyright
8#     notice, this list of conditions and the following disclaimer.
9# 2.  Redistributions in binary form must reproduce the above copyright
10#     notice, this list of conditions and the following disclaimer in the
11#     documentation and/or other materials provided with the distribution.
12#
13# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
14# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
15# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
16# DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
17# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
18# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
19# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
20# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
22# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23
24Tests that we don't emit unnecessary speculation checks when performing an int32 to double conversion on a value that is proved to be a number, predicted to be an int32, but not proved to be an int32.
25
26On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
27
28
29PASS foo({f:5}, 42.5) is 52.5
30PASS foo({f:5}, 42.5) is 52.5
31PASS foo({f:5}, 42.5) is 52.5
32PASS foo({f:5}, 42.5) is 52.5
33PASS foo({f:5}, 42.5) is 52.5
34PASS foo({f:5}, 42.5) is 52.5
35PASS foo({f:5}, 42.5) is 52.5
36PASS foo({f:5}, 42.5) is 52.5
37PASS foo({f:5}, 42.5) is 52.5
38PASS foo({f:5}, 42.5) is 52.5
39PASS foo({f:5}, 42.5) is 52.5
40PASS foo({f:5}, 42.5) is 52.5
41PASS foo({f:5}, 42.5) is 52.5
42PASS foo({f:5}, 42.5) is 52.5
43PASS foo({f:5}, 42.5) is 52.5
44PASS foo({f:5}, 42.5) is 52.5
45PASS foo({f:5}, 42.5) is 52.5
46PASS foo({f:5}, 42.5) is 52.5
47PASS foo({f:5}, 42.5) is 52.5
48PASS foo({f:5}, 42.5) is 52.5
49PASS foo({f:5}, 42.5) is 52.5
50PASS foo({f:5}, 42.5) is 52.5
51PASS foo({f:5}, 42.5) is 52.5
52PASS foo({f:5}, 42.5) is 52.5
53PASS foo({f:5}, 42.5) is 52.5
54PASS foo({f:5}, 42.5) is 52.5
55PASS foo({f:5}, 42.5) is 52.5
56PASS foo({f:5}, 42.5) is 52.5
57PASS foo({f:5}, 42.5) is 52.5
58PASS foo({f:5}, 42.5) is 52.5
59PASS foo({f:5}, 42.5) is 52.5
60PASS foo({f:5}, 42.5) is 52.5
61PASS foo({f:5}, 42.5) is 52.5
62PASS foo({f:5}, 42.5) is 52.5
63PASS foo({f:5}, 42.5) is 52.5
64PASS foo({f:5}, 42.5) is 52.5
65PASS foo({f:5}, 42.5) is 52.5
66PASS foo({f:5}, 42.5) is 52.5
67PASS foo({f:5}, 42.5) is 52.5
68PASS foo({f:5}, 42.5) is 52.5
69PASS foo({f:5}, 42.5) is 52.5
70PASS foo({f:5}, 42.5) is 52.5
71PASS foo({f:5}, 42.5) is 52.5
72PASS foo({f:5}, 42.5) is 52.5
73PASS foo({f:5}, 42.5) is 52.5
74PASS foo({f:5}, 42.5) is 52.5
75PASS foo({f:5}, 42.5) is 52.5
76PASS foo({f:5}, 42.5) is 52.5
77PASS foo({f:5}, 42.5) is 52.5
78PASS foo({f:5}, 42.5) is 52.5
79PASS foo({f:5}, 42.5) is 52.5
80PASS foo({f:5}, 42.5) is 52.5
81PASS foo({f:5}, 42.5) is 52.5
82PASS foo({f:5}, 42.5) is 52.5
83PASS foo({f:5}, 42.5) is 52.5
84PASS foo({f:5}, 42.5) is 52.5
85PASS foo({f:5}, 42.5) is 52.5
86PASS foo({f:5}, 42.5) is 52.5
87PASS foo({f:5}, 42.5) is 52.5
88PASS foo({f:5}, 42.5) is 52.5
89PASS foo({f:5}, 42.5) is 52.5
90PASS foo({f:5}, 42.5) is 52.5
91PASS foo({f:5}, 42.5) is 52.5
92PASS foo({f:5}, 42.5) is 52.5
93PASS foo({f:5}, 42.5) is 52.5
94PASS foo({f:5}, 42.5) is 52.5
95PASS foo({f:5}, 42.5) is 52.5
96PASS foo({f:5}, 42.5) is 52.5
97PASS foo({f:5}, 42.5) is 52.5
98PASS foo({f:5}, 42.5) is 52.5
99PASS foo({f:5}, 42.5) is 52.5
100PASS foo({f:5}, 42.5) is 52.5
101PASS foo({f:5}, 42.5) is 52.5
102PASS foo({f:5}, 42.5) is 52.5
103PASS foo({f:5}, 42.5) is 52.5
104PASS foo({f:5}, 42.5) is 52.5
105PASS foo({f:5}, 42.5) is 52.5
106PASS foo({f:5}, 42.5) is 52.5
107PASS foo({f:5}, 42.5) is 52.5
108PASS foo({f:5}, 42.5) is 52.5
109PASS foo({f:5}, 42.5) is 52.5
110PASS foo({f:5}, 42.5) is 52.5
111PASS foo({f:5}, 42.5) is 52.5
112PASS foo({f:5}, 42.5) is 52.5
113PASS foo({f:5}, 42.5) is 52.5
114PASS foo({f:5}, 42.5) is 52.5
115PASS foo({f:5}, 42.5) is 52.5
116PASS foo({f:5}, 42.5) is 52.5
117PASS foo({f:5}, 42.5) is 52.5
118PASS foo({f:5}, 42.5) is 52.5
119PASS foo({f:5}, 42.5) is 52.5
120PASS foo({f:5}, 42.5) is 52.5
121PASS foo({f:5}, 42.5) is 52.5
122PASS foo({f:5}, 42.5) is 52.5
123PASS foo({f:5}, 42.5) is 52.5
124PASS foo({f:5}, 42.5) is 52.5
125PASS foo({f:5}, 42.5) is 52.5
126PASS foo({f:5}, 42.5) is 52.5
127PASS foo({f:5}, 42.5) is 52.5
128PASS foo({f:5}, 42.5) is 52.5
129PASS foo({f:5}, 42.5) is 52.5
130PASS foo({f:5}, 42.5) is 52.5
131PASS foo({f:5}, 42.5) is 52.5
132PASS foo({f:5}, 42.5) is 52.5
133PASS foo({f:5}, 42.5) is 52.5
134PASS foo({f:5}, 42.5) is 52.5
135PASS foo({f:5}, 42.5) is 52.5
136PASS foo({f:5}, 42.5) is 52.5
137PASS foo({f:5}, 42.5) is 52.5
138PASS foo({f:5}, 42.5) is 52.5
139PASS foo({f:5}, 42.5) is 52.5
140PASS foo({f:5}, 42.5) is 52.5
141PASS foo({f:5}, 42.5) is 52.5
142PASS foo({f:5}, 42.5) is 52.5
143PASS foo({f:5}, 42.5) is 52.5
144PASS foo({f:5}, 42.5) is 52.5
145PASS foo({f:5}, 42.5) is 52.5
146PASS foo({f:5}, 42.5) is 52.5
147PASS foo({f:5}, 42.5) is 52.5
148PASS foo({f:5}, 42.5) is 52.5
149PASS foo({f:5}, 42.5) is 52.5
150PASS foo({f:5}, 42.5) is 52.5
151PASS foo({f:5}, 42.5) is 52.5
152PASS foo({f:5}, 42.5) is 52.5
153PASS foo({f:5}, 42.5) is 52.5
154PASS foo({f:5}, 42.5) is 52.5
155PASS foo({f:5}, 42.5) is 52.5
156PASS foo({f:5}, 42.5) is 52.5
157PASS foo({f:5}, 42.5) is 52.5
158PASS foo({f:5}, 42.5) is 52.5
159PASS foo({f:5}, 42.5) is 52.5
160PASS foo({f:5}, 42.5) is 52.5
161PASS foo({f:5}, 42.5) is 52.5
162PASS foo({f:5}, 42.5) is 52.5
163PASS foo({f:5}, 42.5) is 52.5
164PASS foo({f:5}, 42.5) is 52.5
165PASS foo({f:5}, 42.5) is 52.5
166PASS foo({f:5}, 42.5) is 52.5
167PASS foo({f:5}, 42.5) is 52.5
168PASS foo({f:5}, 42.5) is 52.5
169PASS foo({f:5}, 42.5) is 52.5
170PASS foo({f:5}, 42.5) is 52.5
171PASS foo({f:5}, 42.5) is 52.5
172PASS foo({f:5}, 42.5) is 52.5
173PASS foo({f:5}, 42.5) is 52.5
174PASS foo({f:5}, 42.5) is 52.5
175PASS foo({f:5}, 42.5) is 52.5
176PASS foo({f:5}, 42.5) is 52.5
177PASS foo({f:5}, 42.5) is 52.5
178PASS foo({f:5}, 42.5) is 52.5
179PASS foo({f:5}, 42.5) is 52.5
180PASS foo({f:5}, 42.5) is 52.5
181PASS foo({f:5}, 42.5) is 52.5
182PASS foo({f:5}, 42.5) is 52.5
183PASS foo({f:5}, 42.5) is 52.5
184PASS foo({f:5}, 42.5) is 52.5
185PASS foo({f:5}, 42.5) is 52.5
186PASS foo({f:5}, 42.5) is 52.5
187PASS foo({f:5}, 42.5) is 52.5
188PASS foo({f:5}, 42.5) is 52.5
189PASS foo({f:5}, 42.5) is 52.5
190PASS foo({f:5}, 42.5) is 52.5
191PASS foo({f:5}, 42.5) is 52.5
192PASS foo({f:5}, 42.5) is 52.5
193PASS foo({f:5}, 42.5) is 52.5
194PASS foo({f:5}, 42.5) is 52.5
195PASS foo({f:5}, 42.5) is 52.5
196PASS foo({f:5}, 42.5) is 52.5
197PASS foo({f:5}, 42.5) is 52.5
198PASS foo({f:5}, 42.5) is 52.5
199PASS foo({f:5}, 42.5) is 52.5
200PASS foo({f:5}, 42.5) is 52.5
201PASS foo({f:5}, 42.5) is 52.5
202PASS foo({f:5}, 42.5) is 52.5
203PASS foo({f:5}, 42.5) is 52.5
204PASS foo({f:5}, 42.5) is 52.5
205PASS foo({f:5}, 42.5) is 52.5
206PASS foo({f:5}, 42.5) is 52.5
207PASS foo({f:5}, 42.5) is 52.5
208PASS foo({f:5}, 42.5) is 52.5
209PASS foo({f:5}, 42.5) is 52.5
210PASS foo({f:5}, 42.5) is 52.5
211PASS foo({f:5}, 42.5) is 52.5
212PASS foo({f:5}, 42.5) is 52.5
213PASS foo({f:5}, 42.5) is 52.5
214PASS foo({f:5}, 42.5) is 52.5
215PASS foo({f:5}, 42.5) is 52.5
216PASS foo({f:5}, 42.5) is 52.5
217PASS foo({f:5}, 42.5) is 52.5
218PASS foo({f:5}, 42.5) is 52.5
219PASS foo({f:5}, 42.5) is 52.5
220PASS foo({f:5}, 42.5) is 52.5
221PASS foo({f:5}, 42.5) is 52.5
222PASS foo({f:5}, 42.5) is 52.5
223PASS foo({f:5}, 42.5) is 52.5
224PASS foo({f:5}, 42.5) is 52.5
225PASS foo({f:5}, 42.5) is 52.5
226PASS foo({f:5}, 42.5) is 52.5
227PASS foo({f:5}, 42.5) is 52.5
228PASS foo({f:5}, 42.5) is 52.5
229PASS successfullyParsed is true
230
231TEST COMPLETE
232
233