function-caller.js 601 Bytes
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
// Copyright 2017 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// Flags: --allow-natives-syntax

(function TestInlineAllocatedCaller() {
  function g() {
    var caller = g.caller;
    caller.foo = 23;
    assertEquals(23, caller.foo);
    assertEquals(23, g.caller.foo);
    assertSame(caller, g.caller);
  }
  %NeverOptimizeFunction(g);

  function f() {
    (function caller() { g() })();
  }

21
  %PrepareFunctionForOptimization(f);
22 23 24 25 26
  f();
  f();
  %OptimizeFunctionOnNextCall(f);
  f();
})();