1# Copyright (c) 2025 Huawei Device Co., Ltd. 2# Licensed under the Apache License, Version 2.0 (the "License"); 3# you may not use this file except in compliance with the License. 4# You may obtain a copy of the License at 5# 6# http://www.apache.org/licenses/LICENSE-2.0 7# 8# Unless required by applicable law or agreed to in writing, software 9# distributed under the License is distributed on an "AS IS" BASIS, 10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11# See the License for the specific language governing permissions and 12# limitations under the License. 13 14======== Testing fromIndex ======== 15---- Testing Array.prototype.indexOf ---- 16Result with numberIndices: 4,4,4,4,1,1,1,1,1,-1,-1,-1,-1,-1,-1,1,1,1 17Result with nonNumberIndices: 1,1,1,1,1,1,2,2,3,3,1 18OK: TypeError raised for bigint index 19OK: TypeError raised for object index 20---- Testing Array.prototype.lastIndexOf ---- 21Result with numberIndices: 4,4,4,4,-1,-1,-1,-1,-1,4,4,4,4,4,4,-1,-1,-1 22Result with nonNumberIndices: -1,-1,1,1,-1,-1,2,2,3,3,-1 23OK: TypeError raised for bigint index 24OK: TypeError raised for object index 25---- Testing Array.prototype.includes ---- 26Result with numberIndices: true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,true,true,true 27Result with nonNumberIndices: true,true,true,true,true,true,true,true,true,true,true 28OK: TypeError raised for bigint index 29OK: TypeError raised for object index 30======== Testing comparision ======== 31[0] Target = 1 (number): indexOf => 0 lastIndexOf => 1 includes => true 32[1] Target = 1 (number): indexOf => 0 lastIndexOf => 1 includes => true 33[2] Target = -1 (number): indexOf => 2 lastIndexOf => 2 includes => true 34[3] Target = 0 (number): indexOf => 3 lastIndexOf => 5 includes => true 35[4] Target = 0 (number): indexOf => 3 lastIndexOf => 5 includes => true 36[5] Target = 0 (number): indexOf => 3 lastIndexOf => 5 includes => true 37[6] Target = Infinity (number): indexOf => 6 lastIndexOf => 6 includes => true 38[7] Target = -Infinity (number): indexOf => 7 lastIndexOf => 7 includes => true 39[8] Target = NaN (number): indexOf => -1 lastIndexOf => -1 includes => true 40[9] Target = NaN (number): indexOf => -1 lastIndexOf => -1 includes => true 41[10] Target = true (boolean): indexOf => 10 lastIndexOf => 10 includes => true 42[11] Target = false (boolean): indexOf => 11 lastIndexOf => 11 includes => true 43[12] Target = null (object): indexOf => 12 lastIndexOf => 12 includes => true 44[13] Target = undefined (undefined): indexOf => -1 lastIndexOf => -1 includes => true 45[14] Target = 1 (string): indexOf => 14 lastIndexOf => 14 includes => true 46[15] Target = 0 (string): indexOf => 15 lastIndexOf => 15 includes => true 47[16] Target = 1.0 (string): indexOf => 16 lastIndexOf => 16 includes => true 48[17] Target = 0.0 (string): indexOf => 17 lastIndexOf => 17 includes => true 49[18] Target = 1 (bigint): indexOf => 18 lastIndexOf => 18 includes => true 50[19] Target = 0 (bigint): indexOf => 19 lastIndexOf => 19 includes => true 51[20] Target = [object Object] (object): indexOf => 20 lastIndexOf => 20 includes => true 52[21] Target = 0 (object): indexOf => 21 lastIndexOf => 21 includes => true 53[22] Target = NaN (number): indexOf => -1 lastIndexOf => -1 includes => true 54[23] Target = [object Object] (object): indexOf => -1 lastIndexOf => -1 includes => false 55[24] Target = 0 (object): indexOf => -1 lastIndexOf => -1 includes => false 56[25] Target = 0 (object): indexOf => -1 lastIndexOf => -1 includes => false 57[26] Target = 1 (object): indexOf => -1 lastIndexOf => -1 includes => false 58Index = undefined: indexOf => 12 lastIndexOf => 12 includes => true 59======== Testing with non-generic ElementsKind ======== 60ElementsKind of intArr = 2 61[intArr] Target = 1 (number): indexOf => 10 lastIndexOf => 10 includes => true 62[intArr] Target = 1 (number): indexOf => 10 lastIndexOf => 10 includes => true 63[intArr] Target = 1.125 (number): indexOf => -1 lastIndexOf => -1 includes => false 64[intArr] Target = 1 (string): indexOf => -1 lastIndexOf => -1 includes => false 65[intArr] Target = 1 (bigint): indexOf => -1 lastIndexOf => -1 includes => false 66ElementsKind of doubleArr = 6 67[doubleArr] Target = 1 (number): indexOf => 10 lastIndexOf => 10 includes => true 68[doubleArr] Target = 1 (number): indexOf => 10 lastIndexOf => 10 includes => true 69[doubleArr] Target = 1.125 (number): indexOf => 8 lastIndexOf => 8 includes => true 70[doubleArr] Target = 1 (string): indexOf => -1 lastIndexOf => -1 includes => false 71[doubleArr] Target = 1 (bigint): indexOf => -1 lastIndexOf => -1 includes => false 72ElementsKind of strArr = 8 73[strArr] Target = 1 (number): indexOf => -1 lastIndexOf => -1 includes => false 74[strArr] Target = 1 (number): indexOf => -1 lastIndexOf => -1 includes => false 75[strArr] Target = 1.125 (number): indexOf => -1 lastIndexOf => -1 includes => false 76[strArr] Target = 1 (string): indexOf => 10 lastIndexOf => 10 includes => true 77[strArr] Target = 1 (bigint): indexOf => -1 lastIndexOf => -1 includes => false 78ElementsKind of bigintArr = 16 79[bigintArr] Target = 1 (number): indexOf => -1 lastIndexOf => -1 includes => false 80[bigintArr] Target = 1 (number): indexOf => -1 lastIndexOf => -1 includes => false 81[bigintArr] Target = 1.125 (number): indexOf => -1 lastIndexOf => -1 includes => false 82[bigintArr] Target = 1 (string): indexOf => -1 lastIndexOf => -1 includes => false 83[bigintArr] Target = 1 (bigint): indexOf => 10 lastIndexOf => 10 includes => true 84