Interpretation Algorithm calls some() on an OrderedSet

Gavin Kistner <[email protected]> Tue, 24 Jun 2014 23:21:26 +0200
Newsgroups gmane.comp.web.voice
Message-ID <[email protected]>
Trace of a particular code path in the algorithm causes an OrderedSet() to have some() called on it, but this method is not defined for OrderedSet.

enterStates():
   statesToEnter = new OrderedSet()
   …
   computeEntrySet(…,statesToEnter,…)

computeEntrySet(…,statesToEnter,…):
   …
   addDescendantStatesToEnter(…,statesToEnter,…)

addDescendantStatesToEnter(state,statesToEnter,statesForDefaultEntry):
   …
   if not statesToEnter.some(…)


Either some() needs to be defined for OrderedSet, or the line above needs to become:
    if not statesToEnter.toList().some(…)


The same problem exists in addAncestorStatesToEnter()

(After getting quite far in the tests with LXSC I failed the 3rd preemption test, and decided to rewrite the core interpreter to match the latest spec algorithm in a very direct manner.)