// 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;
}

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);