// Copyright 2019 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 TestF32StoreConvertsF64ToF32() { function Module(stdlib, foreign, heap) { 'use asm'; var f32 = new stdlib.Float32Array(heap); function f(a) { a = +a; f32[0] = f32[1] = a; } return f; } var buffer = new ArrayBuffer(0x10000); var f = Module(this, {}, buffer); assertDoesNotThrow(() => f(23.42)); var view = new Float32Array(buffer); assertEquals(Math.fround(23.42), view[0]); assertEquals(Math.fround(23.42), view[1]); assertTrue(%IsAsmWasmCode(Module)); })(); (function TestF64StoreConvertsF32ToF64() { function Module(stdlib, foreign, heap) { 'use asm'; var fround = stdlib.Math.fround; var f64 = new stdlib.Float64Array(heap); function f(a) { a = fround(a); f64[0] = f64[1] = a; } return f; } var buffer = new ArrayBuffer(0x10000); var f = Module(this, {}, buffer); assertDoesNotThrow(() => f(23.42)); var view = new Float64Array(buffer); assertEquals(Math.fround(23.42), view[0]); assertEquals(Math.fround(23.42), view[1]); assertTrue(%IsAsmWasmCode(Module)); })();