// 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.functioncounter(){vari=10000;returnfunction(){if(i-->0)returni;throw"done";}}varf=(function(){"use asm";returnfunctionf(i,c1,c2){i=i|0;do{if(i>0){while(0?this:this){c1();}}elsec2();}while(true);}})();assertThrows(function(){f(0,counter(),counter());});assertThrows(function(){f(1,counter(),counter());});