blob: 1fc7518c13014184248d63c453bcf578165ea703 [file] [log] [blame]
Emily Bernierd0a1eb72015-03-24 16:35:39 -04001// Copyright 2015 the V8 project authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4//
5// Flags: --allow-natives-syntax
6
7function TestConstructor(c) {
8 var a = new c(-0);
9 assertSame(Infinity, 1 / a.length);
10 assertSame(Infinity, 1 / a.byteLength);
11
12 var ab = new ArrayBuffer(-0);
13 assertSame(Infinity, 1 / ab.byteLength);
14
15 var a1 = new c(ab, -0, -0);
16 assertSame(Infinity, 1 / a1.length);
17 assertSame(Infinity, 1 / a1.byteLength);
18 assertSame(Infinity, 1 / a1.byteOffset);
19}
20
21var constructors =
22 [ Uint8Array, Int8Array, Uint8ClampedArray,
23 Uint16Array, Int16Array,
24 Uint32Array, Int32Array,
25 Float32Array, Float64Array ];
26for (var i = 0; i < constructors.length; i++) {
27 TestConstructor(constructors[i]);
28}
29
30
31function TestOptimizedCode() {
32 var a = new Uint8Array(-0);
33 assertSame(Infinity, 1 / a.length);
34 assertSame(Infinity, 1 / a.byteLength);
35
36 var ab = new ArrayBuffer(-0);
37 assertSame(Infinity, 1 / ab.byteLength);
38
39 var a1 = new Uint8Array(ab, -0, -0);
40 assertSame(Infinity, 1 / a1.length);
41 assertSame(Infinity, 1 / a1.byteLength);
42 assertSame(Infinity, 1 / a1.byteOffset);
43}
44
45%OptimizeFunctionOnNextCall(Uint8Array);
46for (var i = 0; i < 1000; i++) {
47 TestOptimizedCode();
48}