MIRROR: javascript for 馃悳's, a tiny runtime with big ambitions
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at type-hints-typescript 156 lines 4.6 kB view raw
1#ifndef COMMON_H 2#define COMMON_H 3 4#include <stdint.h> 5#include <stdio.h> 6#include <stdlib.h> 7 8#define ANT_INTERNAL_SLOT_LIST(X) \ 9 X(SLOT_NONE) \ 10 X(SLOT_ASYNC) \ 11 X(SLOT_CODE) \ 12 X(SLOT_CODE_LEN) \ 13 X(SLOT_CFUNC) \ 14 X(SLOT_CORO) \ 15 X(SLOT_PROTO) \ 16 X(SLOT_FUNC_PROTO) \ 17 X(SLOT_ASYNC_PROTO) \ 18 X(SLOT_GENERATOR_PROTO) \ 19 X(SLOT_ASYNC_GENERATOR_PROTO) \ 20 X(SLOT_AUX) \ 21 X(SLOT_TARGET_FUNC) \ 22 X(SLOT_MODULE_CTX) \ 23 X(SLOT_MODULE_LOADING) \ 24 X(SLOT_MAP) \ 25 X(SLOT_SET) \ 26 X(SLOT_PRIMITIVE) \ 27 X(SLOT_PROXY_REF) \ 28 X(SLOT_BUILTIN) \ 29 X(SLOT_BRAND) \ 30 X(SLOT_PRIVATE_ELEMENTS) \ 31 X(SLOT_DATA) \ 32 X(SLOT_EVENT_MAX_LISTENERS) \ 33 X(SLOT_CTOR) \ 34 X(SLOT_FS_FLAGS) \ 35 X(SLOT_DEFAULT) \ 36 X(SLOT_CONSOLE_STDOUT) \ 37 X(SLOT_CONSOLE_STDERR) \ 38 X(SLOT_CONSOLE_COUNTS) \ 39 X(SLOT_CONSOLE_TIMERS) \ 40 X(SLOT_CONSOLE_GROUP_INDENT) \ 41 X(SLOT_CONSOLE_GROUP_LEVEL) \ 42 X(SLOT_ERROR_BRAND) \ 43 X(SLOT_ERR_TYPE) \ 44 X(SLOT_OBSERVABLE_SUBSCRIBER) \ 45 X(SLOT_SUBSCRIPTION_OBSERVER) \ 46 X(SLOT_SUBSCRIPTION_CLEANUP) \ 47 X(SLOT_STRICT_ARGS) \ 48 X(SLOT_ITER_STATE) \ 49 X(SLOT_ENTRIES) \ 50 X(SLOT_SETTLED) \ 51 X(SLOT_WT_ON_MESSAGE) \ 52 X(SLOT_WT_ONCE_MESSAGE) \ 53 X(SLOT_WT_ON_EXIT) \ 54 X(SLOT_WT_ONCE_EXIT) \ 55 X(SLOT_WT_PORT_TAG) \ 56 X(SLOT_WT_PORT_QUEUE) \ 57 X(SLOT_WT_PORT_HEAD) \ 58 X(SLOT_WT_PORT_PEER) \ 59 X(SLOT_WT_PORT_CLOSED) \ 60 X(SLOT_WT_PORT_STARTED) \ 61 X(SLOT_WT_PORT_ON_MESSAGE) \ 62 X(SLOT_WT_PORT_ONCE_MESSAGE) \ 63 X(SLOT_WT_PORT_PROTO) \ 64 X(SLOT_WT_ENV_STORE) \ 65 X(SLOT_NAPI_EXTERNAL_ID) \ 66 X(SLOT_NAPI_WRAP_ID) \ 67 X(SLOT_RS_PULL) \ 68 X(SLOT_RS_CANCEL) \ 69 X(SLOT_RS_SIZE) \ 70 X(SLOT_RS_CLOSED) \ 71 X(SLOT_WS_WRITE) \ 72 X(SLOT_WS_CLOSE) \ 73 X(SLOT_WS_ABORT) \ 74 X(SLOT_WS_READY) \ 75 X(SLOT_WS_SIGNAL) \ 76 X(SLOT_HEADERS_GUARD) \ 77 X(SLOT_REQUEST_HEADERS) \ 78 X(SLOT_REQUEST_SIGNAL) \ 79 X(SLOT_REQUEST_ABORT_REASON) \ 80 X(SLOT_REQUEST_BODY_STREAM) \ 81 X(SLOT_RESPONSE_HEADERS) \ 82 X(SLOT_RESPONSE_BODY_STREAM) \ 83 X(SLOT_PIPE_ABORT_LISTENER) \ 84 X(SLOT_REGEXP_FLAGS_MASK) \ 85 X(SLOT_REGEXP_FLAGS_STRING) \ 86 X(SLOT_REGEXP_NAMED_GROUPS) \ 87 X(SLOT_REGEXP_RESULT_GROUPS) \ 88 X(SLOT_REGEXP_GROUPS_CACHE) \ 89 X(SLOT_MATCHALL_RX) \ 90 X(SLOT_MATCHALL_STR) \ 91 X(SLOT_MATCHALL_DONE) 92 93#define ANT_DECLARE_INTERNAL_SLOT(name) name, 94typedef enum { 95 ANT_INTERNAL_SLOT_LIST(ANT_DECLARE_INTERNAL_SLOT) 96 SLOT_MAX = 255 97} internal_slot_t; 98#undef ANT_DECLARE_INTERNAL_SLOT 99 100typedef enum { 101 BUILTIN_NONE = 0, 102 BUILTIN_OBJECT = 1 103} builtin_fn_id_t; 104 105typedef enum { 106 BRAND_NONE = 0, 107 BRAND_BLOB, 108 BRAND_FILE, 109 BRAND_HEADERS, 110 BRAND_FORMDATA, 111 BRAND_URLSEARCHPARAMS, 112 BRAND_DATAVIEW, 113 BRAND_REQUEST, 114 BRAND_RESPONSE, 115 BRAND_READABLE_STREAM, 116 BRAND_READABLE_STREAM_READER, 117 BRAND_READABLE_STREAM_CONTROLLER, 118 BRAND_WRITABLE_STREAM, 119 BRAND_WRITABLE_STREAM_WRITER, 120 BRAND_WRITABLE_STREAM_CONTROLLER, 121 BRAND_TRANSFORM_STREAM, 122 BRAND_TRANSFORM_STREAM_CONTROLLER, 123 BRAND_WASM_MODULE, 124 BRAND_WASM_INSTANCE, 125 BRAND_WASM_GLOBAL, 126 BRAND_WASM_MEMORY, 127 BRAND_WASM_TABLE, 128 BRAND_WASM_TAG, 129 BRAND_WASM_EXCEPTION, 130 BRAND_DATE, 131 BRAND_MODULE_NAMESPACE, 132 BRAND_ABORT_SIGNAL, 133 BRAND_EVENTEMITTER, 134 BRAND_EVENTTARGET, 135 BRAND_DISPOSABLE_STACK, 136 BRAND_ASYNC_DISPOSABLE_STACK, 137 BRAND_TEMPLATE_OBJECT 138} object_brand_id_t; 139 140static inline void *mantissa_chk(void *p, const char *func) { 141 if (!p || ((uintptr_t)p >> 47) == 0) goto ok; 142 143 fprintf( 144 stderr, 145 "FATAL: %s returned pointer %p outside 47-bit NaN-boxing range\n" 146 "Please report this issue with your OS/architecture details.\n", func, p 147 ); 148 149 abort(); 150 ok: return p; 151} 152 153#define ant_calloc(size) mantissa_chk(calloc(1, size), "calloc") 154#define ant_realloc(ptr, size) mantissa_chk(realloc(ptr, size), "realloc") 155 156#endif