@@ -775,14 +775,33 @@ JS_EXTERN void JS_DetachArrayBuffer(JSContext *ctx, JSValue obj);
775775JS_EXTERN uint8_t * JS_GetArrayBuffer (JSContext * ctx , size_t * psize , JSValue obj );
776776JS_EXTERN JS_BOOL JS_IsArrayBuffer (JSValue obj );
777777JS_EXTERN uint8_t * JS_GetUint8Array (JSContext * ctx , size_t * psize , JSValue obj );
778+
779+ typedef enum JSTypedArrayEnum {
780+ JS_TYPED_ARRAY_UINT8C = 0 ,
781+ JS_TYPED_ARRAY_INT8 ,
782+ JS_TYPED_ARRAY_UINT8 ,
783+ JS_TYPED_ARRAY_INT16 ,
784+ JS_TYPED_ARRAY_UINT16 ,
785+ JS_TYPED_ARRAY_INT32 ,
786+ JS_TYPED_ARRAY_UINT32 ,
787+ JS_TYPED_ARRAY_BIG_INT64 ,
788+ JS_TYPED_ARRAY_BIG_UINT64 ,
789+ JS_TYPED_ARRAY_FLOAT16 ,
790+ JS_TYPED_ARRAY_FLOAT32 ,
791+ JS_TYPED_ARRAY_FLOAT64 ,
792+ } JSTypedArrayEnum ;
793+
794+ JS_EXTERN JSValue JS_NewTypedArray (JSContext * ctx , int argc , JSValue * argv ,
795+ JSTypedArrayEnum array_type );
778796JS_EXTERN JSValue JS_GetTypedArrayBuffer (JSContext * ctx , JSValue obj ,
779797 size_t * pbyte_offset ,
780798 size_t * pbyte_length ,
781799 size_t * pbytes_per_element );
782800JS_EXTERN JSValue JS_NewUint8Array (JSContext * ctx , uint8_t * buf , size_t len ,
783801 JSFreeArrayBufferDataFunc * free_func , void * opaque ,
784802 JS_BOOL is_shared );
785- JS_EXTERN JS_BOOL JS_IsUint8Array (JSValue obj );
803+ /* returns -1 if not a typed array otherwise return a JSTypedArrayEnum value */
804+ JS_EXTERN int JS_GetTypedArrayType (JSValue obj );
786805JS_EXTERN JSValue JS_NewUint8ArrayCopy (JSContext * ctx , const uint8_t * buf , size_t len );
787806typedef struct {
788807 void * (* sab_alloc )(void * opaque , size_t size );
0 commit comments