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