Skip to content
  1. Sep 11, 2012
  2. Sep 10, 2012
  3. Sep 06, 2012
  4. Sep 05, 2012
  5. Sep 04, 2012
  6. Sep 03, 2012
  7. Sep 01, 2012
  8. Aug 30, 2012
  9. Aug 29, 2012
  10. Aug 28, 2012
  11. Aug 24, 2012
  12. Aug 20, 2012
  13. Aug 17, 2012
  14. Aug 16, 2012
  15. Aug 15, 2012
  16. Aug 10, 2012
  17. Aug 09, 2012
  18. Aug 07, 2012
  19. Aug 06, 2012
  20. Aug 04, 2012
  21. Aug 03, 2012
    • Jesse Glick's avatar
      [FIXED JENKINS-14495] Hetero lists not working correctly after adding elements. · dbb100da
      Jesse Glick authored
      Unlike [JENKINS-14514] this is a true fix rather than a workaround (now removed), and is more general.
      cjo9900 discovered that behaviors were being redundantly registered (as of 1.474 the monolithic JS is broken up);
      this caused some behaviors to be run repeatedly on the same elements, breaking reasonable expectations of some behaviors.
      The ideal fix would be to change Behavior.register to be idempotent: for example, key it by selector, then maintain a set of distinct behavior functions for each.
      Unfortunately some adjuncts directly call Behavior.list.unshift, bypassing register(...), which would be tricky to intercept (would need to make a mock of Array).
      The known one cases are in core, but it is possible plugin adjuncts do this too, in which case it would be incompatible to (say) change the Array<Map<String,Behavior>> to a Map<String,Array<Behavior>>.
      Instead, permitting redundant registrations as before, and just silently skipping all but the first at runtime when applying behaviors.
      Beware that since adjuncts are loaded from multiple places, different JS function objects are registered each time, so a naive set of behavior functions does not work;
      have to identify functions by their toString in order to ensure that each is run only once.
      (Currently once _per selector_, conceivably >1x per element; could if necessary be refined to make sure a given behavior is only run once on a given element during one call to applySubtree even if the element matches multiple selectors.)
      dbb100da
  22. Aug 02, 2012
  23. Jul 31, 2012