// Copyright 2018 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 Module(global, env, buffer) { "use asm"; var HEAPF64 = new global.Float64Array(buffer); var HEAPF32 = new global.Float32Array(buffer); var Math_fround = global.Math.fround; function main_d_f() { HEAPF64[0] = Math_fround(+HEAPF64[0]); } function main_d_fq() { HEAPF64[1] = HEAPF32[4096]; } function main_f_dq() { HEAPF32[4] = HEAPF64[4096]; } return {main_d_f: main_d_f, main_d_fq: main_d_fq, main_f_dq: main_f_dq}; }; let buffer = new ArrayBuffer(4096); let module = Module(this, undefined, buffer); let view64 = new Float64Array(buffer); let view32 = new Float32Array(buffer); assertEquals(view64[0] = 2.3, view64[0]); module.main_d_f(); module.main_d_fq(); module.main_f_dq(); assertTrue(%IsAsmWasmCode(Module)); assertEquals(Math.fround(2.3), view64[0]); assertTrue(isNaN(view64[1])); assertTrue(isNaN(view32[4]));