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: --allow-natives-syntax --harmony-proxies
6
7function test_function(o) {
8  if (%_ClassOf(o) === "Function") {
9    return true;
10  } else {
11    return false;
12  }
13}
14
15var non_callable = new Proxy({}, {});
16var callable = new Proxy(function(){}.__proto__, {});
17var constructable = new Proxy(function(){}, {});
18
19assertFalse(test_function(non_callable));
20assertTrue(test_function(callable));
21assertTrue(test_function(constructable));
22
23%OptimizeFunctionOnNextCall(test_function);
24
25assertFalse(test_function(non_callable));
26assertTrue(test_function(callable));
27assertTrue(test_function(constructable));
28