Home | History | Annotate | Download | only in asm
      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 function Module(stdlib, foreign, heap) {
      6   "use asm";
      7   function f1(i) {
      8     i = +i;
      9     return +(i * -1);
     10   }
     11   function f2(i) {
     12     i = +i;
     13     return +(-1 * i);
     14   }
     15   function f3(i) {
     16     i = +i;
     17     return +(-i);
     18   }
     19   return { f1: f1, f2: f2, f3: f3 };
     20 }
     21 
     22 var m = Module(this, {}, new ArrayBuffer(64 * 1024));
     23 
     24 assertEquals(NaN, m.f1(NaN));
     25 assertEquals(NaN, m.f2(NaN));
     26 assertEquals(NaN, m.f3(NaN));
     27 assertEquals(Infinity, 1 / m.f1(-0));
     28 assertEquals(Infinity, 1 / m.f2(-0));
     29 assertEquals(Infinity, 1 / m.f3(-0));
     30 assertEquals(Infinity, m.f1(-Infinity));
     31 assertEquals(Infinity, m.f2(-Infinity));
     32 assertEquals(Infinity, m.f3(-Infinity));
     33 assertEquals(-Infinity, 1 / m.f1(0));
     34 assertEquals(-Infinity, 1 / m.f2(0));
     35 assertEquals(-Infinity, 1 / m.f3(0));
     36 assertEquals(-Infinity, m.f1(Infinity));
     37 assertEquals(-Infinity, m.f2(Infinity));
     38 assertEquals(-Infinity, m.f3(Infinity));
     39 for (var i = -2147483648; i < 2147483648; i += 3999777) {
     40   assertEquals(-i, m.f1(i));
     41   assertEquals(-i, m.f2(i));
     42   assertEquals(-i, m.f3(i));
     43 }
     44