remove global symbols

This commit is contained in:
2025-06-18 14:03:12 -05:00
parent f2c2ecf692
commit 15d85096a2

View File

@@ -369,7 +369,6 @@ typedef union JSFloat64Union {
enum {
JS_ATOM_TYPE_STRING = 1,
JS_ATOM_TYPE_GLOBAL_SYMBOL,
JS_ATOM_TYPE_SYMBOL,
};
@@ -1513,11 +1512,6 @@ void JS_FreeRuntime(JSRuntime *rt)
case JS_ATOM_TYPE_STRING:
JS_DumpString(rt, p);
break;
case JS_ATOM_TYPE_GLOBAL_SYMBOL:
printf("Symbol.for(");
JS_DumpString(rt, p);
printf(")");
break;
case JS_ATOM_TYPE_SYMBOL:
printf("Symbol(");
JS_DumpString(rt, p);
@@ -2085,8 +2079,6 @@ static JSAtomKindEnum JS_AtomGetKind(JSContext *ctx, JSAtom v)
switch(p->atom_type) {
case JS_ATOM_TYPE_STRING:
return JS_ATOM_KIND_STRING;
case JS_ATOM_TYPE_GLOBAL_SYMBOL:
return JS_ATOM_KIND_SYMBOL;
case JS_ATOM_TYPE_SYMBOL:
return JS_ATOM_KIND_SYMBOL;
default:
@@ -2665,8 +2657,7 @@ static BOOL JS_AtomSymbolHasDescription(JSContext *ctx, JSAtom v)
if (__JS_AtomIsTaggedInt(v))
return FALSE;
p = rt->atom_array[v];
return ((p->atom_type == JS_ATOM_TYPE_SYMBOL ||
p->atom_type == JS_ATOM_TYPE_GLOBAL_SYMBOL) &&
return (p->atom_type == JS_ATOM_TYPE_SYMBOL &&
!(p->len == 0 && p->is_wide_char != 0));
}
@@ -37174,35 +37165,6 @@ static const JSCFunctionListEntry js_symbol_proto_funcs[] = {
JS_CGETSET_DEF("description", js_symbol_get_description, NULL ),
};
static JSValue js_symbol_for(JSContext *ctx, JSValueConst this_val,
int argc, JSValueConst *argv)
{
JSValue str;
str = JS_ToString(ctx, argv[0]);
if (JS_IsException(str))
return JS_EXCEPTION;
return JS_NewSymbol(ctx, JS_VALUE_GET_STRING(str), JS_ATOM_TYPE_GLOBAL_SYMBOL);
}
static JSValue js_symbol_keyFor(JSContext *ctx, JSValueConst this_val,
int argc, JSValueConst *argv)
{
JSAtomStruct *p;
if (!JS_IsSymbol(argv[0]))
return JS_ThrowTypeError(ctx, "not a symbol");
p = JS_VALUE_GET_PTR(argv[0]);
if (p->atom_type != JS_ATOM_TYPE_GLOBAL_SYMBOL)
return JS_NULL;
return JS_DupValue(ctx, JS_MKPTR(JS_TAG_STRING, p));
}
static const JSCFunctionListEntry js_symbol_funcs[] = {
JS_CFUNC_DEF("for", 1, js_symbol_for ),
JS_CFUNC_DEF("keyFor", 1, js_symbol_keyFor ),
};
/* Set/Map/WeakSet/WeakMap */
#define MAGIC_SET (1 << 0)
@@ -38564,8 +38526,6 @@ void JS_AddIntrinsicBaseObjects(JSContext *ctx)
countof(js_symbol_proto_funcs));
obj = JS_NewGlobalCConstructor(ctx, "Symbol", js_symbol_constructor, 0,
ctx->class_proto[JS_CLASS_SYMBOL]);
JS_SetPropertyFunctionList(ctx, obj, js_symbol_funcs,
countof(js_symbol_funcs));
for(i = JS_ATOM_Symbol_toPrimitive; i < JS_ATOM_END; i++) {
char buf[ATOM_GET_STR_BUF_SIZE];
const char *str, *p;