* Copyright (c) 2023 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
* @tc.name:async
* @tc.desc:test async function
* @tc.type: FUNC
* @tc.require: issueI5NO8G issueI8FBM3
*/
var array = [,];
function map() {
return array.map(x => x + 1);
}
array.__proto__.push(5);
var narr = map();
print(JSON.stringify(Object.getOwnPropertyDescriptor(narr, 0)));
print(narr[0], 6);
let arr=new Array(10);
map=arr.map(()=>{});
print(map.at(9));
var instance = [];
var Ctor = function() {
return instance;
};
var a = [1, 2, 3, 4, 5];
a.constructor = {};
a.constructor[Symbol.species] = Ctor;
var result = a.map(function() {});
print(result == instance);
{
const v1 = new BigInt64Array();
const v2 = [65537,-1,4096,-9007199254740990,-268435456,6,-29705,128,-6];
function f3() {
v2["pop"]();
return f3;
}
let a = v2.map(f3());
print(a.length)
}
{
const v0 = [0,1,2,3,4,5,6,7,8,9,10];
const mapEd = v0.map(() =>{
Object.defineProperty(Array.prototype, '8',{value: 42, writable :false });
return 8;
})
print(v0)
}
{
const arr1 = [1, 2, 3, '4', 5];
const result1 = arr1.map(item => typeof item === 'string' ? parseInt(item) : item * 2);
print(result1);
const arr2 = [1, 2, 3];
const result2 = arr2.map(num => Array(num).fill(num));
print(result2);
const arr3 = [1, 2, 3, 4];
const result3 = arr3.map(num => {
if (num === 3) return undefined;
return num;
}).filter(item => item !== undefined);
print(result3);
const arr4 = [1, 2, 3, 4, 5];
const result4 = arr4.map((num, index, array) => {
if (index === 2) array.push(6);
return num * 2;
});
print(result4);
}