Jochen, My bad. I only registered a callback for the iterable object returned from sequence(), but not for the iterator returned from [Symbol.iterator](). v8 did the right thing by freeing the iterable object in this case. So the bug was in my code.
Thanks for your response. Jane On Friday, January 22, 2016 at 12:54:25 AM UTC-8, Jochen Eisinger wrote: > > would you mind filing a bug for this? Ideally, with a self-contained repro > case! > > thanks > -jochen > > On Fri, Jan 22, 2016 at 12:23 AM Jane Chen <jxch...@gmail.com > <javascript:>> wrote: > >> Embedding v8 4.6.88. >> >> Suppose my native function sequence() returns a JavaScript iterable >> wrapping a long sequence of internal objects; function gc() invokes >> v8::Isolate::LowMemoryNotification(). To reduce memory consumption of the >> iterable, gc() needs to be called periodically to release the objects no >> longer referenced by the script. >> >> The following script is able to iterate through the sequence to the end, >> and when gc() is called, no weak callback is called to the object backing s: >> >> var i = 0; var s = sequence(); for (doc of s) { i++; if (i%1000 == 0) >> gc(); } i >> >> ==> 131108 >> >> >> However, if no variable s is defined, the execution stops after the first >> gc, because the object returned from sequence() is also collected at gc: >> >> var i = 0; for (doc of sequence()) { i++; if (i%1000 == 0) gc(); } i >> >> ==>1000 >> >> >> This looks like a bug to me. Can anyone chime in? >> >> -- >> -- >> v8-users mailing list >> v8-u...@googlegroups.com <javascript:> >> http://groups.google.com/group/v8-users >> --- >> You received this message because you are subscribed to the Google Groups >> "v8-users" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to v8-users+u...@googlegroups.com <javascript:>. >> For more options, visit https://groups.google.com/d/optout. >> > -- -- v8-users mailing list v8-users@googlegroups.com http://groups.google.com/group/v8-users --- You received this message because you are subscribed to the Google Groups "v8-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to v8-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.