Skip to content

Commit 307a59f

Browse files
caturriabnoordhuis
authored andcommitted
Add JS_GetClassName (#1215)
1 parent 1889cf0 commit 307a59f

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

quickjs.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3610,6 +3610,15 @@ bool JS_IsRegisteredClass(JSRuntime *rt, JSClassID class_id)
36103610
rt->class_array[class_id].class_id != 0);
36113611
}
36123612

3613+
JSAtom JS_GetClassName(JSRuntime *rt, JSClassID class_id)
3614+
{
3615+
if (JS_IsRegisteredClass(rt, class_id)) {
3616+
return JS_DupAtomRT(rt, rt->class_array[class_id].class_id);
3617+
} else {
3618+
return JS_ATOM_NULL;
3619+
}
3620+
}
3621+
36133622
/* create a new object internal class. Return -1 if error, 0 if
36143623
OK. The finalizer can be NULL if none is needed. */
36153624
static int JS_NewClass1(JSRuntime *rt, JSClassID class_id,

quickjs.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -634,6 +634,8 @@ JS_EXTERN JSClassID JS_NewClassID(JSRuntime *rt, JSClassID *pclass_id);
634634
JS_EXTERN JSClassID JS_GetClassID(JSValueConst v);
635635
JS_EXTERN int JS_NewClass(JSRuntime *rt, JSClassID class_id, const JSClassDef *class_def);
636636
JS_EXTERN bool JS_IsRegisteredClass(JSRuntime *rt, JSClassID class_id);
637+
/* Returns the class name or JS_ATOM_NULL if `id` is not a registered class. Must be freed with JS_FreeAtom. */
638+
JS_EXTERN JSAtom JS_GetClassName(JSRuntime *rt, JSClassID class_id);
637639

638640
/* value handling */
639641

0 commit comments

Comments
 (0)