| // Copyright 2020 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: --wasm-max-mem-pages=65536 |
| |
| // Currently, the only way to create a huge TypedArray is via a |
| // WebAssembly Memory object. |
| |
| const kNumPages = 65536; |
| const kWasmPageSize = 65536; |
| const kBytes = kNumPages * kWasmPageSize; |
| const kArrayLength = kBytes - 1; |
| assertEquals(2 ** 32, kBytes); |
| assertEquals(0xFFFFFFFF, kArrayLength); |
| |
| var mem = new WebAssembly.Memory({ initial: kNumPages }); |
| var buffer = mem.buffer; |
| var array = new Uint8Array(buffer, 0, kArrayLength); |
| |
| assertEquals(kBytes, buffer.byteLength); |
| assertEquals(kArrayLength, array.length); |
| assertEquals(undefined, array[-1]); |
| assertEquals(0, array[0]); |
| assertEquals(0, array[kArrayLength - 1]); |
| assertEquals(undefined, array[kArrayLength]); |