Add method to GetClassID (#275)
* Add method to 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. Signed-off-by: Tyler Rockwood <rockwood@redpanda.com> * introduce constant for invalid class ID Signed-off-by: Tyler Rockwood <rockwood@redpanda.com> --------- Signed-off-by: Tyler Rockwood <rockwood@redpanda.com>
This commit is contained in:
parent
b257545b6f
commit
33f72491a9
2 changed files with 12 additions and 0 deletions
|
@ -3344,6 +3344,15 @@ JSClassID JS_NewClassID(JSRuntime *rt, 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 &&
|
||||||
|
|
|
@ -455,7 +455,10 @@ typedef struct JSClassDef {
|
||||||
JSClassExoticMethods *exotic;
|
JSClassExoticMethods *exotic;
|
||||||
} JSClassDef;
|
} JSClassDef;
|
||||||
|
|
||||||
|
#define JS_INVALID_CLASS_ID 0
|
||||||
JS_EXTERN JSClassID JS_NewClassID(JSRuntime *rt, JSClassID *pclass_id);
|
JS_EXTERN JSClassID JS_NewClassID(JSRuntime *rt, JSClassID *pclass_id);
|
||||||
|
/* Returns the class ID if `v` is an object, otherwise returns JS_INVALID_CLASS_ID. */
|
||||||
|
JS_EXTERN JSClassID JS_GetClassID(JSValue v);
|
||||||
JS_EXTERN int JS_NewClass(JSRuntime *rt, JSClassID class_id, const JSClassDef *class_def);
|
JS_EXTERN int JS_NewClass(JSRuntime *rt, JSClassID class_id, const JSClassDef *class_def);
|
||||||
JS_EXTERN int JS_IsRegisteredClass(JSRuntime *rt, JSClassID class_id);
|
JS_EXTERN int JS_IsRegisteredClass(JSRuntime *rt, JSClassID class_id);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue