Considering last week’s discussion on the i18n objects, I think I’ll follow this pattern:
· Constructor takes options, as specified · LocaleInfo takes an option to enable inferring. o Default to infer or not is an open question. · Have an isInferred() function to test if a property was inferred. · NO options property · Instead individual properties for each value. · Using the .derive method to derive a similar object. Discussion of each of these should probably have individual threads unless they directly impact each other; last week’s thread wandered between topics without really resolving them. My reasoning: · I didn’t use the options property because an options property is controversial, and leads to other “hard” questions, like: o Would options represent only the state when constructed? Or the current state? (Can they differ?) o Would options be read-only? (And then how would you use it). o Would options be a writable copy (which sounds expensive to me)? o Would options be mutable? · It’s clear that we want to be able to infer or not. If find the ability to set it in the constructor much simple. A disadvantage is that a library would have to figure out if inputs were inferred by using isInferred(). An advantage is that when a worker doesn’t really care if data is inferred or not, then the caller can pass a correctly inferred (or not) object to the worker. · If there isn’t an options property, then there are fewer mechanisms to create a similar derived object. The suggested .derive() function seemed simplest. -Shawn - Shawn http://blogs.msdn.com/shawnste (Selfhost 7908)
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss