1fa0c3c69b9d632e5730bdd9c745c375beef5e54dmachenbach@chromium.org// Copyright 2014 the V8 project authors. All rights reserved.
2fa0c3c69b9d632e5730bdd9c745c375beef5e54dmachenbach@chromium.org// Use of this source code is governed by a BSD-style license that can be
3fa0c3c69b9d632e5730bdd9c745c375beef5e54dmachenbach@chromium.org// found in the LICENSE file.
4fa0c3c69b9d632e5730bdd9c745c375beef5e54dmachenbach@chromium.org
5fa0c3c69b9d632e5730bdd9c745c375beef5e54dmachenbach@chromium.org// Flags: --allow-natives-syntax
6fa0c3c69b9d632e5730bdd9c745c375beef5e54dmachenbach@chromium.org
7fa0c3c69b9d632e5730bdd9c745c375beef5e54dmachenbach@chromium.orgfunction load(a, i) {
8fa0c3c69b9d632e5730bdd9c745c375beef5e54dmachenbach@chromium.org  return a[i];
9fa0c3c69b9d632e5730bdd9c745c375beef5e54dmachenbach@chromium.org}
10fa0c3c69b9d632e5730bdd9c745c375beef5e54dmachenbach@chromium.org
11fa0c3c69b9d632e5730bdd9c745c375beef5e54dmachenbach@chromium.orgfunction f2(a, b, c, d, index) {
12fa0c3c69b9d632e5730bdd9c745c375beef5e54dmachenbach@chromium.org  return load(arguments, index);
13fa0c3c69b9d632e5730bdd9c745c375beef5e54dmachenbach@chromium.org}
14fa0c3c69b9d632e5730bdd9c745c375beef5e54dmachenbach@chromium.org
15fa0c3c69b9d632e5730bdd9c745c375beef5e54dmachenbach@chromium.orgf2(1, 2, 3, 4, "foo");
16fa0c3c69b9d632e5730bdd9c745c375beef5e54dmachenbach@chromium.orgf2(1, 2, 3, 4, "foo");
17fa0c3c69b9d632e5730bdd9c745c375beef5e54dmachenbach@chromium.orgload([11, 22, 33], 0);
18fa0c3c69b9d632e5730bdd9c745c375beef5e54dmachenbach@chromium.orgassertEquals(11, f2(11, 22, 33, 44, 0));
19fa0c3c69b9d632e5730bdd9c745c375beef5e54dmachenbach@chromium.org
20fa0c3c69b9d632e5730bdd9c745c375beef5e54dmachenbach@chromium.org%OptimizeFunctionOnNextCall(load);
21fa0c3c69b9d632e5730bdd9c745c375beef5e54dmachenbach@chromium.orgassertEquals(11, f2(11, 22, 33, 44, 0));
22