diff --git a/quickjs.c b/quickjs.c index bd9692e..e8e1ced 100644 --- a/quickjs.c +++ b/quickjs.c @@ -51869,6 +51869,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 05f2b55..b253069 100644 --- a/quickjs.h +++ b/quickjs.h @@ -947,6 +947,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 {