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