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 |