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;
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
return (class_id < rt->class_count &&
|
||||
|
|
|
@ -455,7 +455,10 @@ typedef struct JSClassDef {
|
|||
JSClassExoticMethods *exotic;
|
||||
} JSClassDef;
|
||||
|
||||
#define JS_INVALID_CLASS_ID 0
|
||||
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_IsRegisteredClass(JSRuntime *rt, JSClassID class_id);
|
||||
|
||||
|
|
Loading…
Reference in a new issue