OLD | NEW |
1 // Copyright 2016 the V8 project authors. All rights reserved. | 1 // Copyright 2016 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-tailcalls | 5 // Flags: --allow-natives-syntax --harmony-tailcalls |
6 | 6 |
7 "use strict"; | 7 "use strict"; |
8 | 8 |
9 function f(o) { | 9 function f(v) { |
10 return o.x(); | 10 %DeoptimizeFunction(test); |
| 11 return 153; |
11 } | 12 } |
12 try { f({ x: 1 }); } catch(e) {} | 13 |
13 try { f({ x: 1 }); } catch(e) {} | 14 function test() { |
14 %OptimizeFunctionOnNextCall(f); | 15 var o = {}; |
15 try { f({ x: 1 }); } catch(e) {} | 16 o.__defineSetter__('q', f); |
| 17 assertEquals(1, o.q = 1); |
| 18 } |
| 19 |
| 20 test(); |
| 21 test(); |
| 22 %OptimizeFunctionOnNextCall(test); |
| 23 test(); |
OLD | NEW |