diff --git a/quickjs.c b/quickjs.c index 0feccb9..56b4c67 100644 --- a/quickjs.c +++ b/quickjs.c @@ -53347,6 +53347,15 @@ void JS_DetachArrayBuffer(JSContext *ctx, JSValueConst obj) } } +int JS_IsArrayBuffer(JSContext *js, JSValueConst obj) +{ + JSObject *p; + if (JS_VALUE_GET_TAG(obj) != JS_TAG_OBJECT) return 0; + p = JS_VALUE_GET_OBJ(obj); + if (p->class_id != JS_CLASS_ARRAY_BUFFER && p->class_id != JS_CLASS_SHARED_ARRAY_BUFFER) return 0; + return 1; +} + /* get an ArrayBuffer or SharedArrayBuffer */ static JSArrayBuffer *js_get_array_buffer(JSContext *ctx, JSValueConst obj) { diff --git a/quickjs.h b/quickjs.h index 419a4a7..f8e872a 100644 --- a/quickjs.h +++ b/quickjs.h @@ -911,6 +911,7 @@ JSValue JS_NewArrayBuffer(JSContext *ctx, uint8_t *buf, size_t len, JS_BOOL is_shared); JSValue JS_NewArrayBufferCopy(JSContext *ctx, const uint8_t *buf, size_t len); void JS_DetachArrayBuffer(JSContext *ctx, JSValueConst obj); +int JS_IsArrayBuffer(JSContext *js, JSValueConst obj); uint8_t *JS_GetArrayBuffer(JSContext *ctx, size_t *psize, JSValueConst obj); typedef enum JSTypedArrayEnum {