blob: 02043614ba62ea10059a2c5762d4aaaab4a2c451 [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
Ben Murdochda12d292016-06-02 14:46:10 +01005// Flags: --allow-natives-syntax
Ben Murdoch4a90d5f2016-03-22 12:00:34 +00006
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));