Globlization and Object.system.load
I was talking with Nebojša about the Object.system.load interface for loading globalization, thinking from the user side. Brendan's email suggested something like this: Object.system.load = function(name, callback) { if (name === '@g11n') { callback(v8Locale); } }; That would make something like this the minimum code needed to use the module: var g11n; Object.system.load(@g11n, function (g11n_module) { g11n = g11n_module; }); What if we define load to be something like the following? Object.system.load = function(name, callback) { if (name === '@g11n') { if (callback) { callback(v8Locale); } else { return v8Locale; } } }; That way, a user who can afford the delay, or know that this is immediate in Chrome, can simply do: var g11n = Object.system.load(@g11n); While the users who want the callback, can call it using the proper method. Roozbeh ___ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss
Re: Globlization and Object.system.load
I didn't make up load from whole cloth, there's a proposal at http://wiki.ecmascript.org/doku.php?id=harmony:module_loaders Module people should weigh in. /be On Nov 17, 2011, at 3:08 PM, Roozbeh Pournader wrote: I was talking with Nebojša about the Object.system.load interface for loading globalization, thinking from the user side. Brendan's email suggested something like this: Object.system.load = function(name, callback) { if (name === '@g11n') { callback(v8Locale); } }; That would make something like this the minimum code needed to use the module: var g11n; Object.system.load(@g11n, function (g11n_module) { g11n = g11n_module; }); What if we define load to be something like the following? Object.system.load = function(name, callback) { if (name === '@g11n') { if (callback) { callback(v8Locale); } else { return v8Locale; } } }; That way, a user who can afford the delay, or know that this is immediate in Chrome, can simply do: var g11n = Object.system.load(@g11n); While the users who want the callback, can call it using the proper method. Roozbeh ___ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss ___ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss
Re: Globlization and Object.system.load
On Thu, Nov 17, 2011 at 3:08 PM, Roozbeh Pournader rooz...@google.com wrote: That would make something like this the minimum code needed to use the module: var g11n; Object.system.load(@g11n, function (g11n_module) { g11n = g11n_module; }); I guess I was wrong about the minimum code. The minimum code is something like this: Object.system.load(@g11n, function (g11n) { // put all the code that uses g11n in here }); I actually like this. I think I should just take back my comment... Roozbeh ___ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss
Re: Globlization and Object.system.load
We intend to have a synchronous API for accessing the built-in modules (those beginning with @ in their URL), as well as a synchronous way to access modules that have already been loaded. This went by briefly in July: https://mail.mozilla.org/pipermail/es-discuss/2011-July/015929.html I'm behind in work on fleshing out the API. I'll get back on this ASAP and update the list. Dave On Nov 17, 2011, at 3:23 PM, Brendan Eich wrote: I didn't make up load from whole cloth, there's a proposal at http://wiki.ecmascript.org/doku.php?id=harmony:module_loaders Module people should weigh in. /be On Nov 17, 2011, at 3:08 PM, Roozbeh Pournader wrote: I was talking with Nebojša about the Object.system.load interface for loading globalization, thinking from the user side. Brendan's email suggested something like this: Object.system.load = function(name, callback) { if (name === '@g11n') { callback(v8Locale); } }; That would make something like this the minimum code needed to use the module: var g11n; Object.system.load(@g11n, function (g11n_module) { g11n = g11n_module; }); What if we define load to be something like the following? Object.system.load = function(name, callback) { if (name === '@g11n') { if (callback) { callback(v8Locale); } else { return v8Locale; } } }; That way, a user who can afford the delay, or know that this is immediate in Chrome, can simply do: var g11n = Object.system.load(@g11n); While the users who want the callback, can call it using the proper method. Roozbeh ___ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss ___ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss ___ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss
Re: Globlization and Object.system.load
On Nov 17, 2011, at 3:48 PM, Roozbeh Pournader wrote: On Thu, Nov 17, 2011 at 3:08 PM, Roozbeh Pournader rooz...@google.com wrote: That would make something like this the minimum code needed to use the module: var g11n; Object.system.load(@g11n, function (g11n_module) { g11n = g11n_module; }); I guess I was wrong about the minimum code. The minimum code is something like this: Object.system.load(@g11n, function (g11n) { // put all the code that uses g11n in here }); I actually like this. I think I should just take back my comment... I agreed with you before. :) When you know for sure that it can't block, you should have a synchronous API. Something like: var g11n = Object.system.loaded[@g11n]; Dave ___ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss