clean up unused functions
This commit is contained in:
290
source/quickjs.c
290
source/quickjs.c
@@ -913,7 +913,6 @@ static JSValue JS_ToStringFree(JSContext *ctx, JSValue val);
|
|||||||
static int JS_ToBoolFree(JSContext *ctx, JSValue val);
|
static int JS_ToBoolFree(JSContext *ctx, JSValue val);
|
||||||
static int JS_ToInt32Free(JSContext *ctx, int32_t *pres, JSValue val);
|
static int JS_ToInt32Free(JSContext *ctx, int32_t *pres, JSValue val);
|
||||||
static int JS_ToFloat64Free(JSContext *ctx, double *pres, JSValue val);
|
static int JS_ToFloat64Free(JSContext *ctx, double *pres, JSValue val);
|
||||||
static int JS_ToUint8ClampFree(JSContext *ctx, int32_t *pres, JSValue val);
|
|
||||||
static JSValue js_new_string8_len(JSContext *ctx, const char *buf, int len);
|
static JSValue js_new_string8_len(JSContext *ctx, const char *buf, int len);
|
||||||
static JSValue js_compile_regexp(JSContext *ctx, JSValueConst pattern,
|
static JSValue js_compile_regexp(JSContext *ctx, JSValueConst pattern,
|
||||||
JSValueConst flags);
|
JSValueConst flags);
|
||||||
@@ -954,7 +953,6 @@ static JSVarRef *get_var_ref(JSContext *ctx, JSStackFrame *sf, int var_idx,
|
|||||||
static JSValue JS_EvalInternal(JSContext *ctx, JSValueConst this_obj,
|
static JSValue JS_EvalInternal(JSContext *ctx, JSValueConst this_obj,
|
||||||
const char *input, size_t input_len,
|
const char *input, size_t input_len,
|
||||||
const char *filename, int flags, int scope_idx);
|
const char *filename, int flags, int scope_idx);
|
||||||
static JSValue js_dynamic_import(JSContext *ctx, JSValueConst specifier, JSValueConst options);
|
|
||||||
static void free_var_ref(JSRuntime *rt, JSVarRef *var_ref);
|
static void free_var_ref(JSRuntime *rt, JSVarRef *var_ref);
|
||||||
|
|
||||||
static int js_string_compare(JSContext *ctx,
|
static int js_string_compare(JSContext *ctx,
|
||||||
@@ -963,7 +961,6 @@ static JSValue JS_ToNumber(JSContext *ctx, JSValueConst val);
|
|||||||
static int JS_SetPropertyValue(JSContext *ctx, JSValueConst this_obj,
|
static int JS_SetPropertyValue(JSContext *ctx, JSValueConst this_obj,
|
||||||
JSValue prop, JSValue val, int flags);
|
JSValue prop, JSValue val, int flags);
|
||||||
static int JS_NumberIsInteger(JSContext *ctx, JSValueConst val);
|
static int JS_NumberIsInteger(JSContext *ctx, JSValueConst val);
|
||||||
static BOOL JS_NumberIsNegativeOrMinusZero(JSContext *ctx, JSValueConst val);
|
|
||||||
static JSValue JS_ToNumberFree(JSContext *ctx, JSValue val);
|
static JSValue JS_ToNumberFree(JSContext *ctx, JSValue val);
|
||||||
static int JS_GetOwnPropertyInternal(JSContext *ctx, JSPropertyDescriptor *desc,
|
static int JS_GetOwnPropertyInternal(JSContext *ctx, JSPropertyDescriptor *desc,
|
||||||
JSObject *p, JSAtom prop);
|
JSObject *p, JSAtom prop);
|
||||||
@@ -1002,8 +999,6 @@ static void map_delete_weakrefs(JSRuntime *rt, JSWeakRefHeader *wh);
|
|||||||
static void weakref_delete_weakref(JSRuntime *rt, JSWeakRefHeader *wh);
|
static void weakref_delete_weakref(JSRuntime *rt, JSWeakRefHeader *wh);
|
||||||
static void finrec_delete_weakref(JSRuntime *rt, JSWeakRefHeader *wh);
|
static void finrec_delete_weakref(JSRuntime *rt, JSWeakRefHeader *wh);
|
||||||
static void JS_RunGCInternal(JSRuntime *rt, BOOL remove_weak_objects);
|
static void JS_RunGCInternal(JSRuntime *rt, BOOL remove_weak_objects);
|
||||||
static JSValue js_array_from_iterator(JSContext *ctx, uint32_t *plen,
|
|
||||||
JSValueConst obj, JSValueConst method);
|
|
||||||
static int js_string_find_invalid_codepoint(JSString *p);
|
static int js_string_find_invalid_codepoint(JSString *p);
|
||||||
static JSValue js_regexp_toString(JSContext *ctx, JSValueConst this_val,
|
static JSValue js_regexp_toString(JSContext *ctx, JSValueConst this_val,
|
||||||
int argc, JSValueConst *argv);
|
int argc, JSValueConst *argv);
|
||||||
@@ -1795,7 +1790,6 @@ static void JS_MarkContext(JSRuntime *rt, JSContext *ctx,
|
|||||||
JS_MarkFunc *mark_func)
|
JS_MarkFunc *mark_func)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
struct list_head *el;
|
|
||||||
|
|
||||||
JS_MarkValue(rt, ctx->global_obj, mark_func);
|
JS_MarkValue(rt, ctx->global_obj, mark_func);
|
||||||
JS_MarkValue(rt, ctx->global_var_obj, mark_func);
|
JS_MarkValue(rt, ctx->global_var_obj, mark_func);
|
||||||
@@ -2574,20 +2568,6 @@ static JSValue JS_NewSymbol(JSContext *ctx, JSString *p, int atom_type)
|
|||||||
return JS_MKPTR(JS_TAG_SYMBOL, rt->atom_array[atom]);
|
return JS_MKPTR(JS_TAG_SYMBOL, rt->atom_array[atom]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* descr must be a non-numeric string atom */
|
|
||||||
static JSValue JS_NewSymbolFromAtom(JSContext *ctx, JSAtom descr,
|
|
||||||
int atom_type)
|
|
||||||
{
|
|
||||||
JSRuntime *rt = ctx->rt;
|
|
||||||
JSString *p;
|
|
||||||
|
|
||||||
assert(!__JS_AtomIsTaggedInt(descr));
|
|
||||||
assert(descr < rt->atom_size);
|
|
||||||
p = rt->atom_array[descr];
|
|
||||||
JS_DupValue(ctx, JS_MKPTR(JS_TAG_STRING, p));
|
|
||||||
return JS_NewSymbol(ctx, p, atom_type);
|
|
||||||
}
|
|
||||||
|
|
||||||
#define ATOM_GET_STR_BUF_SIZE 64
|
#define ATOM_GET_STR_BUF_SIZE 64
|
||||||
|
|
||||||
/* Should only be used for debug. */
|
/* Should only be used for debug. */
|
||||||
@@ -2816,48 +2796,6 @@ const char *JS_AtomToCStringLen(JSContext *ctx, size_t *plen, JSAtom atom)
|
|||||||
return cstr;
|
return cstr;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* return a string atom containing name concatenated with str1 */
|
|
||||||
static JSAtom js_atom_concat_str(JSContext *ctx, JSAtom name, const char *str1)
|
|
||||||
{
|
|
||||||
JSValue str;
|
|
||||||
JSAtom atom;
|
|
||||||
const char *cstr;
|
|
||||||
char *cstr2;
|
|
||||||
size_t len, len1;
|
|
||||||
|
|
||||||
str = JS_AtomToString(ctx, name);
|
|
||||||
if (JS_IsException(str))
|
|
||||||
return JS_ATOM_NULL;
|
|
||||||
cstr = JS_ToCStringLen(ctx, &len, str);
|
|
||||||
if (!cstr)
|
|
||||||
goto fail;
|
|
||||||
len1 = strlen(str1);
|
|
||||||
cstr2 = js_malloc(ctx, len + len1 + 1);
|
|
||||||
if (!cstr2)
|
|
||||||
goto fail;
|
|
||||||
memcpy(cstr2, cstr, len);
|
|
||||||
memcpy(cstr2 + len, str1, len1);
|
|
||||||
cstr2[len + len1] = '\0';
|
|
||||||
atom = JS_NewAtomLen(ctx, cstr2, len + len1);
|
|
||||||
js_free(ctx, cstr2);
|
|
||||||
JS_FreeCString(ctx, cstr);
|
|
||||||
JS_FreeValue(ctx, str);
|
|
||||||
return atom;
|
|
||||||
fail:
|
|
||||||
JS_FreeCString(ctx, cstr);
|
|
||||||
JS_FreeValue(ctx, str);
|
|
||||||
return JS_ATOM_NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
static JSAtom js_atom_concat_num(JSContext *ctx, JSAtom name, uint32_t n)
|
|
||||||
{
|
|
||||||
char buf[16];
|
|
||||||
size_t len;
|
|
||||||
len = u32toa(buf, n);
|
|
||||||
buf[len] = '\0';
|
|
||||||
return js_atom_concat_str(ctx, name, buf);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline BOOL JS_IsEmptyString(JSValueConst v)
|
static inline BOOL JS_IsEmptyString(JSValueConst v)
|
||||||
{
|
{
|
||||||
return JS_VALUE_GET_TAG(v) == JS_TAG_STRING && JS_VALUE_GET_STRING(v)->len == 0;
|
return JS_VALUE_GET_TAG(v) == JS_TAG_STRING && JS_VALUE_GET_STRING(v)->len == 0;
|
||||||
@@ -5785,7 +5723,7 @@ static void compute_value_size(JSValueConst val, JSMemoryUsage_helper *hp)
|
|||||||
|
|
||||||
void JS_ComputeMemoryUsage(JSRuntime *rt, JSMemoryUsage *s)
|
void JS_ComputeMemoryUsage(JSRuntime *rt, JSMemoryUsage *s)
|
||||||
{
|
{
|
||||||
struct list_head *el, *el1;
|
struct list_head *el;
|
||||||
int i;
|
int i;
|
||||||
JSMemoryUsage_helper mem = { 0 }, *hp = &mem;
|
JSMemoryUsage_helper mem = { 0 }, *hp = &mem;
|
||||||
|
|
||||||
@@ -8366,8 +8304,6 @@ static int JS_SetPropertyValue(JSContext *ctx, JSValueConst this_obj,
|
|||||||
JS_VALUE_GET_TAG(prop) == JS_TAG_INT)) {
|
JS_VALUE_GET_TAG(prop) == JS_TAG_INT)) {
|
||||||
JSObject *p;
|
JSObject *p;
|
||||||
uint32_t idx;
|
uint32_t idx;
|
||||||
double d;
|
|
||||||
int32_t v;
|
|
||||||
|
|
||||||
/* fast path for array access */
|
/* fast path for array access */
|
||||||
p = JS_VALUE_GET_OBJ(this_obj);
|
p = JS_VALUE_GET_OBJ(this_obj);
|
||||||
@@ -11740,48 +11676,6 @@ static inline int JS_ToUint32Free(JSContext *ctx, uint32_t *pres, JSValue val)
|
|||||||
return JS_ToInt32Free(ctx, (int32_t *)pres, val);
|
return JS_ToInt32Free(ctx, (int32_t *)pres, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int JS_ToUint8ClampFree(JSContext *ctx, int32_t *pres, JSValue val)
|
|
||||||
{
|
|
||||||
uint32_t tag;
|
|
||||||
int res;
|
|
||||||
|
|
||||||
redo:
|
|
||||||
tag = JS_VALUE_GET_NORM_TAG(val);
|
|
||||||
switch(tag) {
|
|
||||||
case JS_TAG_INT:
|
|
||||||
case JS_TAG_BOOL:
|
|
||||||
case JS_TAG_NULL:
|
|
||||||
case JS_TAG_UNDEFINED:
|
|
||||||
res = JS_VALUE_GET_INT(val);
|
|
||||||
res = max_int(0, min_int(255, res));
|
|
||||||
break;
|
|
||||||
case JS_TAG_FLOAT64:
|
|
||||||
{
|
|
||||||
double d = JS_VALUE_GET_FLOAT64(val);
|
|
||||||
if (isnan(d)) {
|
|
||||||
res = 0;
|
|
||||||
} else {
|
|
||||||
if (d < 0)
|
|
||||||
res = 0;
|
|
||||||
else if (d > 255)
|
|
||||||
res = 255;
|
|
||||||
else
|
|
||||||
res = lrint(d);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
val = JS_ToNumberFree(ctx, val);
|
|
||||||
if (JS_IsException(val)) {
|
|
||||||
*pres = 0;
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
goto redo;
|
|
||||||
}
|
|
||||||
*pres = res;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static __exception int JS_ToArrayLengthFree(JSContext *ctx, uint32_t *plen,
|
static __exception int JS_ToArrayLengthFree(JSContext *ctx, uint32_t *plen,
|
||||||
JSValue val, BOOL is_array_ctor)
|
JSValue val, BOOL is_array_ctor)
|
||||||
{
|
{
|
||||||
@@ -11887,36 +11781,6 @@ static int JS_NumberIsInteger(JSContext *ctx, JSValueConst val)
|
|||||||
return isfinite(d) && floor(d) == d;
|
return isfinite(d) && floor(d) == d;
|
||||||
}
|
}
|
||||||
|
|
||||||
static BOOL JS_NumberIsNegativeOrMinusZero(JSContext *ctx, JSValueConst val)
|
|
||||||
{
|
|
||||||
uint32_t tag;
|
|
||||||
|
|
||||||
tag = JS_VALUE_GET_NORM_TAG(val);
|
|
||||||
switch(tag) {
|
|
||||||
case JS_TAG_INT:
|
|
||||||
{
|
|
||||||
int v;
|
|
||||||
v = JS_VALUE_GET_INT(val);
|
|
||||||
return (v < 0);
|
|
||||||
}
|
|
||||||
case JS_TAG_FLOAT64:
|
|
||||||
{
|
|
||||||
JSFloat64Union u;
|
|
||||||
u.d = JS_VALUE_GET_FLOAT64(val);
|
|
||||||
return (u.u64 >> 63);
|
|
||||||
}
|
|
||||||
case JS_TAG_SHORT_BIG_INT:
|
|
||||||
return (JS_VALUE_GET_SHORT_BIG_INT(val) < 0);
|
|
||||||
case JS_TAG_BIG_INT:
|
|
||||||
{
|
|
||||||
JSBigInt *p = JS_VALUE_GET_PTR(val);
|
|
||||||
return js_bigint_sign(p);
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static JSValue js_bigint_to_string(JSContext *ctx, JSValueConst val)
|
static JSValue js_bigint_to_string(JSContext *ctx, JSValueConst val)
|
||||||
{
|
{
|
||||||
return js_bigint_to_string1(ctx, val, 10);
|
return js_bigint_to_string1(ctx, val, 10);
|
||||||
@@ -14234,8 +14098,6 @@ static __exception int js_operator_typeof(JSContext *ctx, JSValueConst op1)
|
|||||||
break;
|
break;
|
||||||
case JS_TAG_OBJECT:
|
case JS_TAG_OBJECT:
|
||||||
{
|
{
|
||||||
JSObject *p;
|
|
||||||
p = JS_VALUE_GET_OBJ(op1);
|
|
||||||
if (JS_IsFunction(ctx, op1))
|
if (JS_IsFunction(ctx, op1))
|
||||||
atom = JS_ATOM_function;
|
atom = JS_ATOM_function;
|
||||||
else
|
else
|
||||||
@@ -14712,7 +14574,7 @@ static JSValue JS_GetIterator2(JSContext *ctx, JSValueConst obj,
|
|||||||
|
|
||||||
static JSValue JS_GetIterator(JSContext *ctx, JSValueConst obj)
|
static JSValue JS_GetIterator(JSContext *ctx, JSValueConst obj)
|
||||||
{
|
{
|
||||||
JSValue method, ret, sync_iter;
|
JSValue method, ret;
|
||||||
|
|
||||||
method = JS_GetProperty(ctx, obj, JS_ATOM_Symbol_iterator);
|
method = JS_GetProperty(ctx, obj, JS_ATOM_Symbol_iterator);
|
||||||
if (JS_IsException(method))
|
if (JS_IsException(method))
|
||||||
@@ -22655,10 +22517,8 @@ static __exception int js_parse_postfix_expr(JSParseState *s, int parse_flags)
|
|||||||
if (next_token(s))
|
if (next_token(s))
|
||||||
return -1;
|
return -1;
|
||||||
} else if (s->token.val == '[') {
|
} else if (s->token.val == '[') {
|
||||||
int prev_op;
|
|
||||||
op_token_ptr = s->token.ptr;
|
op_token_ptr = s->token.ptr;
|
||||||
parse_array_access:
|
parse_array_access:
|
||||||
prev_op = get_prev_opcode(fd);
|
|
||||||
if (has_optional_chain) {
|
if (has_optional_chain) {
|
||||||
optional_chain_test(s, &optional_chaining_label, 1);
|
optional_chain_test(s, &optional_chaining_label, 1);
|
||||||
}
|
}
|
||||||
@@ -24505,9 +24365,6 @@ static int add_closure_var(JSContext *ctx, JSFunctionDef *s,
|
|||||||
|
|
||||||
static __exception int js_parse_source_element(JSParseState *s)
|
static __exception int js_parse_source_element(JSParseState *s)
|
||||||
{
|
{
|
||||||
JSFunctionDef *fd = s->cur_func;
|
|
||||||
int tok;
|
|
||||||
|
|
||||||
if (s->token.val == TOK_FUNCTION ||
|
if (s->token.val == TOK_FUNCTION ||
|
||||||
(token_is_pseudo_keyword(s, JS_ATOM_async) &&
|
(token_is_pseudo_keyword(s, JS_ATOM_async) &&
|
||||||
peek_token(s, TRUE) == TOK_FUNCTION)) {
|
peek_token(s, TRUE) == TOK_FUNCTION)) {
|
||||||
@@ -25147,18 +25004,6 @@ static int add_closure_var(JSContext *ctx, JSFunctionDef *s,
|
|||||||
return s->closure_var_count - 1;
|
return s->closure_var_count - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int find_closure_var(JSContext *ctx, JSFunctionDef *s,
|
|
||||||
JSAtom var_name)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
for(i = 0; i < s->closure_var_count; i++) {
|
|
||||||
JSClosureVar *cv = &s->closure_var[i];
|
|
||||||
if (cv->var_name == var_name)
|
|
||||||
return i;
|
|
||||||
}
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 'fd' must be a parent of 's'. Create in 's' a closure referencing a
|
/* 'fd' must be a parent of 's'. Create in 's' a closure referencing a
|
||||||
local variable (is_local = TRUE) or a closure (is_local = FALSE) in
|
local variable (is_local = TRUE) or a closure (is_local = FALSE) in
|
||||||
'fd' */
|
'fd' */
|
||||||
@@ -25812,32 +25657,6 @@ done:
|
|||||||
return pos_next;
|
return pos_next;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* search in all scopes */
|
|
||||||
static int find_private_class_field_all(JSContext *ctx, JSFunctionDef *fd,
|
|
||||||
JSAtom name, int scope_level)
|
|
||||||
{
|
|
||||||
int idx;
|
|
||||||
|
|
||||||
idx = fd->scopes[scope_level].first;
|
|
||||||
while (idx >= 0) {
|
|
||||||
if (fd->vars[idx].var_name == name)
|
|
||||||
return idx;
|
|
||||||
idx = fd->vars[idx].scope_next;
|
|
||||||
}
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void get_loc_or_ref(DynBuf *bc, BOOL is_ref, int idx)
|
|
||||||
{
|
|
||||||
/* if the field is not initialized, the error is catched when
|
|
||||||
accessing it */
|
|
||||||
if (is_ref)
|
|
||||||
dbuf_putc(bc, OP_get_var_ref);
|
|
||||||
else
|
|
||||||
dbuf_putc(bc, OP_get_loc);
|
|
||||||
dbuf_put_u16(bc, idx);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void mark_eval_captured_variables(JSContext *ctx, JSFunctionDef *s,
|
static void mark_eval_captured_variables(JSContext *ctx, JSFunctionDef *s,
|
||||||
int scope_level)
|
int scope_level)
|
||||||
{
|
{
|
||||||
@@ -26219,7 +26038,7 @@ static BOOL code_match(CodeContext *s, int pos, ...)
|
|||||||
|
|
||||||
static void instantiate_hoisted_definitions(JSContext *ctx, JSFunctionDef *s, DynBuf *bc)
|
static void instantiate_hoisted_definitions(JSContext *ctx, JSFunctionDef *s, DynBuf *bc)
|
||||||
{
|
{
|
||||||
int i, idx, label_next = -1;
|
int i, idx;
|
||||||
|
|
||||||
/* add the hoisted functions in arguments and local variables */
|
/* add the hoisted functions in arguments and local variables */
|
||||||
for(i = 0; i < s->arg_count; i++) {
|
for(i = 0; i < s->arg_count; i++) {
|
||||||
@@ -31115,16 +30934,6 @@ static JSValueConst JS_NewGlobalCConstructor(JSContext *ctx, const char *name,
|
|||||||
return func_obj;
|
return func_obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
static JSValueConst JS_NewGlobalCConstructorOnly(JSContext *ctx, const char *name,
|
|
||||||
JSCFunction *func, int length,
|
|
||||||
JSValueConst proto)
|
|
||||||
{
|
|
||||||
JSValue func_obj;
|
|
||||||
func_obj = JS_NewCFunction2(ctx, func, name, length, JS_CFUNC_constructor, 0);
|
|
||||||
JS_NewGlobalCConstructor2(ctx, func_obj, name, proto);
|
|
||||||
return func_obj;
|
|
||||||
}
|
|
||||||
|
|
||||||
static JSValue js_global_eval(JSContext *ctx, JSValueConst this_val,
|
static JSValue js_global_eval(JSContext *ctx, JSValueConst this_val,
|
||||||
int argc, JSValueConst *argv)
|
int argc, JSValueConst *argv)
|
||||||
{
|
{
|
||||||
@@ -32890,24 +32699,6 @@ static const JSCFunctionListEntry js_error_proto_funcs[] = {
|
|||||||
JS_PROP_STRING_DEF("message", "", JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE ),
|
JS_PROP_STRING_DEF("message", "", JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE ),
|
||||||
};
|
};
|
||||||
|
|
||||||
/* AggregateError */
|
|
||||||
|
|
||||||
/* used by C code. */
|
|
||||||
static JSValue js_aggregate_error_constructor(JSContext *ctx,
|
|
||||||
JSValueConst errors)
|
|
||||||
{
|
|
||||||
JSValue obj;
|
|
||||||
|
|
||||||
obj = JS_NewObjectProtoClass(ctx,
|
|
||||||
ctx->native_error_proto[JS_AGGREGATE_ERROR],
|
|
||||||
JS_CLASS_ERROR);
|
|
||||||
if (JS_IsException(obj))
|
|
||||||
return obj;
|
|
||||||
JS_DefinePropertyValue(ctx, obj, JS_ATOM_errors, JS_DupValue(ctx, errors),
|
|
||||||
JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);
|
|
||||||
return obj;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Array */
|
/* Array */
|
||||||
|
|
||||||
static int JS_CopySubArray(JSContext *ctx,
|
static int JS_CopySubArray(JSContext *ctx,
|
||||||
@@ -34780,14 +34571,12 @@ static JSValue js_array_iterator_next(JSContext *ctx, JSValueConst this_val,
|
|||||||
JSArrayIteratorData *it;
|
JSArrayIteratorData *it;
|
||||||
uint32_t len, idx;
|
uint32_t len, idx;
|
||||||
JSValue val, obj;
|
JSValue val, obj;
|
||||||
JSObject *p;
|
|
||||||
|
|
||||||
it = JS_GetOpaque2(ctx, this_val, JS_CLASS_ARRAY_ITERATOR);
|
it = JS_GetOpaque2(ctx, this_val, JS_CLASS_ARRAY_ITERATOR);
|
||||||
if (!it)
|
if (!it)
|
||||||
goto fail1;
|
goto fail1;
|
||||||
if (JS_IsUndefined(it->obj))
|
if (JS_IsUndefined(it->obj))
|
||||||
goto done;
|
goto done;
|
||||||
p = JS_VALUE_GET_OBJ(it->obj);
|
|
||||||
|
|
||||||
if (js_get_length32(ctx, &len, it->obj)) {
|
if (js_get_length32(ctx, &len, it->obj)) {
|
||||||
fail1:
|
fail1:
|
||||||
@@ -36895,60 +36684,6 @@ enum {
|
|||||||
magic_string_sup,
|
magic_string_sup,
|
||||||
};
|
};
|
||||||
|
|
||||||
static JSValue js_string_CreateHTML(JSContext *ctx, JSValueConst this_val,
|
|
||||||
int argc, JSValueConst *argv, int magic)
|
|
||||||
{
|
|
||||||
JSValue str;
|
|
||||||
const JSString *p;
|
|
||||||
StringBuffer b_s, *b = &b_s;
|
|
||||||
static struct { const char *tag, *attr; } const defs[] = {
|
|
||||||
{ "a", "name" }, { "big", NULL }, { "blink", NULL }, { "b", NULL },
|
|
||||||
{ "tt", NULL }, { "font", "color" }, { "font", "size" }, { "i", NULL },
|
|
||||||
{ "a", "href" }, { "small", NULL }, { "strike", NULL },
|
|
||||||
{ "sub", NULL }, { "sup", NULL },
|
|
||||||
};
|
|
||||||
|
|
||||||
str = JS_ToStringCheckObject(ctx, this_val);
|
|
||||||
if (JS_IsException(str))
|
|
||||||
return JS_EXCEPTION;
|
|
||||||
string_buffer_init(ctx, b, 7);
|
|
||||||
string_buffer_putc8(b, '<');
|
|
||||||
string_buffer_puts8(b, defs[magic].tag);
|
|
||||||
if (defs[magic].attr) {
|
|
||||||
// r += " " + attr + "=\"" + value + "\"";
|
|
||||||
JSValue value;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
string_buffer_putc8(b, ' ');
|
|
||||||
string_buffer_puts8(b, defs[magic].attr);
|
|
||||||
string_buffer_puts8(b, "=\"");
|
|
||||||
value = JS_ToStringCheckObject(ctx, argv[0]);
|
|
||||||
if (JS_IsException(value)) {
|
|
||||||
JS_FreeValue(ctx, str);
|
|
||||||
string_buffer_free(b);
|
|
||||||
return JS_EXCEPTION;
|
|
||||||
}
|
|
||||||
p = JS_VALUE_GET_STRING(value);
|
|
||||||
for (i = 0; i < p->len; i++) {
|
|
||||||
int c = string_get(p, i);
|
|
||||||
if (c == '"') {
|
|
||||||
string_buffer_puts8(b, """);
|
|
||||||
} else {
|
|
||||||
string_buffer_putc16(b, c);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
JS_FreeValue(ctx, value);
|
|
||||||
string_buffer_putc8(b, '\"');
|
|
||||||
}
|
|
||||||
// return r + ">" + str + "</" + tag + ">";
|
|
||||||
string_buffer_putc8(b, '>');
|
|
||||||
string_buffer_concat_value_free(b, str);
|
|
||||||
string_buffer_puts8(b, "</");
|
|
||||||
string_buffer_puts8(b, defs[magic].tag);
|
|
||||||
string_buffer_putc8(b, '>');
|
|
||||||
return string_buffer_end(b);
|
|
||||||
}
|
|
||||||
|
|
||||||
static const JSCFunctionListEntry js_string_funcs[] = {
|
static const JSCFunctionListEntry js_string_funcs[] = {
|
||||||
JS_CFUNC_DEF("fromCharCode", 1, js_string_fromCharCode ),
|
JS_CFUNC_DEF("fromCharCode", 1, js_string_fromCharCode ),
|
||||||
JS_CFUNC_DEF("fromCodePoint", 1, js_string_fromCodePoint ),
|
JS_CFUNC_DEF("fromCodePoint", 1, js_string_fromCodePoint ),
|
||||||
@@ -36999,20 +36734,6 @@ static const JSCFunctionListEntry js_string_proto_funcs[] = {
|
|||||||
// JS_CFUNC_MAGIC_DEF("toLocaleLowerCase", 0, js_string_toLowerCase, 1 ),
|
// JS_CFUNC_MAGIC_DEF("toLocaleLowerCase", 0, js_string_toLowerCase, 1 ),
|
||||||
// JS_CFUNC_MAGIC_DEF("toLocaleUpperCase", 0, js_string_toLowerCase, 0 ),
|
// JS_CFUNC_MAGIC_DEF("toLocaleUpperCase", 0, js_string_toLowerCase, 0 ),
|
||||||
JS_CFUNC_MAGIC_DEF("[Symbol.iterator]", 0, js_create_array_iterator, JS_ITERATOR_KIND_VALUE | 4 ),
|
JS_CFUNC_MAGIC_DEF("[Symbol.iterator]", 0, js_create_array_iterator, JS_ITERATOR_KIND_VALUE | 4 ),
|
||||||
/* ES6 Annex B 2.3.2 etc. */
|
|
||||||
// JS_CFUNC_MAGIC_DEF("anchor", 1, js_string_CreateHTML, magic_string_anchor ),
|
|
||||||
// JS_CFUNC_MAGIC_DEF("big", 0, js_string_CreateHTML, magic_string_big ),
|
|
||||||
// JS_CFUNC_MAGIC_DEF("blink", 0, js_string_CreateHTML, magic_string_blink ),
|
|
||||||
// JS_CFUNC_MAGIC_DEF("bold", 0, js_string_CreateHTML, magic_string_bold ),
|
|
||||||
// JS_CFUNC_MAGIC_DEF("fixed", 0, js_string_CreateHTML, magic_string_fixed ),
|
|
||||||
// JS_CFUNC_MAGIC_DEF("fontcolor", 1, js_string_CreateHTML, magic_string_fontcolor ),
|
|
||||||
// JS_CFUNC_MAGIC_DEF("fontsize", 1, js_string_CreateHTML, magic_string_fontsize ),
|
|
||||||
// JS_CFUNC_MAGIC_DEF("italics", 0, js_string_CreateHTML, magic_string_italics ),
|
|
||||||
// JS_CFUNC_MAGIC_DEF("link", 1, js_string_CreateHTML, magic_string_link ),
|
|
||||||
// JS_CFUNC_MAGIC_DEF("small", 0, js_string_CreateHTML, magic_string_small ),
|
|
||||||
// JS_CFUNC_MAGIC_DEF("strike", 0, js_string_CreateHTML, magic_string_strike ),
|
|
||||||
// JS_CFUNC_MAGIC_DEF("sub", 0, js_string_CreateHTML, magic_string_sub ),
|
|
||||||
// JS_CFUNC_MAGIC_DEF("sup", 0, js_string_CreateHTML, magic_string_sup ),
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static const JSCFunctionListEntry js_string_iterator_proto_funcs[] = {
|
static const JSCFunctionListEntry js_string_iterator_proto_funcs[] = {
|
||||||
@@ -42765,11 +42486,6 @@ static void js_finrec_mark(JSRuntime *rt, JSValueConst val,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static JSValue js_finrec_job(JSContext *ctx, int argc, JSValueConst *argv)
|
|
||||||
{
|
|
||||||
return JS_Call(ctx, argv[0], JS_UNDEFINED, 1, &argv[1]);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void finrec_delete_weakref(JSRuntime *rt, JSWeakRefHeader *wh)
|
static void finrec_delete_weakref(JSRuntime *rt, JSWeakRefHeader *wh)
|
||||||
{
|
{
|
||||||
JSFinalizationRegistryData *frd = container_of(wh, JSFinalizationRegistryData, weakref_header);
|
JSFinalizationRegistryData *frd = container_of(wh, JSFinalizationRegistryData, weakref_header);
|
||||||
|
|||||||
Reference in New Issue
Block a user