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