// Copyright 2014 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 Module(stdlib, foreign, heap) { "use asm"; function f1(i) { i = +i; return +(i * -1); } function f2(i) { i = +i; return +(-1 * i); } function f3(i) { i = +i; return +(-i); } return { f1: f1, f2: f2, f3: f3 }; } var m = Module(this, {}, new ArrayBuffer(64 * 1024)); assertEquals(NaN, m.f1(NaN)); assertEquals(NaN, m.f2(NaN)); assertEquals(NaN, m.f3(NaN)); assertEquals(Infinity, 1 / m.f1(-0)); assertEquals(Infinity, 1 / m.f2(-0)); assertEquals(Infinity, 1 / m.f3(-0)); assertEquals(Infinity, m.f1(-Infinity)); assertEquals(Infinity, m.f2(-Infinity)); assertEquals(Infinity, m.f3(-Infinity)); assertEquals(-Infinity, 1 / m.f1(0)); assertEquals(-Infinity, 1 / m.f2(0)); assertEquals(-Infinity, 1 / m.f3(0)); assertEquals(-Infinity, m.f1(Infinity)); assertEquals(-Infinity, m.f2(Infinity)); assertEquals(-Infinity, m.f3(Infinity)); for (var i = -2147483648; i < 2147483648; i += 3999777) { assertEquals(-i, m.f1(i)); assertEquals(-i, m.f2(i)); assertEquals(-i, m.f3(i)); }