1 // The type of arrayObject is polymorphic, but the access we do on it are not.
2 function nonPolymorphicUint8ClampedArraySetter(arrayObject, isTypedArray) {
4 for (var i = 0; i < arrayObject.length; ++i) {
8 for (var i = 0; i < arrayObject.length; ++i) {
13 noInline(nonPolymorphicUint8ClampedArraySetter);
15 function nonPolymorphicFloat64ArraySetter(arrayObject, isTypedArray) {
17 for (var i = 0; i < arrayObject.length; ++i) {
18 arrayObject[i] = i + 0.5;
21 for (var i = 0; i < arrayObject.length; ++i) {
22 arrayObject[i] = i + 0.5;
26 noInline(nonPolymorphicFloat64ArraySetter);
28 function nonPolymorphicUint8ClampedArrayGetter(arrayObject, isTypedArray) {
31 for (var i = 0; i < arrayObject.length; ++i) {
32 output += arrayObject[i];
35 for (var i = 0; i < arrayObject.length; ++i) {
36 output += arrayObject[i];
41 noInline(nonPolymorphicUint8ClampedArrayGetter);
43 function nonPolymorphicFloat64ArrayGetter(arrayObject, isTypedArray) {
46 for (var i = 0; i < arrayObject.length; ++i) {
47 output += arrayObject[i];
50 for (var i = 0; i < arrayObject.length; ++i) {
51 output += arrayObject[i];
56 noInline(nonPolymorphicFloat64ArrayGetter);
59 var uint8ClampedArray = new Uint8ClampedArray(1024);
60 var float64Array = new Float64Array(1024);
61 var regularArray = new Array(32);
64 for (var i = 0; i < 5000; ++i) {
65 nonPolymorphicUint8ClampedArraySetter(uint8ClampedArray, true);
66 nonPolymorphicUint8ClampedArraySetter(regularArray, false);
67 nonPolymorphicFloat64ArraySetter(float64Array, true);
68 nonPolymorphicFloat64ArraySetter(regularArray, false);
70 output += nonPolymorphicUint8ClampedArrayGetter(uint8ClampedArray, true);
71 output += nonPolymorphicUint8ClampedArrayGetter(regularArray, false);
72 output += nonPolymorphicFloat64ArrayGetter(float64Array, true);
73 output += nonPolymorphicFloat64ArrayGetter(regularArray, false);