mirror of
				https://github.com/tc39/test262.git
				synced 2025-10-31 03:34:08 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			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]));
 |