1%# Copyright (c) 2021-2024 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 14function asIntOrDefault(n: Number | undefined, def: int): int { 15 if (__runtimeIsSameReference(n, undefined)) { 16 return def 17 } 18 return (n! as Object as Number) as number as int; 19} 20 21function normalizeIndex(idx: int, len: int): int { 22 if (idx < -len) { 23 return 0 24 } 25 if (idx < 0) { 26 return len + idx 27 } 28 if (idx > len) { 29 return len 30 } 31 return idx 32} 33