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;
}
/* 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;
}
/* 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;
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);