| // Copyright 2017 the V8 project authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| // Flags: --allow-natives-syntax --turbo-escape | |
| function foo() { | |
| var a = {x:1}; | |
| var b = {x:1.5, y: 1}; | |
| var x = 0; | |
| for (var i = 0; i < 1; i = {}) { | |
| // The second iteration of this loop is dead code, leading to a | |
| // contradiction between dynamic and static information. | |
| x += a.x + 0.5; | |
| x += a.x % 0.5; | |
| x += Math.abs(a.x); | |
| x += a.x < 6; | |
| x += a.x === 7; | |
| x += a.x <= 8; | |
| a = b; | |
| } | |
| return x; | |
| } | |
| foo(); | |
| foo(); | |
| %OptimizeFunctionOnNextCall(foo); | |
| foo(); |