// Copyright 2015 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.

function counter() {
  var i = 10000;
  return function() {
    if (i-- > 0) return i;
    throw "done";
  }
}


var f = (function() {
  "use asm";
  return function f(i, c1, c2) {
    i = i|0;
    do {
      if (i > 0) { while (0 ? this : this) { c1(); } }
      else c2();
    } while (true);
  }
})();

assertThrows(function() { f(0, counter(), counter()); });
assertThrows(function() { f(1, counter(), counter()); });