From: Fabrice Bellard Date: Sat, 10 Oct 2026 14:46:08 +0000 (+0200) Subject: exported iterator helpers X-Git-Url: https://git.kaiwu.me/?a=commitdiff_plain;h=7cf73153567c9891864fbc6358a194dc6ba4e4b8;p=quickjs.git exported iterator helpers --- diff --git a/quickjs.c b/quickjs.c index 8fec2f2..a1787b2 100644 --- a/quickjs.c +++ b/quickjs.c @@ -16679,7 +16679,7 @@ static JSValue JS_GetIterator2(JSContext *ctx, JSValueConst obj, return enum_obj; } -static JSValue JS_GetIterator(JSContext *ctx, JSValueConst obj, BOOL is_async) +JSValue JS_GetIterator(JSContext *ctx, JSValueConst obj, BOOL is_async) { JSValue method, ret, sync_iter; @@ -16755,8 +16755,8 @@ static JSValue JS_IteratorNext2(JSContext *ctx, JSValueConst enum_obj, } /* Note: always return JS_UNDEFINED when *pdone = TRUE. */ -static JSValue JS_IteratorNext(JSContext *ctx, JSValueConst enum_obj, - JSValueConst method, BOOL *pdone) +JSValue JS_IteratorNext(JSContext *ctx, JSValueConst enum_obj, + JSValueConst method, BOOL *pdone) { JSValue obj, value, done_val; int done; @@ -16790,8 +16790,8 @@ static JSValue JS_IteratorNext(JSContext *ctx, JSValueConst enum_obj, } /* return < 0 in case of exception */ -static int JS_IteratorClose(JSContext *ctx, JSValueConst enum_obj, - BOOL is_exception_pending) +int JS_IteratorClose(JSContext *ctx, JSValueConst enum_obj, + BOOL is_exception_pending) { JSValue method, ret, ex_obj; int res; diff --git a/quickjs.h b/quickjs.h index 069097a..e3c366a 100644 --- a/quickjs.h +++ b/quickjs.h @@ -1151,6 +1151,14 @@ int JS_SetPropertyFunctionList(JSContext *ctx, JSValueConst obj, const JSCFunctionListEntry *tab, int len); +/* iterator helpers */ + +JSValue JS_GetIterator(JSContext *ctx, JSValueConst obj, JS_BOOL is_async); +JSValue JS_IteratorNext(JSContext *ctx, JSValueConst enum_obj, + JSValueConst method, JS_BOOL *pdone); +int JS_IteratorClose(JSContext *ctx, JSValueConst enum_obj, + JS_BOOL is_exception_pending); + /* C module definition */ typedef int JSModuleInitFunc(JSContext *ctx, JSModuleDef *m);