| Index: test/mjsunit/math-floor-of-div.js
 | 
| ===================================================================
 | 
| --- test/mjsunit/math-floor-of-div.js	(revision 13153)
 | 
| +++ test/mjsunit/math-floor-of-div.js	(working copy)
 | 
| @@ -25,7 +25,7 @@
 | 
|  // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 | 
|  // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
|  
 | 
| -// Flags: --allow-natives-syntax --nouse_inlining
 | 
| +// Flags: --allow-natives-syntax --nouse_inlining --enable_sudiv
 | 
|  
 | 
|  // Use this function as reference. Make sure it is not inlined.
 | 
|  function div(a, b) {
 | 
| @@ -184,7 +184,7 @@
 | 
|  %OptimizeFunctionOnNextCall(test_div);
 | 
|  test_div();
 | 
|  
 | 
| -// Test for negative zero and overflow.
 | 
| +// Test for negative zero, overflow and division by 0.
 | 
|  // Separate the tests to prevent deoptimizations from making the other optimized
 | 
|  // test unreachable.
 | 
|  
 | 
| @@ -197,20 +197,34 @@
 | 
|  
 | 
|  function test_div_deopt_minus_zero() {
 | 
|    var zero_in_array = [0];
 | 
| -  assertTrue(IsNegativeZero(Math.floor((zero_in_array[0] | 0) / -1)));
 | 
| +  for (var i = 0; i < 2; ++i) {
 | 
| +    assertTrue(IsNegativeZero(Math.floor((zero_in_array[0] | 0) / -1)));
 | 
| +  }
 | 
|  }
 | 
|  
 | 
|  function test_div_deopt_overflow() {
 | 
|    // We box the value in an array to avoid constant propagation.
 | 
|    var min_int_in_array = [-2147483648];
 | 
| -  // We use '| 0' to force the representation to int32.
 | 
| -  assertEquals(-min_int_in_array[0],
 | 
| -               Math.floor((min_int_in_array[0] | 0) / -1));
 | 
| +  for (var i = 0; i < 2; ++i) {
 | 
| +    // We use '| 0' to force the representation to int32.
 | 
| +    assertEquals(-min_int_in_array[0],
 | 
| +                 Math.floor((min_int_in_array[0] | 0) / -1));
 | 
| +  }
 | 
|  }
 | 
|  
 | 
| +function test_div_deopt_div_by_zero() {
 | 
| +  for (var i = 0; i < 2; ++i) {
 | 
| +    assertEquals(div(i, 0),
 | 
| +                 Math.floor(i / 0));
 | 
| +  }
 | 
| +}
 | 
| +
 | 
|  test_div_deopt_minus_zero();
 | 
|  test_div_deopt_overflow();
 | 
| +test_div_deopt_div_by_zero();
 | 
|  %OptimizeFunctionOnNextCall(test_div_deopt_minus_zero);
 | 
|  %OptimizeFunctionOnNextCall(test_div_deopt_overflow);
 | 
| +%OptimizeFunctionOnNextCall(test_div_deopt_div_by_zero);
 | 
|  test_div_deopt_minus_zero();
 | 
|  test_div_deopt_overflow();
 | 
| +test_div_deopt_div_by_zero();
 | 
| 
 |