19d58c2b1c27d8b2890b9bd46e57d3842b09e0292christian.plesner.hansen@gmail.com// Copyright 2009 the V8 project authors. All rights reserved.
29d58c2b1c27d8b2890b9bd46e57d3842b09e0292christian.plesner.hansen@gmail.com// Redistribution and use in source and binary forms, with or without
39d58c2b1c27d8b2890b9bd46e57d3842b09e0292christian.plesner.hansen@gmail.com// modification, are permitted provided that the following conditions are
49d58c2b1c27d8b2890b9bd46e57d3842b09e0292christian.plesner.hansen@gmail.com// met:
59d58c2b1c27d8b2890b9bd46e57d3842b09e0292christian.plesner.hansen@gmail.com//
69d58c2b1c27d8b2890b9bd46e57d3842b09e0292christian.plesner.hansen@gmail.com//     * Redistributions of source code must retain the above copyright
79d58c2b1c27d8b2890b9bd46e57d3842b09e0292christian.plesner.hansen@gmail.com//       notice, this list of conditions and the following disclaimer.
89d58c2b1c27d8b2890b9bd46e57d3842b09e0292christian.plesner.hansen@gmail.com//     * Redistributions in binary form must reproduce the above
99d58c2b1c27d8b2890b9bd46e57d3842b09e0292christian.plesner.hansen@gmail.com//       copyright notice, this list of conditions and the following
109d58c2b1c27d8b2890b9bd46e57d3842b09e0292christian.plesner.hansen@gmail.com//       disclaimer in the documentation and/or other materials provided
119d58c2b1c27d8b2890b9bd46e57d3842b09e0292christian.plesner.hansen@gmail.com//       with the distribution.
129d58c2b1c27d8b2890b9bd46e57d3842b09e0292christian.plesner.hansen@gmail.com//     * Neither the name of Google Inc. nor the names of its
139d58c2b1c27d8b2890b9bd46e57d3842b09e0292christian.plesner.hansen@gmail.com//       contributors may be used to endorse or promote products derived
149d58c2b1c27d8b2890b9bd46e57d3842b09e0292christian.plesner.hansen@gmail.com//       from this software without specific prior written permission.
159d58c2b1c27d8b2890b9bd46e57d3842b09e0292christian.plesner.hansen@gmail.com//
169d58c2b1c27d8b2890b9bd46e57d3842b09e0292christian.plesner.hansen@gmail.com// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
179d58c2b1c27d8b2890b9bd46e57d3842b09e0292christian.plesner.hansen@gmail.com// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
189d58c2b1c27d8b2890b9bd46e57d3842b09e0292christian.plesner.hansen@gmail.com// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
199d58c2b1c27d8b2890b9bd46e57d3842b09e0292christian.plesner.hansen@gmail.com// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
209d58c2b1c27d8b2890b9bd46e57d3842b09e0292christian.plesner.hansen@gmail.com// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
219d58c2b1c27d8b2890b9bd46e57d3842b09e0292christian.plesner.hansen@gmail.com// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
229d58c2b1c27d8b2890b9bd46e57d3842b09e0292christian.plesner.hansen@gmail.com// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
239d58c2b1c27d8b2890b9bd46e57d3842b09e0292christian.plesner.hansen@gmail.com// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
249d58c2b1c27d8b2890b9bd46e57d3842b09e0292christian.plesner.hansen@gmail.com// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
259d58c2b1c27d8b2890b9bd46e57d3842b09e0292christian.plesner.hansen@gmail.com// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
269d58c2b1c27d8b2890b9bd46e57d3842b09e0292christian.plesner.hansen@gmail.com// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
279d58c2b1c27d8b2890b9bd46e57d3842b09e0292christian.plesner.hansen@gmail.com
28c4c927273ae2b690c4a015b4640a2a469c9a1a69ager@chromium.org// See: http://code.google.com/p/v8/issues/detail?id=492
29c4c927273ae2b690c4a015b4640a2a469c9a1a69ager@chromium.org// This should not hit any asserts in debug mode on ARM.
30c4c927273ae2b690c4a015b4640a2a469c9a1a69ager@chromium.org
31c4c927273ae2b690c4a015b4640a2a469c9a1a69ager@chromium.orgfunction function_with_n_args(n) {
32cddc71f18a46e6117cc765b1c53ca122e7aaa318rossberg@chromium.org  var source = '(function f' + n + '(';
33c4c927273ae2b690c4a015b4640a2a469c9a1a69ager@chromium.org  for (var arg = 0; arg < n; arg++) {
34c4c927273ae2b690c4a015b4640a2a469c9a1a69ager@chromium.org    if (arg != 0) source += ',';
35c4c927273ae2b690c4a015b4640a2a469c9a1a69ager@chromium.org    source += 'arg' + arg;
36c4c927273ae2b690c4a015b4640a2a469c9a1a69ager@chromium.org  }
37c4c927273ae2b690c4a015b4640a2a469c9a1a69ager@chromium.org  source += ') { })()';
38c4c927273ae2b690c4a015b4640a2a469c9a1a69ager@chromium.org  eval(source);
39c4c927273ae2b690c4a015b4640a2a469c9a1a69ager@chromium.org}
40c4c927273ae2b690c4a015b4640a2a469c9a1a69ager@chromium.org
41c4c927273ae2b690c4a015b4640a2a469c9a1a69ager@chromium.orgvar args;
42c4c927273ae2b690c4a015b4640a2a469c9a1a69ager@chromium.orgfor (args = 250; args < 270; args++) {
43c4c927273ae2b690c4a015b4640a2a469c9a1a69ager@chromium.org  function_with_n_args(args);
44c4c927273ae2b690c4a015b4640a2a469c9a1a69ager@chromium.org}
45c4c927273ae2b690c4a015b4640a2a469c9a1a69ager@chromium.org
46c4c927273ae2b690c4a015b4640a2a469c9a1a69ager@chromium.orgfor (args = 500; args < 520; args++) {
47c4c927273ae2b690c4a015b4640a2a469c9a1a69ager@chromium.org  function_with_n_args(args);
48c4c927273ae2b690c4a015b4640a2a469c9a1a69ager@chromium.org}
49c4c927273ae2b690c4a015b4640a2a469c9a1a69ager@chromium.org
50c4c927273ae2b690c4a015b4640a2a469c9a1a69ager@chromium.orgfor (args = 1019; args < 1041; args++) {
51c4c927273ae2b690c4a015b4640a2a469c9a1a69ager@chromium.org  function_with_n_args(args);
52c4c927273ae2b690c4a015b4640a2a469c9a1a69ager@chromium.org}
53cddc71f18a46e6117cc765b1c53ca122e7aaa318rossberg@chromium.org
54cddc71f18a46e6117cc765b1c53ca122e7aaa318rossberg@chromium.org
55cddc71f18a46e6117cc765b1c53ca122e7aaa318rossberg@chromium.orgfunction foo(
56cddc71f18a46e6117cc765b1c53ca122e7aaa318rossberg@chromium.org  x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
57cddc71f18a46e6117cc765b1c53ca122e7aaa318rossberg@chromium.org  x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
58cddc71f18a46e6117cc765b1c53ca122e7aaa318rossberg@chromium.org  x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
59cddc71f18a46e6117cc765b1c53ca122e7aaa318rossberg@chromium.org  x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
60cddc71f18a46e6117cc765b1c53ca122e7aaa318rossberg@chromium.org  x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
61cddc71f18a46e6117cc765b1c53ca122e7aaa318rossberg@chromium.org  x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
62cddc71f18a46e6117cc765b1c53ca122e7aaa318rossberg@chromium.org  x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
63cddc71f18a46e6117cc765b1c53ca122e7aaa318rossberg@chromium.org  x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
64cddc71f18a46e6117cc765b1c53ca122e7aaa318rossberg@chromium.org  x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
65cddc71f18a46e6117cc765b1c53ca122e7aaa318rossberg@chromium.org  x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
66cddc71f18a46e6117cc765b1c53ca122e7aaa318rossberg@chromium.org  x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
67cddc71f18a46e6117cc765b1c53ca122e7aaa318rossberg@chromium.org  x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
68cddc71f18a46e6117cc765b1c53ca122e7aaa318rossberg@chromium.org  x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
69cddc71f18a46e6117cc765b1c53ca122e7aaa318rossberg@chromium.org  x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
70cddc71f18a46e6117cc765b1c53ca122e7aaa318rossberg@chromium.org  x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
71cddc71f18a46e6117cc765b1c53ca122e7aaa318rossberg@chromium.org  x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
72cddc71f18a46e6117cc765b1c53ca122e7aaa318rossberg@chromium.org  x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
73cddc71f18a46e6117cc765b1c53ca122e7aaa318rossberg@chromium.org  x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
74cddc71f18a46e6117cc765b1c53ca122e7aaa318rossberg@chromium.org  x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
75cddc71f18a46e6117cc765b1c53ca122e7aaa318rossberg@chromium.org  x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
76cddc71f18a46e6117cc765b1c53ca122e7aaa318rossberg@chromium.org  x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
77cddc71f18a46e6117cc765b1c53ca122e7aaa318rossberg@chromium.org  x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
78cddc71f18a46e6117cc765b1c53ca122e7aaa318rossberg@chromium.org  x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
79cddc71f18a46e6117cc765b1c53ca122e7aaa318rossberg@chromium.org  x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
80cddc71f18a46e6117cc765b1c53ca122e7aaa318rossberg@chromium.org  x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
81cddc71f18a46e6117cc765b1c53ca122e7aaa318rossberg@chromium.org  x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
82cddc71f18a46e6117cc765b1c53ca122e7aaa318rossberg@chromium.org  x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
83cddc71f18a46e6117cc765b1c53ca122e7aaa318rossberg@chromium.org  x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
84cddc71f18a46e6117cc765b1c53ca122e7aaa318rossberg@chromium.org  x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
85cddc71f18a46e6117cc765b1c53ca122e7aaa318rossberg@chromium.org  x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
86cddc71f18a46e6117cc765b1c53ca122e7aaa318rossberg@chromium.org  x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
87cddc71f18a46e6117cc765b1c53ca122e7aaa318rossberg@chromium.org  x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x
88cddc71f18a46e6117cc765b1c53ca122e7aaa318rossberg@chromium.org) {}
89cddc71f18a46e6117cc765b1c53ca122e7aaa318rossberg@chromium.org
90cddc71f18a46e6117cc765b1c53ca122e7aaa318rossberg@chromium.orgfor (var i = 0; i < 10000; ++i) foo();
91