| OLD | NEW |
| 1 // Copyright 2015 the V8 project authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Flags: --allow-natives-syntax --harmony-proxies | 5 // Flags: --allow-natives-syntax |
| 6 | 6 |
| 7 function test_function(o) { | 7 function test_function(o) { |
| 8 if (%_ClassOf(o) === "Function") { | 8 if (%_ClassOf(o) === "Function") { |
| 9 return true; | 9 return true; |
| 10 } else { | 10 } else { |
| 11 return false; | 11 return false; |
| 12 } | 12 } |
| 13 } | 13 } |
| 14 | 14 |
| 15 var non_callable = new Proxy({}, {}); | 15 var non_callable = new Proxy({}, {}); |
| 16 var callable = new Proxy(function(){}.__proto__, {}); | 16 var callable = new Proxy(function(){}.__proto__, {}); |
| 17 var constructable = new Proxy(function(){}, {}); | 17 var constructable = new Proxy(function(){}, {}); |
| 18 | 18 |
| 19 assertFalse(test_function(non_callable)); | 19 assertFalse(test_function(non_callable)); |
| 20 assertTrue(test_function(callable)); | 20 assertTrue(test_function(callable)); |
| 21 assertTrue(test_function(constructable)); | 21 assertTrue(test_function(constructable)); |
| 22 | 22 |
| 23 %OptimizeFunctionOnNextCall(test_function); | 23 %OptimizeFunctionOnNextCall(test_function); |
| 24 | 24 |
| 25 assertFalse(test_function(non_callable)); | 25 assertFalse(test_function(non_callable)); |
| 26 assertTrue(test_function(callable)); | 26 assertTrue(test_function(callable)); |
| 27 assertTrue(test_function(constructable)); | 27 assertTrue(test_function(constructable)); |
| OLD | NEW |