| Index: test/mjsunit/regress/regress-1122.js
|
| diff --git a/test/mjsunit/regress/regress-1122.js b/test/mjsunit/regress/regress-1122.js
|
| index 7dc9b248a3d51fe144ecb86a481be4d71a6fc315..815511d18efd83d257c951b80b3678cbdc11e3fe 100644
|
| --- a/test/mjsunit/regress/regress-1122.js
|
| +++ b/test/mjsunit/regress/regress-1122.js
|
| @@ -25,12 +25,14 @@
|
| // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
| // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
| -// Test that we can handle functions with up to 32766 arguments, and that
|
| -// functions with more arguments throw an exception.
|
| +// Test that we can handle function calls with up to 32766 arguments, and
|
| +// that function calls with more arguments throw an exception. Apply a
|
| +// similar limit to the number of function parameters.
|
|
|
| -// See http://code.google.com/p/v8/issues/detail?id=1122.
|
| +// See http://code.google.com/p/v8/issues/detail?id=1122 and
|
| +// http://code.google.com/p/v8/issues/detail?id=1413.
|
|
|
| -function function_with_n_args(n) {
|
| +function function_with_n_params_and_m_args(n, m) {
|
| test_prefix = 'prefix ';
|
| test_suffix = ' suffix';
|
| var source = 'test_prefix + (function f(';
|
| @@ -39,7 +41,7 @@ function function_with_n_args(n) {
|
| source += 'arg' + arg;
|
| }
|
| source += ') { return arg' + (n - n % 2) / 2 + '; })(';
|
| - for (var arg = 0; arg < n ; arg++) {
|
| + for (var arg = 0; arg < m ; arg++) {
|
| if (arg != 0) source += ',';
|
| source += arg;
|
| }
|
| @@ -47,9 +49,20 @@ function function_with_n_args(n) {
|
| return eval(source);
|
| }
|
|
|
| -assertEquals('prefix 4000 suffix', function_with_n_args(8000));
|
| -assertEquals('prefix 9000 suffix', function_with_n_args(18000));
|
| -assertEquals('prefix 16000 suffix', function_with_n_args(32000));
|
| +assertEquals('prefix 4000 suffix',
|
| + function_with_n_params_and_m_args(8000, 8000));
|
| +assertEquals('prefix 3000 suffix',
|
| + function_with_n_params_and_m_args(6000, 8000));
|
| +assertEquals('prefix 5000 suffix',
|
| + function_with_n_params_and_m_args(10000, 8000));
|
| +assertEquals('prefix 9000 suffix',
|
| + function_with_n_params_and_m_args(18000, 18000));
|
| +assertEquals('prefix 16000 suffix',
|
| + function_with_n_params_and_m_args(32000, 32000));
|
| +assertEquals('prefix undefined suffix',
|
| + function_with_n_params_and_m_args(32000, 10000));
|
|
|
| -assertThrows("function_with_n_args(35000)");
|
| -assertThrows("function_with_n_args(100000)");
|
| +assertThrows("function_with_n_params_and_m_args(35000, 35000)");
|
| +assertThrows("function_with_n_params_and_m_args(100000, 100000)");
|
| +assertThrows("function_with_n_params_and_m_args(35000, 30000)");
|
| +assertThrows("function_with_n_params_and_m_args(30000, 35000)");
|
|
|