{"action":"created","issue":{"url":"https://api.github.com/repos/SchizoDuckie/DuckieTV/issues/650","repository_url":"https://api.github.com/repos/SchizoDuckie/DuckieTV","labels_url":"https://api.github.com/repos/SchizoDuckie/DuckieTV/issues/650/labels{/name}","comments_url":"https://api.github.com/repos/SchizoDuckie/DuckieTV/issues/650/comments","events_url":"https://api.github.com/repos/SchizoDuckie/DuckieTV/issues/650/events","html_url":"https://github.com/SchizoDuckie/DuckieTV/issues/650","id":138740143,"number":650,"title":"'Object.observe' is deprecated and will be removed in M50, around April 2016.","user":{"login":"garfield69","id":6933240,"avatar_url":"https://avatars.githubusercontent.com/u/6933240?v=3","gravatar_id":"","url":"https://api.github.com/users/garfield69","html_url":"https://github.com/garfield69","followers_url":"https://api.github.com/users/garfield69/followers","following_url":"https://api.github.com/users/garfield69/following{/other_user}","gists_url":"https://api.github.com/users/garfield69/gists{/gist_id}","starred_url":"https://api.github.com/users/garfield69/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/garfield69/subscriptions","organizations_url":"https://api.github.com/users/garfield69/orgs","repos_url":"https://api.github.com/users/garfield69/repos","events_url":"https://api.github.com/users/garfield69/events{/privacy}","received_events_url":"https://api.github.com/users/garfield69/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/SchizoDuckie/DuckieTV/labels/0%20-%20Backlog","name":"0 - Backlog","color":"666666"},{"url":"https://api.github.com/repos/SchizoDuckie/DuckieTV/labels/Chore","name":"Chore","color":"fef2c0"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2016-03-06T00:57:08Z","updated_at":"2016-03-12T19:21:07Z","closed_at":null,"body":"Warning on DuckieTV console log from chromium 49:\r\n\r\n>'Object.observe' is deprecated and will be removed in M50, around April 2016.\r\n>See https://www.chromestatus.com/features/6147094632988672 for more details.\r\n\r\nimpacted code:\r\n```javascript\r\njs\\app.standalone.systray.js (1 hit)\r\n\tLine 212:             Object.observe(CRUD.stats, function() {\r\njs\\controllers\\serieslist\\SeriesListCtrl.js (1 hit)\r\n\tLine 53:         Object.observe(SeriesListState.state, function(newValue) {\r\njs\\directives\\calendar.js (1 hit)\r\n\tLine 36:             Object.observe(SidePanelState.state, function(newValue) {\r\njs\\directives\\queryMonitor.js (1 hit)\r\n\tLine 18:                 Object.observe(CRUD.stats, function() {\r\njs\\directives\\sidePanel.js (1 hit)\r\n\tLine 51:             Object.observe(SidePanelState.state, function(newValue) {\r\njs\\vendor\\object-observe.min.js (4 hits)\r\n\tLine 1: Object.observe||function(f,C,v){var k,l,H=\"add update delete reconfigure setPrototype preventExtensions\".split(\" \"),I=v.Node?function(a){return a&&a instanceof v.Node}:function(a){return a&&\"object\"===typeof a&&\"number\"===typeof a.nodeType&&\"string\"===typeof a.nodeName},J=C.isArray||function(a){return function(c){return\"[object Array]\"===a.call(c)}}(f.prototype.toString),t=C.prototype.indexOf?function(a,c,b){return c.indexOf(a,b)}:function(a,c,b){for(b=b||0;b<c.length;b++)if(c[b]===a)return b;return-1},\r\n\tLine 9: e||l.set(b,e={observed:x(),changeRecords:[]});e.observed.set(a,{acceptList:d.slice(),data:c});c.handlers.set(b,e)},r=function(a,c,b,d){c.handlers.forEach(function(c){var f=c.observed.get(a).acceptList;(\"string\"!==typeof d||-1===t(d,f))&&-1<t(b.type,f)&&c.changeRecords.push(b)})};k=x();l=x();f.observe=function(a,c,b){if(null===a||\"object\"!==typeof a&&\"function\"!==typeof a)throw new TypeError(\"Object.observe cannot observe non-object\");if(\"function\"!==typeof c)throw new TypeError(\"Object.observe cannot deliver to non-function\");\r\n\tLine 9: e||l.set(b,e={observed:x(),changeRecords:[]});e.observed.set(a,{acceptList:d.slice(),data:c});c.handlers.set(b,e)},r=function(a,c,b,d){c.handlers.forEach(function(c){var f=c.observed.get(a).acceptList;(\"string\"!==typeof d||-1===t(d,f))&&-1<t(b.type,f)&&c.changeRecords.push(b)})};k=x();l=x();f.observe=function(a,c,b){if(null===a||\"object\"!==typeof a&&\"function\"!==typeof a)throw new TypeError(\"Object.observe cannot observe non-object\");if(\"function\"!==typeof c)throw new TypeError(\"Object.observe cannot deliver to non-function\");\r\n\tLine 10: if(f.isFrozen&&f.isFrozen(c))throw new TypeError(\"Object.observe cannot deliver to a frozen function object\");J(b)||(b=H);var d=k.get(a);if(d)G(a,d,c,b);else{var d=void 0,e=I(a)?[]:D(a),h=[],l,g=0,d={handlers:x(),frozen:f.isFrozen?f.isFrozen(a):!1,extensible:f.isExtensible?f.isExtensible(a):!0,proto:y&&y(a),properties:e,values:h,notifier:F(a,d)};if(u)for(l=d.descriptors=[];g<e.length;)l[g]=u(a,e[g]),h[g]=a[e[g++]];else for(;g<e.length;)h[g]=a[e[g++]];k.set(a,d);G(a,d,c,b);1===k.size&&A(E)}return a};\r\n```\r\n\r\nIt seems we need to replace Object.observe [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe) with proxy\r\n[https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy) although its not a 1:1 replacement."},"comment":{"url":"https://api.github.com/repos/SchizoDuckie/DuckieTV/issues/comments/195794066","html_url":"https://github.com/SchizoDuckie/DuckieTV/issues/650#issuecomment-195794066","issue_url":"https://api.github.com/repos/SchizoDuckie/DuckieTV/issues/650","id":195794066,"user":{"login":"garfield69","id":6933240,"avatar_url":"https://avatars.githubusercontent.com/u/6933240?v=3","gravatar_id":"","url":"https://api.github.com/users/garfield69","html_url":"https://github.com/garfield69","followers_url":"https://api.github.com/users/garfield69/followers","following_url":"https://api.github.com/users/garfield69/following{/other_user}","gists_url":"https://api.github.com/users/garfield69/gists{/gist_id}","starred_url":"https://api.github.com/users/garfield69/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/garfield69/subscriptions","organizations_url":"https://api.github.com/users/garfield69/orgs","repos_url":"https://api.github.com/users/garfield69/repos","events_url":"https://api.github.com/users/garfield69/events{/privacy}","received_events_url":"https://api.github.com/users/garfield69/received_events","type":"User","site_admin":false},"created_at":"2016-03-12T19:21:07Z","updated_at":"2016-03-12T19:21:07Z","body":"An option would be to add a Object.observe polyfill, such as this one [https://github.com/MaxArt2501/object-observe](https://github.com/MaxArt2501/object-observe) or this one [https://github.com/jdarling/Object.observe](https://github.com/jdarling/Object.observe) although there  is bound be be some increased cost in CPU and memory usage."}}