// Copyright 2017 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. // Flags: --allow-natives-syntax (function TestMathCeilReturningFloatish() { function Module(stdlib) { "use asm"; var ceil = stdlib.Math.ceil; var fround = stdlib.Math.fround; function f(a) { a = fround(a); return ceil(a); } return f; } var f = Module(this); assertEquals(3, f(2.2)); assertFalse(%IsAsmWasmCode(Module)); })(); (function TestMathFloorReturningFloatish() { function Module(stdlib) { "use asm"; var floor = stdlib.Math.floor; var fround = stdlib.Math.fround; function f(a) { a = fround(a); return floor(a); } return f; } var f = Module(this); assertEquals(2, f(2.2)); assertFalse(%IsAsmWasmCode(Module)); })(); (function TestMathSqrtReturningFloatish() { function Module(stdlib) { "use asm"; var sqrt = stdlib.Math.sqrt; var fround = stdlib.Math.fround; function f(a) { a = fround(a); return sqrt(a); } return f; } var f = Module(this); assertEquals(Math.sqrt(Math.fround(2.2)), f(2.2)); assertFalse(%IsAsmWasmCode(Module)); })(); (function TestMathAbsReturningFloatish() { function Module(stdlib) { "use asm"; var abs = stdlib.Math.abs; var fround = stdlib.Math.fround; function f(a) { a = fround(a); return abs(a); } return f; } var f = Module(this); assertEquals(Math.fround(2.2), f(-2.2)); assertFalse(%IsAsmWasmCode(Module)); })(); (function TestMathMinReturningFloat() { function Module(stdlib) { "use asm"; var min = stdlib.Math.min; var fround = stdlib.Math.fround; function f(a) { a = fround(a); return min(a, a); } return f; } var f = Module(this); assertEquals(Math.fround(2.2), f(2.2)); assertTrue(%IsAsmWasmCode(Module)); })(); (function TestMathMaxReturningFloat() { function Module(stdlib) { "use asm"; var max = stdlib.Math.max; var fround = stdlib.Math.fround; function f(a) { a = fround(a); return max(a, a); } return f; } var f = Module(this); assertEquals(Math.fround(2.2), f(2.2)); assertTrue(%IsAsmWasmCode(Module)); })();