blob: c93ef9dfd5ae011dccf117710689a92cb1494493 [file] [log] [blame]
Ben Murdoch4a90d5f2016-03-22 12:00:34 +00001// 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: --allow-natives-syntax
6//
7var f = (function() {
8 "use asm";
9 function f(x, y) {
10 return x - y;
11 }
12 return f;
13})();
14
15var counter = 0;
16
17var deopt = { toString : function() {
18 %DeoptimizeFunction(f);
19 counter++;
20 return "2";
21} };
22
23var o = { toString : function() {
24 counter++;
25 return "1";
26} };
27
28counter = 0;
29assertEquals(1, f(deopt, o));
30assertEquals(2, counter);
31
32%OptimizeFunctionOnNextCall(f);
33counter = 0;
34assertEquals(-1, f(o, deopt));
35assertEquals(2, counter);
36
37%OptimizeFunctionOnNextCall(f);
38counter = 0;
39assertEquals(0, f(deopt, deopt));
40assertEquals(2, counter);