• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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