| // 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. |
| |
| function is_little_endian() { |
| var buffer = new ArrayBuffer(4); |
| HEAP32 = new Int32Array(buffer); |
| HEAPU8 = new Uint8Array(buffer); |
| HEAP32[0] = 255; |
| if (HEAPU8[0] === 255 && HEAPU8[3] === 0) |
| return true; |
| else |
| return false; |
| } |
| |
| (function () { |
| var buffer = new ArrayBuffer(8); |
| var i32 = new Int32Array(buffer); |
| var f64 = new Float64Array(buffer); |
| |
| function foo() { |
| f64[0] = 1; |
| var x = f64[0]; |
| if (is_little_endian()) |
| return i32[0]; |
| else |
| return i32[1]; |
| } |
| assertEquals(0, foo()); |
| })(); |
| |
| (function () { |
| var buffer = new ArrayBuffer(8); |
| var i16 = new Int16Array(buffer); |
| var i32 = new Int32Array(buffer); |
| |
| function foo() { |
| i32[0] = 0x20001; |
| var x = i32[0]; |
| if (is_little_endian()) |
| return i16[0]; |
| else |
| return i16[1]; |
| } |
| assertEquals(1, foo()); |
| })(); |