Hi,  

I keep running into cases where I would like to know if function is pure. 
Although my interpretation of pure is not quite right but I don't know any 
better name. By pure in this context I would refer to functions that don't 
access an out scope variables and don't
do any mutations of itself or it's properties no references to itself could be 
an option too. My intended use case for such a feature is to allow transfer (by 
which I meant just coping) of such functions across workers / processes. For 
example in Mozilla add-on  
we have a context-menu API 
https://addons.mozilla.org/en-US/developers/docs/sdk/latest/packages/addon-kit/context-menu.html
which has limited declarative syntax for context definitions where specific 
context item should appear. There is also programable API through 
content-script files where one could write a predicate function that is invoked 
in the page scope with a node reference on which event has occurred. In most 
though pure function would have being enough but there is no way for us to know 
weather given function refers to outer scope variables. Same use cases arise 
with web workers and node processes too, it would be great if we had something 
like Function.isPure(f). Also as far as I know jits already capture this info 
for optimisation purposes maybe it could be exposed ? Another alternative could 
be pure(function() { ….  }) that would throw compile error if
function followed is not pure.

Thanks!
--
Irakli Gozalishvili
Web: http://www.jeditoolkit.com/

_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to