Interpretation Algorithm calls some() on an OrderedSet

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.)

Received on Wednesday, 25 June 2014 03:09:41 UTC