35 lines
1.0 KiB
JavaScript
35 lines
1.0 KiB
JavaScript
|
// 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]));
|