/*! * Object.observe polyfill - v0.2.4 * by Massimo Artizzu (MaxArt2501) * * https://github.com/MaxArt2501/object-observe * * Licensed under the MIT License * See LICENSE for details */ Object.observe||function(e,t,n,r){"use strict";var o,i,s,c,a,f,u=["add","update","delete","reconfigure","setPrototype","preventExtensions"],p=t.isArray||(f=e.prototype.toString,function(e){return"[object Array]"===f.call(e)}),l=t.prototype.indexOf?t.indexOf||function(e,n,r){return t.prototype.indexOf.call(e,n,r)}:function(e,t,n){for(var r=n||0;r-1},get:function(n){return t[l(e,n)]},set:function(n,r){var o=l(e,n);-1===o?(e.push(n),t.push(r),this.size++):t[o]=r},delete:function(n){var r=l(e,n);r>-1&&(e.splice(r,1),t.splice(r,1),this.size--)},forEach:function(n){for(var r=0;r-1&&r.splice(o,1);return r})}return t}():function(t){var n,r,o=[];if("hasOwnProperty"in t)for(n in t)t.hasOwnProperty(n)&&o.push(n);else for(n in r=e.hasOwnProperty,t)r.call(t,n)&&o.push(n);return p(t)&&o.push("length"),o},v=e.getPrototypeOf,b=e.defineProperties&&e.getOwnPropertyDescriptor,y=n.requestAnimationFrame||n.webkitRequestAnimationFrame||(a=+new Date,function(e){return setTimeout(function(){e(+new Date-a)},17)}),g=function(t,n){var r,i=h(t),s=[],c=0;n={handlers:d(),frozen:!!e.isFrozen&&e.isFrozen(t),extensible:!e.isExtensible||e.isExtensible(t),proto:v&&v(t),properties:i,values:s,notifier:z(t,n)};if(b)for(r=n.descriptors=[];c-1&&t.changeRecords.push(n)})};o=d(),i=d(),e.observe=function(t,n,r){if(!t||"object"!=typeof t&&"function"!=typeof t)throw new TypeError("Object.observe cannot observe non-object");if("function"!=typeof n)throw new TypeError("Object.observe cannot deliver to non-function");if(e.isFrozen&&e.isFrozen(n))throw new TypeError("Object.observe cannot deliver to a frozen function object");if(void 0===r)r=u;else if(!r||"object"!=typeof r)throw new TypeError("Third argument to Object.observe must be an array of strings.");return function(e,t,n){var r=o.get(e);r?(j(r,e),E(e,r,t,n)):(r=g(e),E(e,r,t,n),1===o.size&&y(w))}(t,n,r),t},e.unobserve=function(e,t){if(null===e||"object"!=typeof e&&"function"!=typeof e)throw new TypeError("Object.unobserve cannot unobserve non-object");if("function"!=typeof t)throw new TypeError("Object.unobserve cannot deliver to non-function");var n,r=i.get(t);return r&&(n=r.observed.get(e))&&(r.observed.forEach(function(e,t){j(e.data,t)}),y(function(){m(r,t)}),1===r.observed.size&&r.observed.has(e)?i.delete(t):r.observed.delete(e),1===n.data.handlers.size?o.delete(e):n.data.handlers.delete(t)),e},e.getNotifier=function(t){if(null===t||"object"!=typeof t&&"function"!=typeof t)throw new TypeError("Object.getNotifier cannot getNotifier non-object");return e.isFrozen&&e.isFrozen(t)?null:z(t)},e.deliverChangeRecords=function(e){if("function"!=typeof e)throw new TypeError("Object.deliverChangeRecords cannot deliver to non-function");var t=i.get(e);t&&(t.observed.forEach(function(e,t){j(e.data,t)}),m(t,e))}}(Object,Array,this);