On Wed, Apr 9, 2014 at 1:51 PM, Marcus Stade <[email protected]> wrote: > I don't think I'm making my case very clear, my apologies. Hopefully, I'll > be able to clarify in this message. > > >> No enforcement is required by the specification. If you create an >> iterator that doesn't fully conform to the iterator interface specification >> and then get surprising results, its your fault, not the implementation's. > > > This is the very point I'm trying to make: the spec uses language such as > "must" when declaring how iterators should behave, yet an implementation > isn't as you say required to enforce such behavior. In this case, I am > getting "surprising results" because the spec seems to say that the way I've > implemented the iterators above is flat out wrong; yet, the code runs just > fine and sugar such as `for..of` is working just as it would with a fully > conforming iterator. If it quacks like a duck.. > > I might be reaching, but I do think the language is confusing. If the intent > is to convey a practice or precedence set by the built in iterators, then > perhaps it's better to make this explicit or use words such as "recommended" > instead of "must". Perhaps I'm bike shedding, in which case I apologize. I > hope I've made my point clearer any way. > > Ps. I like what Scott's saying, which I think is pretty much what I'm trying > to say as well, albeit I'm doing a poorer job at it.
There's nothing wrong with authoring conformance requirements using MUST, but if it's unclear that they're for the author, that's a bug to be fixed in the spec language. But as others have said, I don't see why this is an authoring conformance criteria at all. It's reasonable for the spec to state that all the built-in iterators are well-behaved in this respect, and to recommend that author-defined iterators are well-behaved as well (unless they have some behavior like rewindability), but requiring it as conformance criteria seems incorrect (because of the rewindability thing). ~TJ _______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

