This article covers features introduced in SpiderMonkey js1.8
bool JS_ThrowStopIteration(JSContext *cx);
||The context in which to throw the
JS_ThrowStopIteration throws the appropriate
StopIteration object for the function currently executing in
.next method may throw
StopIteration when there are no more values left to iterate. The engine automatically catches the exception and exits the loop.
JSClass.enumerate offers a simpler way to customize object iteration.