1
>
/*---------------------------------------------------------------------------------------------
uint.ts
2
>
* Copyright (c) Microsoft Corporation. All rights reserved.
3
>
* Licensed under the MIT License. See License.txt in the project root for license information.
4
>
*--------------------------------------------------------------------------------------------*/
5
>
6
>
export const enum Constants {
7
>
/**
8
>
* MAX SMI (SMall Integer) as defined in v8.
9
>
* one bit is lost for boxing/unboxing flag.
10
>
* one bit is lost for sign flag.
11
>
* See https://thibaultlaurens.github.io/javascript/2013/04/29/how-the-v8-engine-works/#tagged-values
12
>
*/
13
>
MAX_SAFE_SMALL_INTEGER = 1 << 30,
14
>
15
>
/**
16
>
* MIN SMI (SMall Integer) as defined in v8.
17
>
* one bit is lost for boxing/unboxing flag.
18
>
* one bit is lost for sign flag.
19
>
* See https://thibaultlaurens.github.io/javascript/2013/04/29/how-the-v8-engine-works/#tagged-values
20
>
*/
21
>
MIN_SAFE_SMALL_INTEGER = -(1 << 30),
22
>
23
>
/**
24
>
* Max unsigned integer that fits on 8 bits.
25
>
*/
26
>
MAX_UINT_8 = 255, // 2^8 - 1
27
>
28
>
/**
29
>
* Max unsigned integer that fits on 16 bits.
30
>
*/
31
>
MAX_UINT_16 = 65535, // 2^16 - 1
32
>
33
>
/**
34
>
* Max unsigned integer that fits on 32 bits.
35
>
*/
36
>
MAX_UINT_32 = 4294967295, // 2^32 - 1
37
>
38
>
UNICODE_SUPPLEMENTARY_PLANE_BEGIN = 0x010000
39
>
}
40
>
41
>
export function toUint8(v: number): number {
42
if (v < 0) {
43
return 0;