support normal arrays

This commit is contained in:
dcode
2019-05-25 01:14:26 +02:00
parent 9620f18249
commit c34ed66fd9
42 changed files with 831 additions and 468 deletions

View File

@ -25,48 +25,50 @@ export class Typeinfo {
export const enum TypeinfoFlags {
/** No specific flags. */
NONE = 0,
/** Type is an `ArrayBufferView`. */
ARRAYBUFFERVIEW = 1 << 0,
/** Type is an `Array`. */
ARRAY = 1 << 0,
ARRAY = 1 << 1,
/** Type is a `Set`. */
SET = 1 << 1,
SET = 1 << 2,
/** Type is a `Map`. */
MAP = 1 << 2,
MAP = 1 << 3,
/** Type is inherently acyclic. */
ACYCLIC = 1 << 3,
ACYCLIC = 1 << 4,
/** Value alignment of 1 byte. */
VALUE_ALIGN_0 = 1 << 4,
VALUE_ALIGN_0 = 1 << 5,
/** Value alignment of 2 bytes. */
VALUE_ALIGN_1 = 1 << 5,
VALUE_ALIGN_1 = 1 << 6,
/** Value alignment of 4 bytes. */
VALUE_ALIGN_2 = 1 << 6,
VALUE_ALIGN_2 = 1 << 7,
/** Value alignment of 8 bytes. */
VALUE_ALIGN_3 = 1 << 7,
VALUE_ALIGN_3 = 1 << 8,
/** Value alignment of 16 bytes. */
VALUE_ALIGN_4 = 1 << 8,
VALUE_ALIGN_4 = 1 << 9,
/** Value is a signed type. */
VALUE_SIGNED = 1 << 9,
VALUE_SIGNED = 1 << 10,
/** Value is a float type. */
VALUE_FLOAT = 1 << 10,
VALUE_FLOAT = 1 << 11,
/** Value type is nullable. */
VALUE_NULLABLE = 1 << 11,
VALUE_NULLABLE = 1 << 12,
/** Value type is managed. */
VALUE_MANAGED = 1 << 12,
VALUE_MANAGED = 1 << 13,
/** Key alignment of 1 byte. */
KEY_ALIGN_0 = 1 << 13,
KEY_ALIGN_0 = 1 << 14,
/** Key alignment of 2 bytes. */
KEY_ALIGN_1 = 1 << 14,
KEY_ALIGN_1 = 1 << 15,
/** Key alignment of 4 bytes. */
KEY_ALIGN_2 = 1 << 15,
KEY_ALIGN_2 = 1 << 16,
/** Key alignment of 8 bytes. */
KEY_ALIGN_3 = 1 << 16,
KEY_ALIGN_3 = 1 << 17,
/** Key alignment of 16 bytes. */
KEY_ALIGN_4 = 1 << 17,
KEY_ALIGN_4 = 1 << 18,
/** Value is a signed type. */
KEY_SIGNED = 1 << 18,
KEY_SIGNED = 1 << 19,
/** Value is a float type. */
KEY_FLOAT = 1 << 19,
KEY_FLOAT = 1 << 20,
/** Key type is nullable. */
KEY_NULLABLE = 1 << 20,
KEY_NULLABLE = 1 << 21,
/** Key type is managed. */
KEY_MANAGED = 1 << 21
KEY_MANAGED = 1 << 22
}