1/* 2 * Copyright (c) 2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15declare function print(arg:any):string; 16{ 17 // test new builtin array 18 let array1 = new Array(); 19 let array2 = new Array(1); 20 21 print(array1.length); 22 print(array2.length); 23 24 // test call builtin constructor 25 print(Array().length); // c++ path 26 print(Array(1).length); // c++ path 27 28 try { 29 let array3 = new Array(-1); 30 print(array3.length); 31 } catch (e) { 32 print("throw exception"); 33 } 34 35 try { 36 let array3 = new Array(2.1); 37 print(array3.length); 38 } catch (e) { 39 print("throw exception"); 40 } 41 42 try { 43 let array3 = new Array(4294967296); 44 print(array3.length); 45 } catch (e) { 46 print("throw exception"); 47 } 48}