• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright 2009 the V8 project authors. All rights reserved.
2# Redistribution and use in source and binary forms, with or without
3# modification, are permitted provided that the following conditions are
4# met:
5#
6#     * Redistributions of source code must retain the above copyright
7#       notice, this list of conditions and the following disclaimer.
8#     * Redistributions in binary form must reproduce the above
9#       copyright notice, this list of conditions and the following
10#       disclaimer in the documentation and/or other materials provided
11#       with the distribution.
12#     * Neither the name of Google Inc. nor the names of its
13#       contributors may be used to endorse or promote products derived
14#       from this software without specific prior written permission.
15#
16# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
20# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
28prefix sputnik
29def FAIL_OK = FAIL, OKAY
30
31##################### DELIBERATE INCOMPATIBILITIES #####################
32
33# 900066: Deleting elements in .arguments should disconnect the
34# element from the actual arguments.  Implementing this is nontrivial
35# and we have no indication that anything on the web depends on this
36# feature.
37S13_A13_T1: FAIL_OK
38S13_A13_T2: FAIL_OK
39S13_A13_T3: FAIL_OK
40
41# This tests precision of trignometric functions.  We're slightly off
42# from the implementation in libc (~ 1e-17) but it's not clear if we
43# or they are closer to the right answer, or if it even matters.
44S15.8.2.16_A7: PASS || FAIL_OK
45S15.8.2.18_A7: PASS || FAIL_OK
46S15.8.2.13_A23: PASS || FAIL_OK
47
48# We allow calls to regexp exec() with no arguments to fail for
49# compatibility reasons.
50S15.10.6.2_A1_T16: FAIL_OK
51S15.10.6.3_A1_T16: FAIL_OK
52
53# We allow regexps to be called as functions for compatibility reasons.
54S15.10.7_A1_T1: FAIL_OK
55S15.10.7_A1_T2: FAIL_OK
56
57# We allow construct calls to built-in functions, and we allow built-in
58# functions to have prototypes.
59S15.1.2.1_A4.6: FAIL_OK
60S15.1.2.1_A4.7: FAIL_OK
61S15.1.2.2_A9.6: FAIL_OK
62S15.1.2.2_A9.7: FAIL_OK
63S15.1.2.3_A7.6: FAIL_OK
64S15.1.2.3_A7.7: FAIL_OK
65S15.1.2.4_A2.6: FAIL_OK
66S15.1.2.4_A2.7: FAIL_OK
67S15.1.2.5_A2.6: FAIL_OK
68S15.1.2.5_A2.7: FAIL_OK
69S15.1.3.1_A5.6: FAIL_OK
70S15.1.3.1_A5.7: FAIL_OK
71S15.1.3.2_A5.6: FAIL_OK
72S15.1.3.2_A5.7: FAIL_OK
73S15.1.3.3_A5.6: FAIL_OK
74S15.1.3.3_A5.7: FAIL_OK
75S15.1.3.4_A5.6: FAIL_OK
76S15.1.3.4_A5.7: FAIL_OK
77S15.10.6.2_A6: FAIL_OK
78S15.10.6.3_A6: FAIL_OK
79S15.10.6.4_A6: FAIL_OK
80S15.10.6.4_A7: FAIL_OK
81S15.2.4.2_A6: FAIL_OK
82S15.2.4.3_A6: FAIL_OK
83S15.2.4.4_A6: FAIL_OK
84S15.2.4.5_A6: FAIL_OK
85S15.2.4.6_A6: FAIL_OK
86S15.2.4.7_A6: FAIL_OK
87S15.3.4.2_A6: FAIL_OK
88S15.4.4.10_A5.6: FAIL_OK
89S15.4.4.10_A5.7: FAIL_OK
90S15.4.4.11_A7.6: FAIL_OK
91S15.4.4.11_A7.7: FAIL_OK
92S15.4.4.12_A5.6: FAIL_OK
93S15.4.4.12_A5.7: FAIL_OK
94S15.4.4.13_A5.6: FAIL_OK
95S15.4.4.13_A5.7: FAIL_OK
96S15.4.4.2_A4.6: FAIL_OK
97S15.4.4.3_A4.6: FAIL_OK
98S15.4.4.3_A4.6: FAIL_OK
99S15.4.4.4_A4.6: FAIL_OK
100S15.4.4.4_A4.7: FAIL_OK
101S15.4.4.5_A6.6: FAIL_OK
102S15.4.4.5_A6.7: FAIL_OK
103S15.4.4.6_A5.6: FAIL_OK
104S15.4.4.6_A5.7: FAIL_OK
105S15.4.4.7_A6.6: FAIL_OK
106S15.4.4.7_A6.7: FAIL_OK
107S15.4.4.8_A5.6: FAIL_OK
108S15.4.4.8_A5.7: FAIL_OK
109S15.4.4.9_A5.6: FAIL_OK
110S15.4.4.9_A5.7: FAIL_OK
111S15.5.4.10_A6: FAIL_OK
112S15.5.4.11_A6: FAIL_OK
113S15.5.4.12_A6: FAIL_OK
114S15.5.4.13_A6: FAIL_OK
115S15.5.4.14_A6: FAIL_OK
116S15.5.4.15_A6: FAIL_OK
117S15.5.4.16_A6: FAIL_OK
118S15.5.4.17_A6: FAIL_OK
119S15.5.4.18_A6: FAIL_OK
120S15.5.4.19_A6: FAIL_OK
121S15.5.4.4_A6: FAIL_OK
122S15.5.4.5_A6: FAIL_OK
123S15.5.4.6_A6: FAIL_OK
124S15.5.4.7_A6: FAIL_OK
125S15.5.4.9_A6: FAIL_OK
126S15.3.4.3_A12: FAIL_OK
127S15.3.4.4_A12: FAIL_OK
128S15.5.4.8_A6: FAIL_OK
129
130# We are silent in some regexp cases where the spec wants us to give
131# errors, for compatibility.
132S15.10.2.11_A1_T2: FAIL
133S15.10.2.11_A1_T3: FAIL
134S15.10.4.1_A5_T1: FAIL
135S15.10.4.1_A5_T2: FAIL
136S15.10.4.1_A5_T3: FAIL
137S15.10.4.1_A5_T4: FAIL
138S15.10.4.1_A5_T5: FAIL
139S15.10.4.1_A5_T6: FAIL
140S15.10.4.1_A5_T7: FAIL
141S15.10.4.1_A5_T8: FAIL
142S15.10.4.1_A5_T9: FAIL
143
144# We are more lenient in which string character escapes we allow than
145# the spec (7.8.4 p. 19) wants us to be.  This is for compatibility.
146S7.8.4_A4.3_T2: FAIL_OK
147S7.8.4_A4.3_T2: FAIL_OK
148S7.8.4_A6.2_T2: FAIL_OK
149S7.8.4_A6.1_T4: FAIL_OK
150S7.8.4_A4.3_T4: FAIL_OK
151S7.8.4_A7.2_T2: FAIL_OK
152S7.8.4_A7.1_T4: FAIL_OK
153S7.8.4_A6.4_T2: FAIL_OK
154S7.8.4_A7.4_T2: FAIL_OK
155S7.8.4_A7.2_T4: FAIL_OK
156S7.8.4_A4.3_T6: FAIL_OK
157S7.8.4_A7.2_T6: FAIL_OK
158S7.8.4_A4.3_T1: FAIL_OK
159S7.8.4_A6.2_T1: FAIL_OK
160S7.8.4_A4.3_T3: FAIL_OK
161S7.8.4_A7.2_T1: FAIL_OK
162S7.8.4_A6.4_T1: FAIL_OK
163S7.8.4_A7.2_T3: FAIL_OK
164S7.8.4_A7.4_T1: FAIL_OK
165S7.8.4_A4.3_T5: FAIL_OK
166S7.8.4_A7.2_T5: FAIL_OK
167S7.8.4_A4.3_T1: FAIL_OK
168S7.8.4_A6.2_T1: FAIL_OK
169S7.8.4_A4.3_T3: FAIL_OK
170S7.8.4_A7.2_T1: FAIL_OK
171S7.8.4_A6.4_T1: FAIL_OK
172S7.8.4_A7.2_T3: FAIL_OK
173S7.8.4_A7.4_T1: FAIL_OK
174S7.8.4_A4.3_T5: FAIL_OK
175S7.8.4_A7.2_T5: FAIL_OK
176
177# We allow some keywords to be used as identifiers
178S7.5.3_A1.17: FAIL_OK
179S7.5.3_A1.26: FAIL_OK
180S7.5.3_A1.18: FAIL_OK
181S7.5.3_A1.27: FAIL_OK
182S7.5.3_A1.28: FAIL_OK
183S7.5.3_A1.19: FAIL_OK
184S7.5.3_A1.29: FAIL_OK
185S7.5.3_A1.1: FAIL_OK
186S7.5.3_A1.2: FAIL_OK
187S7.5.3_A1.3: FAIL_OK
188S7.5.3_A1.4: FAIL_OK
189S7.5.3_A1.5: FAIL_OK
190S7.5.3_A1.8: FAIL_OK
191S7.5.3_A1.9: FAIL_OK
192S7.5.3_A1.10: FAIL_OK
193S7.5.3_A1.11: FAIL_OK
194S7.5.3_A1.21: FAIL_OK
195S7.5.3_A1.12: FAIL_OK
196S7.5.3_A1.30: FAIL_OK
197S7.5.3_A1.31: FAIL_OK
198S7.5.3_A1.13: FAIL_OK
199S7.5.3_A1.22: FAIL_OK
200S7.5.3_A1.23: FAIL_OK
201S7.5.3_A1.14: FAIL_OK
202S7.5.3_A1.15: FAIL_OK
203S7.5.3_A1.24: FAIL_OK
204S7.5.3_A1.25: FAIL_OK
205S7.5.3_A1.16: FAIL_OK
206
207# This checks for non-262 behavior
208S12.6.4_A14_T1: PASS || FAIL_OK
209S12.6.4_R1: PASS || FAIL_OK
210S12.6.4_R2: PASS || FAIL_OK
211S8.4_D2.1: PASS || FAIL_OK
212S8.4_D2.2: PASS || FAIL_OK
213S8.4_D2.3: PASS || FAIL_OK
214S8.4_D2.4: PASS || FAIL_OK
215S8.4_D2.5: PASS || FAIL_OK
216S8.4_D2.6: PASS || FAIL_OK
217S8.4_D2.7: PASS || FAIL_OK
218S8.4_D1.1: PASS || FAIL_OK
219S13.2_D1.2: PASS || FAIL_OK
220S11.4.3_D1.2: PASS || FAIL_OK
221S7.6_D1: PASS || FAIL_OK
222S7.6_D2: PASS || FAIL_OK
223S15.1.2.2_D1.2: PASS || FAIL_OK
224S13_D1_T1: PASS || FAIL_OK
225S14_D4_T3: PASS || FAIL_OK
226S14_D7: PASS || FAIL_OK
227S15.5.4.11_D1.1_T2: PASS || FAIL_OK
228S15.5.4.11_D1.1_T4: PASS || FAIL_OK
229S15.5.2_D2: PASS || FAIL_OK
230S15.5.4.11_D1.1_T1: PASS || FAIL_OK
231S15.5.4.11_D1.1_T3: PASS || FAIL_OK
232S12.6.4_D1: PASS || FAIL_OK
233
234# We deliberately don't throw type errors when iterating through the
235# undefined object
236S9.9_A1: FAIL_OK
237S9.9_A2: FAIL_OK
238
239# We allow function declarations within statements
240S12.5_A9_T1: FAIL_OK
241S12.5_A9_T2: FAIL_OK
242# S12.6.2_A13_T3: FAIL_OK
243# S12.5_A9_T3: FAIL_OK
244# S12.6.1_A13_T3: FAIL_OK
245S12.1_A1: FAIL_OK
246S12.6.2_A13_T1: FAIL_OK
247S12.6.2_A13_T2: FAIL_OK
248S12.6.1_A13_T1: FAIL_OK
249S12.6.1_A13_T2: FAIL_OK
250S12.6.4_A13_T1: FAIL_OK
251S12.6.4_A13_T2: FAIL_OK
252#S12.6.4_A13_T3: FAIL_OK
253S15.3.4.2_A1_T1: FAIL_OK
254
255# Linux and Mac defaults to extended 80 bit floating point format in the FPU.
256# We follow the other major JS engines by keeping this default.
257S8.5_A2.2: PASS, FAIL if $system == linux, FAIL if $system == macos
258S8.5_A2.1: PASS, FAIL if $system == linux, FAIL if $system == macos
259
260##################### SKIPPED TESTS #####################
261
262# These tests take a looong time to run in debug mode.
263S15.1.3.2_A2.5_T1: PASS, SKIP if $mode == debug
264S15.1.3.1_A2.5_T1: PASS, SKIP if $mode == debug
265
266
267# These tests fail because we had to add bugs to be compatible with JSC.  See
268# http://code.google.com/p/chromium/issues/detail?id=1717
269S15.4.4_A1.1_T2: FAIL_OK
270S15.5.4.1_A1_T2: FAIL_OK
271S15.5.4_A1: FAIL_OK
272S15.5.4_A3: FAIL_OK
273S15.9.5.10_A1_T2: FAIL_OK
274S15.9.5.11_A1_T2: FAIL_OK
275S15.9.5.12_A1_T2: FAIL_OK
276S15.9.5.13_A1_T2: FAIL_OK
277S15.9.5.14_A1_T2: FAIL_OK
278S15.9.5.15_A1_T2: FAIL_OK
279S15.9.5.16_A1_T2: FAIL_OK
280S15.9.5.17_A1_T2: FAIL_OK
281S15.9.5.18_A1_T2: FAIL_OK
282S15.9.5.19_A1_T2: FAIL_OK
283S15.9.5.20_A1_T2: FAIL_OK
284S15.9.5.21_A1_T2: FAIL_OK
285S15.9.5.22_A1_T2: FAIL_OK
286S15.9.5.23_A1_T2: FAIL_OK
287S15.9.5.24_A1_T2: FAIL_OK
288S15.9.5.25_A1_T2: FAIL_OK
289S15.9.5.26_A1_T2: FAIL_OK
290S15.9.5.27_A1_T2: FAIL_OK
291S15.9.5.28_A1_T2: FAIL_OK
292S15.9.5.29_A1_T2: FAIL_OK
293S15.9.5.2_A1_T2: FAIL_OK
294S15.9.5.30_A1_T2: FAIL_OK
295S15.9.5.31_A1_T2: FAIL_OK
296S15.9.5.32_A1_T2: FAIL_OK
297S15.9.5.33_A1_T2: FAIL_OK
298S15.9.5.34_A1_T2: FAIL_OK
299S15.9.5.35_A1_T2: FAIL_OK
300S15.9.5.36_A1_T2: FAIL_OK
301S15.9.5.37_A1_T2: FAIL_OK
302S15.9.5.38_A1_T2: FAIL_OK
303S15.9.5.39_A1_T2: FAIL_OK
304S15.9.5.3_A1_T2: FAIL_OK
305S15.9.5.40_A1_T2: FAIL_OK
306S15.9.5.41_A1_T2: FAIL_OK
307S15.9.5.42_A1_T2: FAIL_OK
308S15.9.5.4_A1_T2: FAIL_OK
309S15.9.5.5_A1_T2: FAIL_OK
310S15.9.5.6_A1_T2: FAIL_OK
311S15.9.5.7_A1_T2: FAIL_OK
312S15.9.5.8_A1_T2: FAIL_OK
313S15.9.5.9_A1_T2: FAIL_OK
314
315# Regexps have type "function", not "object".
316S11.4.3_A3.6: FAIL_OK
317S15.10.7_A3_T2: FAIL_OK
318S15.10.7_A3_T1: FAIL_OK
319
320[ $arch == mips ]
321
322# Skip all tests on MIPS.
323*: SKIP
324