1// Copyright 2015 the V8 project authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// Flags: --strong-mode
6
7"use strong";
8
9function foo(param, fooCount, barCount) {
10  if (param === 0)
11    return {'foo': fooCount, 'bar': barCount};
12  return bar(param - 1, fooCount + 1, barCount);
13}
14
15function bar(param, fooCount, barCount) {
16  if (param === 0)
17    return {'foo': fooCount, 'bar': barCount};
18  return foo(param - 1, fooCount, barCount + 1);
19}
20
21(function TestMutuallyRecursiveFunctions() {
22  let obj = foo(10, 0, 0);
23  assertEquals(obj.foo, 5);
24  assertEquals(obj.bar, 5);
25})();
26