{"action":"created","issue":{"url":"https://api.github.com/repos/emberjs/ember.js/issues/12644","labels_url":"https://api.github.com/repos/emberjs/ember.js/issues/12644/labels{/name}","comments_url":"https://api.github.com/repos/emberjs/ember.js/issues/12644/comments","events_url":"https://api.github.com/repos/emberjs/ember.js/issues/12644/events","html_url":"https://github.com/emberjs/ember.js/issues/12644","id":118807494,"number":12644,"title":"Set a property with an array in a component will hang up everything","user":{"login":"nightire","id":1104018,"avatar_url":"https://avatars.githubusercontent.com/u/1104018?v=3","gravatar_id":"","url":"https://api.github.com/users/nightire","html_url":"https://github.com/nightire","followers_url":"https://api.github.com/users/nightire/followers","following_url":"https://api.github.com/users/nightire/following{/other_user}","gists_url":"https://api.github.com/users/nightire/gists{/gist_id}","starred_url":"https://api.github.com/users/nightire/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nightire/subscriptions","organizations_url":"https://api.github.com/users/nightire/orgs","repos_url":"https://api.github.com/users/nightire/repos","events_url":"https://api.github.com/users/nightire/events{/privacy}","received_events_url":"https://api.github.com/users/nightire/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":6,"created_at":"2015-11-25T10:40:27Z","updated_at":"2015-11-25T15:15:11Z","closed_at":null,"body":"I've encounter a weird problem, I try to reproduce it with ember-twiddle but let me explain it first.\r\n\r\nIn a component's `didRender` hook, I need to calculate some DOM related data and expose it to the nested components, so I did something like below:\r\n\r\n```javascript\r\nexport default Ember.Component.extend({\r\n  didRender() {\r\n    let clientRect = this.element.getBoundingClientRect();\r\n    let thresholdX = clientRect.right - 300;\r\n    let thresholdY = clientRect.height * 0.75;\r\n\r\n    // this will cause the problem\r\n    // this.set('threshold', [thresholdX, thresholdY]);\r\n\r\n    // this will work\r\n    this.setProperties({ thresholdX, thresholdY });\r\n  }\r\n});\r\n```\r\n\r\nAs commented above, set with an array will repeatedly throw deprecations crazily: \r\n\r\n![2015-11-25 18 37 44](https://cloud.githubusercontent.com/assets/1104018/11395059/b546eae6-93a3-11e5-845a-641ac148cd77.png)\r\n\r\nI try to use ember-twiddle to reproduce it, but since it will hang the browser up, so I can't save it to share.\r\n\r\nEmber v2.2.0"},"comment":{"url":"https://api.github.com/repos/emberjs/ember.js/issues/comments/159637305","html_url":"https://github.com/emberjs/ember.js/issues/12644#issuecomment-159637305","issue_url":"https://api.github.com/repos/emberjs/ember.js/issues/12644","id":159637305,"user":{"login":"nightire","id":1104018,"avatar_url":"https://avatars.githubusercontent.com/u/1104018?v=3","gravatar_id":"","url":"https://api.github.com/users/nightire","html_url":"https://github.com/nightire","followers_url":"https://api.github.com/users/nightire/followers","following_url":"https://api.github.com/users/nightire/following{/other_user}","gists_url":"https://api.github.com/users/nightire/gists{/gist_id}","starred_url":"https://api.github.com/users/nightire/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nightire/subscriptions","organizations_url":"https://api.github.com/users/nightire/orgs","repos_url":"https://api.github.com/users/nightire/repos","events_url":"https://api.github.com/users/nightire/events{/privacy}","received_events_url":"https://api.github.com/users/nightire/received_events","type":"User","site_admin":false},"created_at":"2015-11-25T15:15:11Z","updated_at":"2015-11-25T15:15:11Z","body":"@ptgamr with your inspiration, I made some test:\r\n\r\n```javascript\r\n// instead of setProperties\r\n// this.setProperties({ thresholdX, thresholdY }); \r\n\r\n// set them individually\r\nthis.set('thresholdX', thresholdX);\r\nthis.set('thresholdY', thresholdY);\r\n```\r\n\r\nthis works fine, but if you change `thresholdX` or `thresholdY` to an array (even only contain one element):\r\n\r\n```javascript\r\n// set them as an array\r\nthis.set('thresholdX', [thresholdX]);\r\nthis.set('thresholdY', [thresholdY]);\r\n```\r\n\r\ninfinite call again...now I'm pretty sure `Array` is not allowed here, but I currently busy to finish the project so can't tracking the code execution flow, hope someone can take a look on this."}}