| // Copyright 2014 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 | 
 |  | 
 | var d = {x: undefined, y: undefined}; | 
 |  | 
 | function Crash(left, right) { | 
 |   var c = {x: right.x - left.x, y: right.y - left.y}; | 
 |  | 
 |   return c.x * c.y; | 
 | }; | 
 | %PrepareFunctionForOptimization(Crash); | 
 | var a = {x: 0.5, y: 0}; | 
 | var b = {x: 1, y: 0}; | 
 |  | 
 | for (var i = 0; i < 3; i++) Crash(a, b); | 
 | %OptimizeFunctionOnNextCall(Crash); | 
 | Crash(a, b); | 
 |  | 
 | Crash({x: 0, y: 0.5}, b); |