remove global symbols
This commit is contained in:
@@ -369,7 +369,6 @@ typedef union JSFloat64Union {
|
|||||||
|
|
||||||
enum {
|
enum {
|
||||||
JS_ATOM_TYPE_STRING = 1,
|
JS_ATOM_TYPE_STRING = 1,
|
||||||
JS_ATOM_TYPE_GLOBAL_SYMBOL,
|
|
||||||
JS_ATOM_TYPE_SYMBOL,
|
JS_ATOM_TYPE_SYMBOL,
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1513,11 +1512,6 @@ void JS_FreeRuntime(JSRuntime *rt)
|
|||||||
case JS_ATOM_TYPE_STRING:
|
case JS_ATOM_TYPE_STRING:
|
||||||
JS_DumpString(rt, p);
|
JS_DumpString(rt, p);
|
||||||
break;
|
break;
|
||||||
case JS_ATOM_TYPE_GLOBAL_SYMBOL:
|
|
||||||
printf("Symbol.for(");
|
|
||||||
JS_DumpString(rt, p);
|
|
||||||
printf(")");
|
|
||||||
break;
|
|
||||||
case JS_ATOM_TYPE_SYMBOL:
|
case JS_ATOM_TYPE_SYMBOL:
|
||||||
printf("Symbol(");
|
printf("Symbol(");
|
||||||
JS_DumpString(rt, p);
|
JS_DumpString(rt, p);
|
||||||
@@ -2085,8 +2079,6 @@ static JSAtomKindEnum JS_AtomGetKind(JSContext *ctx, JSAtom v)
|
|||||||
switch(p->atom_type) {
|
switch(p->atom_type) {
|
||||||
case JS_ATOM_TYPE_STRING:
|
case JS_ATOM_TYPE_STRING:
|
||||||
return JS_ATOM_KIND_STRING;
|
return JS_ATOM_KIND_STRING;
|
||||||
case JS_ATOM_TYPE_GLOBAL_SYMBOL:
|
|
||||||
return JS_ATOM_KIND_SYMBOL;
|
|
||||||
case JS_ATOM_TYPE_SYMBOL:
|
case JS_ATOM_TYPE_SYMBOL:
|
||||||
return JS_ATOM_KIND_SYMBOL;
|
return JS_ATOM_KIND_SYMBOL;
|
||||||
default:
|
default:
|
||||||
@@ -2665,8 +2657,7 @@ static BOOL JS_AtomSymbolHasDescription(JSContext *ctx, JSAtom v)
|
|||||||
if (__JS_AtomIsTaggedInt(v))
|
if (__JS_AtomIsTaggedInt(v))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
p = rt->atom_array[v];
|
p = rt->atom_array[v];
|
||||||
return ((p->atom_type == JS_ATOM_TYPE_SYMBOL ||
|
return (p->atom_type == JS_ATOM_TYPE_SYMBOL &&
|
||||||
p->atom_type == JS_ATOM_TYPE_GLOBAL_SYMBOL) &&
|
|
||||||
!(p->len == 0 && p->is_wide_char != 0));
|
!(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 ),
|
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 */
|
/* Set/Map/WeakSet/WeakMap */
|
||||||
|
|
||||||
#define MAGIC_SET (1 << 0)
|
#define MAGIC_SET (1 << 0)
|
||||||
@@ -38564,8 +38526,6 @@ void JS_AddIntrinsicBaseObjects(JSContext *ctx)
|
|||||||
countof(js_symbol_proto_funcs));
|
countof(js_symbol_proto_funcs));
|
||||||
obj = JS_NewGlobalCConstructor(ctx, "Symbol", js_symbol_constructor, 0,
|
obj = JS_NewGlobalCConstructor(ctx, "Symbol", js_symbol_constructor, 0,
|
||||||
ctx->class_proto[JS_CLASS_SYMBOL]);
|
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++) {
|
for(i = JS_ATOM_Symbol_toPrimitive; i < JS_ATOM_END; i++) {
|
||||||
char buf[ATOM_GET_STR_BUF_SIZE];
|
char buf[ATOM_GET_STR_BUF_SIZE];
|
||||||
const char *str, *p;
|
const char *str, *p;
|
||||||
|
|||||||
Reference in New Issue
Block a user