rm integer atoms
This commit is contained in:
8
qop.c
8
qop.c
@@ -450,10 +450,10 @@ static const JSCFunctionListEntry js_qop_writer_funcs[] = {
|
||||
static const JSCFunctionListEntry js_qop_funcs[] = {
|
||||
MIST_FUNC_DEF(qop, open, 1),
|
||||
MIST_FUNC_DEF(qop, write, 1),
|
||||
JS_PROP_INT32_DEF("FLAG_NONE", QOP_FLAG_NONE, JS_PROP_ENUMERABLE),
|
||||
JS_PROP_INT32_DEF("FLAG_COMPRESSED_ZSTD", QOP_FLAG_COMPRESSED_ZSTD, JS_PROP_ENUMERABLE),
|
||||
JS_PROP_INT32_DEF("FLAG_COMPRESSED_DEFLATE", QOP_FLAG_COMPRESSED_DEFLATE, JS_PROP_ENUMERABLE),
|
||||
JS_PROP_INT32_DEF("FLAG_ENCRYPTED", QOP_FLAG_ENCRYPTED, JS_PROP_ENUMERABLE),
|
||||
JS_PROP_INT32_DEF("FLAG_NONE", QOP_FLAG_NONE, 0),
|
||||
JS_PROP_INT32_DEF("FLAG_COMPRESSED_ZSTD", QOP_FLAG_COMPRESSED_ZSTD, 0),
|
||||
JS_PROP_INT32_DEF("FLAG_COMPRESSED_DEFLATE", QOP_FLAG_COMPRESSED_DEFLATE, 0),
|
||||
JS_PROP_INT32_DEF("FLAG_ENCRYPTED", QOP_FLAG_ENCRYPTED, 0),
|
||||
};
|
||||
|
||||
JSValue js_qop_use(JSContext *js) {
|
||||
|
||||
@@ -36,7 +36,7 @@ void cell_trace_sethook(cell_hook);
|
||||
// Macros to help with creating scripts
|
||||
#define MIST_CFUNC_DEF(name, length, func1, props) { name, props, JS_DEF_CFUNC, 0, .u = { .func = { length, JS_CFUNC_generic, { .generic = func1 } } } }
|
||||
|
||||
#define MIST_FUNC_DEF(TYPE, FN, LEN) MIST_CFUNC_DEF(#FN, LEN, js_##TYPE##_##FN, JS_PROP_C_W_E)
|
||||
#define MIST_FUNC_DEF(TYPE, FN, LEN) MIST_CFUNC_DEF(#FN, LEN, js_##TYPE##_##FN, 0)
|
||||
#define PROTO_FUNC_DEF(TYPE, FN, LEN) MIST_CFUNC_DEF(#FN, LEN, js_##TYPE##_##FN, 0)
|
||||
|
||||
#define JS_SETSIG JSContext *js, JSValue self, JSValue val
|
||||
|
||||
@@ -75,7 +75,6 @@ DEF( push_false, 1, 0, 1, none)
|
||||
DEF( push_true, 1, 0, 1, none)
|
||||
DEF( object, 1, 0, 1, none)
|
||||
DEF( special_object, 2, 0, 1, u8) /* only used at the start of a function */
|
||||
DEF( rest, 3, 0, 1, u16) /* only used at the start of a function */
|
||||
|
||||
DEF( drop, 1, 1, 0, none) /* a -> */
|
||||
DEF( nip, 1, 2, 1, none) /* a b -> b */
|
||||
|
||||
2404
source/quickjs.c
2404
source/quickjs.c
File diff suppressed because it is too large
Load Diff
117
source/quickjs.h
117
source/quickjs.h
@@ -272,32 +272,12 @@ static inline JS_BOOL JS_VALUE_IS_NAN(JSValue v)
|
||||
#define JS_EXCEPTION JS_MKVAL(JS_TAG_EXCEPTION, 0)
|
||||
#define JS_UNINITIALIZED JS_MKVAL(JS_TAG_UNINITIALIZED, 0)
|
||||
|
||||
/* flags for object properties */
|
||||
#define JS_PROP_CONFIGURABLE (1 << 0)
|
||||
#define JS_PROP_WRITABLE (1 << 1)
|
||||
#define JS_PROP_ENUMERABLE (1 << 2)
|
||||
#define JS_PROP_C_W_E (JS_PROP_CONFIGURABLE | JS_PROP_WRITABLE | JS_PROP_ENUMERABLE)
|
||||
#define JS_PROP_LENGTH (1 << 3) /* used internally in Arrays */
|
||||
#define JS_PROP_TMASK (3 << 4) /* mask for NORMAL, GETSET, VARREF, AUTOINIT */
|
||||
/* flags for object properties - simplified model:
|
||||
- No per-property writable/configurable (use stone() for immutability)
|
||||
- Text keys are enumerable, object keys are not */
|
||||
#define JS_PROP_TMASK (3 << 4) /* mask for NORMAL, VARREF */
|
||||
#define JS_PROP_NORMAL (0 << 4)
|
||||
#define JS_PROP_VARREF (2 << 4) /* used internally */
|
||||
|
||||
/* flags for JS_DefineProperty */
|
||||
#define JS_PROP_HAS_SHIFT 8
|
||||
#define JS_PROP_HAS_CONFIGURABLE (1 << 8)
|
||||
#define JS_PROP_HAS_WRITABLE (1 << 9)
|
||||
#define JS_PROP_HAS_ENUMERABLE (1 << 10)
|
||||
#define JS_PROP_HAS_VALUE (1 << 13)
|
||||
|
||||
/* throw an exception if false would be returned
|
||||
(JS_DefineProperty/JS_SetProperty) */
|
||||
#define JS_PROP_THROW (1 << 14)
|
||||
/* throw an exception if false would be returned in strict mode
|
||||
(JS_SetProperty) */
|
||||
#define JS_PROP_THROW_STRICT (1 << 15)
|
||||
|
||||
#define JS_PROP_NO_ADD (1 << 16) /* internal use */
|
||||
#define JS_PROP_NO_EXOTIC (1 << 17) /* internal use */
|
||||
#define JS_PROP_VARREF (2 << 4) /* used internally for closures */
|
||||
|
||||
#ifndef JS_DEFAULT_STACK_SIZE
|
||||
#define JS_DEFAULT_STACK_SIZE (1024 * 1024)
|
||||
@@ -370,12 +350,9 @@ JSValue JS_GetClassProto(JSContext *ctx, JSClassID class_id);
|
||||
JSContext *JS_NewContextRaw(JSRuntime *rt);
|
||||
void JS_AddIntrinsicBaseObjects(JSContext *ctx);
|
||||
void JS_AddIntrinsicEval(JSContext *ctx);
|
||||
void JS_AddIntrinsicStringNormalize(JSContext *ctx);
|
||||
void JS_AddIntrinsicRegExpCompiler(JSContext *ctx);
|
||||
void JS_AddIntrinsicRegExp(JSContext *ctx);
|
||||
void JS_AddIntrinsicJSON(JSContext *ctx);
|
||||
void JS_AddIntrinsicProxy(JSContext *ctx);
|
||||
void JS_AddIntrinsicMapSet(JSContext *ctx);
|
||||
|
||||
JSValue js_string_codePointRange(JSContext *ctx, JSValueConst this_val,
|
||||
int argc, JSValueConst *argv);
|
||||
@@ -439,13 +416,6 @@ typedef struct JSPropertyEnum {
|
||||
JSAtom atom;
|
||||
} JSPropertyEnum;
|
||||
|
||||
typedef struct JSPropertyDescriptor {
|
||||
int flags;
|
||||
JSValue value;
|
||||
JSValue getter;
|
||||
JSValue setter;
|
||||
} JSPropertyDescriptor;
|
||||
|
||||
typedef void JSClassFinalizer(JSRuntime *rt, JSValue val);
|
||||
typedef void JSClassGCMark(JSRuntime *rt, JSValueConst val,
|
||||
JS_MarkFunc *mark_func);
|
||||
@@ -569,6 +539,11 @@ static inline JS_BOOL JS_IsObject(JSValueConst v)
|
||||
{
|
||||
return JS_VALUE_GET_TAG(v) == JS_TAG_OBJECT;
|
||||
}
|
||||
int JS_IsArray(JSContext *ctx, JSValueConst val);
|
||||
JS_BOOL JS_IsFunction(JSContext* ctx, JSValueConst val);
|
||||
|
||||
// Fundamental
|
||||
int JS_GetLength(JSContext *ctx, JSValueConst obj, int64_t *pres);
|
||||
|
||||
JSValue JS_Throw(JSContext *ctx, JSValue obj);
|
||||
void JS_SetUncatchableException(JSContext *ctx, JS_BOOL flag);
|
||||
@@ -662,12 +637,8 @@ JSValue JS_NewObjectClass(JSContext *ctx, int class_id);
|
||||
JSValue JS_NewObjectProto(JSContext *ctx, JSValueConst proto);
|
||||
JSValue JS_NewObject(JSContext *ctx);
|
||||
|
||||
JS_BOOL JS_IsFunction(JSContext* ctx, JSValueConst val);
|
||||
|
||||
JSValue JS_NewArray(JSContext *ctx);
|
||||
JSValue JS_NewArrayLen(JSContext *ctx, uint32_t len);
|
||||
int JS_IsArray(JSContext *ctx, JSValueConst val);
|
||||
int JS_GetLength(JSContext *ctx, JSValueConst obj, int64_t *pres);
|
||||
JSValue JS_ArrayPush(JSContext *ctx, JSValueConst obj, JSValueConst val);
|
||||
JSValue JS_ArrayPop(JSContext *ctx, JSValueConst obj);
|
||||
|
||||
@@ -679,51 +650,35 @@ static js_force_inline JSValue JS_GetProperty(JSContext *ctx, JSValueConst this_
|
||||
{
|
||||
return JS_GetPropertyInternal(ctx, this_obj, prop, this_obj, 0);
|
||||
}
|
||||
JSValue JS_GetPropertyStr(JSContext *ctx, JSValueConst this_obj,
|
||||
const char *prop);
|
||||
JSValue JS_GetPropertyUint32(JSContext *ctx, JSValueConst this_obj,
|
||||
uint32_t idx);
|
||||
|
||||
int JS_SetPropertyInternal(JSContext *ctx, JSValueConst obj,
|
||||
JSAtom prop, JSValue val, JSValueConst this_obj,
|
||||
int flags);
|
||||
static inline int JS_SetProperty(JSContext *ctx, JSValueConst this_obj,
|
||||
JSAtom prop, JSValue val)
|
||||
{
|
||||
return JS_SetPropertyInternal(ctx, this_obj, prop, val, this_obj, JS_PROP_THROW);
|
||||
}
|
||||
int JS_SetPropertyUint32(JSContext *ctx, JSValueConst this_obj,
|
||||
uint32_t idx, JSValue val);
|
||||
int JS_SetPropertyInt64(JSContext *ctx, JSValueConst this_obj,
|
||||
int64_t idx, JSValue val);
|
||||
int JS_SetPropertyStr(JSContext *ctx, JSValueConst this_obj,
|
||||
const char *prop, JSValue val);
|
||||
|
||||
/* Property access with JSValue key (supports object keys via symbols) */
|
||||
// For records
|
||||
JSValue JS_GetPropertyStr(JSContext *ctx, JSValueConst this_obj, const char *prop);
|
||||
int JS_SetPropertyStr(JSContext *ctx, JSValueConst this_obj, const char *prop, JSValue val);
|
||||
int JS_SetProperty(JSContext *ctx, JSValueConst this_obj, JSAtom prop, JSValue val);
|
||||
JSValue JS_GetPropertyKey(JSContext *ctx, JSValueConst this_obj, JSValueConst key);
|
||||
int JS_SetPropertyKey(JSContext *ctx, JSValueConst this_obj, JSValueConst key, JSValue val);
|
||||
|
||||
// Must be an array
|
||||
JSValue JS_GetPropertyNumber(JSContext *ctx, JSValueConst this_obj, int idx);
|
||||
JSValue JS_GetPropertyUint32(JSContext *ctx, JSValueConst this_obj, uint32_t idx);
|
||||
int JS_SetPropertyUint32(JSContext *ctx, JSValueConst this_obj, uint32_t idx, JSValue val);
|
||||
int JS_SetPropertyInt64(JSContext *ctx, JSValueConst this_obj, int64_t idx, JSValue val);
|
||||
|
||||
int JS_HasProperty(JSContext *ctx, JSValueConst this_obj, JSAtom prop);
|
||||
int JS_IsExtensible(JSContext *ctx, JSValueConst obj);
|
||||
int JS_PreventExtensions(JSContext *ctx, JSValueConst obj);
|
||||
int JS_DeleteProperty(JSContext *ctx, JSValueConst obj, JSAtom prop, int flags);
|
||||
int JS_SetPrototype(JSContext *ctx, JSValueConst obj, JSValueConst proto_val);
|
||||
int JS_DeleteProperty(JSContext *ctx, JSValueConst obj, JSAtom prop);
|
||||
JSValue JS_GetPrototype(JSContext *ctx, JSValueConst val);
|
||||
|
||||
/* Get Own Property Names flags */
|
||||
#define JS_GPN_STRING_MASK (1 << 0)
|
||||
#define JS_GPN_SYMBOL_MASK (1 << 1)
|
||||
#define JS_GPN_PRIVATE_MASK (1 << 2)
|
||||
/* only include the enumerable properties */
|
||||
#define JS_GPN_ENUM_ONLY (1 << 4)
|
||||
/* set theJSPropertyEnum.is_enumerable field */
|
||||
#define JS_GPN_SET_ENUM (1 << 5)
|
||||
|
||||
int JS_GetOwnPropertyNames(JSContext *ctx, JSPropertyEnum **ptab,
|
||||
uint32_t *plen, JSValueConst obj, int flags);
|
||||
void JS_FreePropertyEnum(JSContext *ctx, JSPropertyEnum *tab,
|
||||
uint32_t len);
|
||||
int JS_GetOwnProperty(JSContext *ctx, JSPropertyDescriptor *desc,
|
||||
JSValueConst obj, JSAtom prop);
|
||||
|
||||
JSValue JS_Call(JSContext *ctx, JSValueConst func_obj, JSValueConst this_obj,
|
||||
int argc, JSValueConst *argv);
|
||||
@@ -737,15 +692,6 @@ JSValue JS_EvalThis(JSContext *ctx, JSValueConst this_obj,
|
||||
const char *input, size_t input_len,
|
||||
const char *filename, int eval_flags);
|
||||
JSValue JS_GetGlobalObject(JSContext *ctx);
|
||||
int JS_DefineProperty(JSContext *ctx, JSValueConst this_obj,
|
||||
JSAtom prop, JSValueConst val,
|
||||
JSValueConst getter, JSValueConst setter, int flags);
|
||||
int JS_DefinePropertyValue(JSContext *ctx, JSValueConst this_obj,
|
||||
JSAtom prop, JSValue val, int flags);
|
||||
int JS_DefinePropertyValueUint32(JSContext *ctx, JSValueConst this_obj,
|
||||
uint32_t idx, JSValue val, int flags);
|
||||
int JS_DefinePropertyValueStr(JSContext *ctx, JSValueConst this_obj,
|
||||
const char *prop, JSValue val, int flags);
|
||||
void JS_SetOpaque(JSValue obj, void *opaque);
|
||||
void *JS_GetOpaque(JSValueConst obj, JSClassID class_id);
|
||||
void *JS_GetOpaque2(JSContext *ctx, JSValueConst obj, JSClassID class_id);
|
||||
@@ -797,11 +743,6 @@ typedef enum JSCFunctionEnum {
|
||||
JS_CFUNC_generic_magic,
|
||||
JS_CFUNC_f_f,
|
||||
JS_CFUNC_f_f_f,
|
||||
JS_CFUNC_getter,
|
||||
JS_CFUNC_setter,
|
||||
JS_CFUNC_getter_magic,
|
||||
JS_CFUNC_setter_magic,
|
||||
JS_CFUNC_iterator_next,
|
||||
} JSCFunctionEnum;
|
||||
|
||||
typedef union JSCFunctionType {
|
||||
@@ -809,12 +750,6 @@ typedef union JSCFunctionType {
|
||||
JSValue (*generic_magic)(JSContext *ctx, JSValueConst this_val, int argc, JSValueConst *argv, int magic);
|
||||
double (*f_f)(double);
|
||||
double (*f_f_f)(double, double);
|
||||
JSValue (*getter)(JSContext *ctx, JSValueConst this_val);
|
||||
JSValue (*setter)(JSContext *ctx, JSValueConst this_val, JSValueConst val);
|
||||
JSValue (*getter_magic)(JSContext *ctx, JSValueConst this_val, int magic);
|
||||
JSValue (*setter_magic)(JSContext *ctx, JSValueConst this_val, JSValueConst val, int magic);
|
||||
JSValue (*iterator_next)(JSContext *ctx, JSValueConst this_val,
|
||||
int argc, JSValueConst *argv, int *pdone, int magic);
|
||||
} JSCFunctionType;
|
||||
|
||||
JSValue JS_NewCFunction2(JSContext *ctx, JSCFunction *func,
|
||||
@@ -875,10 +810,10 @@ typedef struct JSCFunctionListEntry {
|
||||
#define JS_DEF_ALIAS 9
|
||||
|
||||
/* Note: c++ does not like nested designators */
|
||||
#define JS_CFUNC_DEF(name, length, func1) { name, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE, JS_DEF_CFUNC, 0, .u = { .func = { length, JS_CFUNC_generic, { .generic = func1 } } } }
|
||||
#define JS_CFUNC_MAGIC_DEF(name, length, func1, magic) { name, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE, JS_DEF_CFUNC, magic, .u = { .func = { length, JS_CFUNC_generic_magic, { .generic_magic = func1 } } } }
|
||||
#define JS_CFUNC_SPECIAL_DEF(name, length, cproto, func1) { name, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE, JS_DEF_CFUNC, 0, .u = { .func = { length, JS_CFUNC_ ## cproto, { .cproto = func1 } } } }
|
||||
#define JS_ITERATOR_NEXT_DEF(name, length, func1, magic) { name, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE, JS_DEF_CFUNC, magic, .u = { .func = { length, JS_CFUNC_iterator_next, { .iterator_next = func1 } } } }
|
||||
#define JS_CFUNC_DEF(name, length, func1) { name, 0, JS_DEF_CFUNC, 0, .u = { .func = { length, JS_CFUNC_generic, { .generic = func1 } } } }
|
||||
#define JS_CFUNC_MAGIC_DEF(name, length, func1, magic) { name, 0, JS_DEF_CFUNC, magic, .u = { .func = { length, JS_CFUNC_generic_magic, { .generic_magic = func1 } } } }
|
||||
#define JS_CFUNC_SPECIAL_DEF(name, length, cproto, func1) { name, 0, JS_DEF_CFUNC, 0, .u = { .func = { length, JS_CFUNC_ ## cproto, { .cproto = func1 } } } }
|
||||
#define JS_ITERATOR_NEXT_DEF(name, length, func1, magic) { name, 0, JS_DEF_CFUNC, magic, .u = { .func = { length, JS_CFUNC_iterator_next, { .iterator_next = func1 } } } }
|
||||
#define JS_PROP_STRING_DEF(name, cstr, prop_flags) { name, prop_flags, JS_DEF_PROP_STRING, 0, .u = { .str = cstr } }
|
||||
#define JS_PROP_INT32_DEF(name, val, prop_flags) { name, prop_flags, JS_DEF_PROP_INT32, 0, .u = { .i32 = val } }
|
||||
#define JS_PROP_INT64_DEF(name, val, prop_flags) { name, prop_flags, JS_DEF_PROP_INT64, 0, .u = { .i64 = val } }
|
||||
|
||||
16
wildstar.c
16
wildstar.c
@@ -18,14 +18,14 @@ JSC_CCALL(wildstar_match,
|
||||
|
||||
static const JSCFunctionListEntry js_wildstar_funcs[] = {
|
||||
MIST_FUNC_DEF(wildstar, match, 3),
|
||||
JS_PROP_INT32_DEF("WM_MATCH", WM_MATCH, JS_PROP_CONFIGURABLE),
|
||||
JS_PROP_INT32_DEF("WM_NOMATCH", WM_NOMATCH, JS_PROP_CONFIGURABLE),
|
||||
JS_PROP_INT32_DEF("WM_NOESCAPE", WM_NOESCAPE, JS_PROP_CONFIGURABLE),
|
||||
JS_PROP_INT32_DEF("WM_PATHNAME", WM_PATHNAME, JS_PROP_CONFIGURABLE),
|
||||
JS_PROP_INT32_DEF("WM_PERIOD", WM_PERIOD, JS_PROP_CONFIGURABLE),
|
||||
JS_PROP_INT32_DEF("WM_LEADING_DIR", WM_LEADING_DIR, JS_PROP_CONFIGURABLE),
|
||||
JS_PROP_INT32_DEF("WM_CASEFOLD", WM_CASEFOLD, JS_PROP_CONFIGURABLE),
|
||||
JS_PROP_INT32_DEF("WM_WILDSTAR", WM_WILDSTAR, JS_PROP_CONFIGURABLE),
|
||||
JS_PROP_INT32_DEF("WM_MATCH", WM_MATCH, 0),
|
||||
JS_PROP_INT32_DEF("WM_NOMATCH", WM_NOMATCH, 0),
|
||||
JS_PROP_INT32_DEF("WM_NOESCAPE", WM_NOESCAPE, 0),
|
||||
JS_PROP_INT32_DEF("WM_PATHNAME", WM_PATHNAME, 0),
|
||||
JS_PROP_INT32_DEF("WM_PERIOD", WM_PERIOD, 0),
|
||||
JS_PROP_INT32_DEF("WM_LEADING_DIR", WM_LEADING_DIR, 0),
|
||||
JS_PROP_INT32_DEF("WM_CASEFOLD", WM_CASEFOLD, 0),
|
||||
JS_PROP_INT32_DEF("WM_WILDSTAR", WM_WILDSTAR, 0),
|
||||
};
|
||||
|
||||
JSValue js_wildstar_use(JSContext *js) {
|
||||
|
||||
Reference in New Issue
Block a user