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