| OLD | NEW | 
| (Empty) |  | 
 |   1 // Copyright 2014 the V8 project authors. All rights reserved. | 
 |   2 // Use of this source code is governed by a BSD-style license that can be | 
 |   3 // found in the LICENSE file. | 
 |   4  | 
 |   5 var error = "error"; | 
 |   6 function counter(x) { | 
 |   7   return (function() { if (x-- == 0) throw error;}); | 
 |   8 } | 
 |   9  | 
 |  10 function Module() { | 
 |  11   "use asm"; | 
 |  12  | 
 |  13   function w0(f) { | 
 |  14     while (1) f(); | 
 |  15     return 108; | 
 |  16   } | 
 |  17  | 
 |  18   function w1(f) { | 
 |  19     if (1) while (1) f(); | 
 |  20     return 109; | 
 |  21   } | 
 |  22  | 
 |  23   function w2(f) { | 
 |  24     if (1) while (1) f(); | 
 |  25     else while (1) f(); | 
 |  26     return 110; | 
 |  27   } | 
 |  28  | 
 |  29   function w3(f) { | 
 |  30     if (0) while (1) f(); | 
 |  31     return 111; | 
 |  32   } | 
 |  33  | 
 |  34   return { w0: w0, w1: w1, w2: w2, w3: w3 }; | 
 |  35 } | 
 |  36  | 
 |  37 var m = Module(); | 
 |  38 assertThrows(function() { m.w0(counter(5)) }, error); | 
 |  39 assertThrows(function() { m.w1(counter(5)) }, error); | 
 |  40 assertThrows(function() { m.w2(counter(5)) }, error); | 
 |  41 assertEquals(111, m.w3(counter(5))); | 
| OLD | NEW |