|
1 /* |
|
2 * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved. |
|
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
|
4 * |
|
5 * This code is free software; you can redistribute it and/or modify it |
|
6 * under the terms of the GNU General Public License version 2 only, as |
|
7 * published by the Free Software Foundation. |
|
8 * |
|
9 * This code is distributed in the hope that it will be useful, but WITHOUT |
|
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
|
12 * version 2 for more details (a copy is included in the LICENSE file that |
|
13 * accompanied this code). |
|
14 * |
|
15 * You should have received a copy of the GNU General Public License version |
|
16 * 2 along with this work; if not, write to the Free Software Foundation, |
|
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
|
18 * |
|
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
|
20 * or visit www.oracle.com if you need additional information or have any |
|
21 * questions. |
|
22 */ |
|
23 |
|
24 /** |
|
25 * typedarray test. |
|
26 * |
|
27 * @test |
|
28 * @run |
|
29 */ |
|
30 |
|
31 |
|
32 var typeDefinitions = [ |
|
33 Int8Array, |
|
34 Uint8Array, |
|
35 Uint8ClampedArray, |
|
36 Int16Array, |
|
37 Uint16Array, |
|
38 Int32Array, |
|
39 Uint32Array, |
|
40 Float32Array, |
|
41 Float64Array, |
|
42 ]; |
|
43 |
|
44 var mem1 = new ArrayBuffer(1024); |
|
45 mem1.byteLength; |
|
46 mem1.slice(512); |
|
47 mem1.slice(512, 748); |
|
48 |
|
49 var size = 128; |
|
50 var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; |
|
51 var arr2 = [99, 89]; |
|
52 var partial = []; |
|
53 var all = []; |
|
54 |
|
55 typeDefinitions.forEach(function(arrayDef) { |
|
56 var p = arrayDef.prototype; |
|
57 var sub = []; |
|
58 sub.push(new arrayDef(mem1, arrayDef.BYTES_PER_ELEMENT, 3)); |
|
59 sub.push(new arrayDef(size)); |
|
60 sub.push(new arrayDef(arr)); |
|
61 //push the instances, they will be reused to do instance based construction |
|
62 partial.push({ |
|
63 instances:sub, |
|
64 type:arrayDef |
|
65 }); |
|
66 |
|
67 all.concat(all, sub); |
|
68 |
|
69 }); |
|
70 |
|
71 partial.forEach(function(inst) { |
|
72 // build new instances with TypeArray instance as parameter. |
|
73 partial.forEach(function(other) { |
|
74 other.instances.forEach(function(otherInstance) { |
|
75 var ii = new inst.type(otherInstance); |
|
76 all.push(ii); |
|
77 }); |
|
78 }) |
|
79 }); |
|
80 |
|
81 all.forEach(function(instance) { |
|
82 // cover instance props and functions |
|
83 var arr = Object.getOwnPropertyNames(instance); |
|
84 arr.forEach(function(p) { |
|
85 var val = instance[p]; |
|
86 if(!isNaN(p)){ |
|
87 val[p] = 99; |
|
88 } |
|
89 }); |
|
90 |
|
91 instance.set(instance, 0); |
|
92 instance.set(instance); |
|
93 instance.set(arr2); |
|
94 instance.subarray(5, 9); |
|
95 instance.subarray(5); |
|
96 }); |