sinuous
Version:
🧬 Small, fast, reactive render engine
2 lines (1 loc) • 1.12 kB
JavaScript
!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n=n||self).observable={})}(this,function(n){var t;function u(n){function u(r){return void 0===r?(t&&u.t[u.t.length-1]!==t&&(u.t.push(t),t.u.push(u)),n):(n=r,u.t.forEach(function(n){return n.i=0}),u.t.slice().forEach(function(n){n.i||n()}),n)}return u.$o=1,u.t=[],u}function r(n,u){function r(){var f=t;return t&&t.v.push(r),o(r),r.i=1,t=r,u=n(u),t=f,u}return n.p=r,f(r),r(),function(){return r.i?r.u.forEach(function(n){return n()}):u=r(),u}}function o(n){n.v.forEach(o),n.u.forEach(function(t){t.t.splice(t.t.indexOf(n),1)}),n.s.forEach(function(n){return n()}),f(n)}function f(n){n.u=[],n.v=[],n.s=[]}n.S=r,n.cleanup=function(n){return t&&t.s.push(n),n},n.isListening=function(){return!!t},n.o=u,n.observable=u,n.root=function(n){var u=t,r=function(){};t=r,f(r);var i=n(function(){o(r),t=void 0});return t=u,i},n.sample=function(n){var u=t;t=void 0;var r=n();return t=u,r},n.subscribe=function(n){return r(n),function(){return o(n.p)}},n.unsubscribe=function(n){o(n.p)}});