mirror of
https://github.com/bellard/quickjs.git
synced 2024-11-22 13:48:11 +08:00
Add C API function JS_GetClassID()
If you want to extend a built-in class you need it's class ID and there is no robust way to get that without this accessor. * add JS_INVALID_CLASS_ID constant for invalid class ID. Signed-off-by: Tyler Rockwood <rockwood@redpanda.com>
This commit is contained in:
parent
12c91df577
commit
b91a2aec67
@ -3391,6 +3391,15 @@ JSClassID JS_NewClassID(JSClassID *pclass_id)
|
|||||||
return class_id;
|
return class_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
JSClassID JS_GetClassID(JSValue v)
|
||||||
|
{
|
||||||
|
JSObject *p;
|
||||||
|
if (JS_VALUE_GET_TAG(v) != JS_TAG_OBJECT)
|
||||||
|
return JS_INVALID_CLASS_ID;
|
||||||
|
p = JS_VALUE_GET_OBJ(v);
|
||||||
|
return p->class_id;
|
||||||
|
}
|
||||||
|
|
||||||
BOOL JS_IsRegisteredClass(JSRuntime *rt, JSClassID class_id)
|
BOOL JS_IsRegisteredClass(JSRuntime *rt, JSClassID class_id)
|
||||||
{
|
{
|
||||||
return (class_id < rt->class_count &&
|
return (class_id < rt->class_count &&
|
||||||
|
@ -499,7 +499,10 @@ typedef struct JSClassDef {
|
|||||||
JSClassExoticMethods *exotic;
|
JSClassExoticMethods *exotic;
|
||||||
} JSClassDef;
|
} JSClassDef;
|
||||||
|
|
||||||
|
#define JS_INVALID_CLASS_ID 0
|
||||||
JSClassID JS_NewClassID(JSClassID *pclass_id);
|
JSClassID JS_NewClassID(JSClassID *pclass_id);
|
||||||
|
/* Returns the class ID if `v` is an object, otherwise returns JS_INVALID_CLASS_ID. */
|
||||||
|
JSClassID JS_GetClassID(JSValue v);
|
||||||
int JS_NewClass(JSRuntime *rt, JSClassID class_id, const JSClassDef *class_def);
|
int JS_NewClass(JSRuntime *rt, JSClassID class_id, const JSClassDef *class_def);
|
||||||
int JS_IsRegisteredClass(JSRuntime *rt, JSClassID class_id);
|
int JS_IsRegisteredClass(JSRuntime *rt, JSClassID class_id);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user