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