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