How about using deferred binding? (you already use it but in a very limited way) in other words, splitting Modernizr's code into <property-provider>s (and with fixed values when possible: i.e. almost nothing is supported in user.agent=ie6, history.pushState is supported in user.agent=ie8, etc.), combined with soft-permutations to avoid "permutation explosion" (at least in the number of generated files; I haven't ever used soft permutations so I don't really know how it all works) This would allow users of your library to do the NativeVideoPlayerWidget vs. FlashVideoPlayerWidget, or NativeDateBox vs. DateBox choice using deferred binding rather than if/else branches.
-- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.