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

