{"action":"closed","issue":{"url":"https://api.github.com/repos/Polymer/polymer/issues/2653","repository_url":"https://api.github.com/repos/Polymer/polymer","labels_url":"https://api.github.com/repos/Polymer/polymer/issues/2653/labels{/name}","comments_url":"https://api.github.com/repos/Polymer/polymer/issues/2653/comments","events_url":"https://api.github.com/repos/Polymer/polymer/issues/2653/events","html_url":"https://github.com/Polymer/polymer/issues/2653","id":114333561,"number":2653,"title":"Allow late upgrading of bound elements","user":{"login":"kevinpschaaf","id":1354932,"avatar_url":"https://avatars.githubusercontent.com/u/1354932?v=3","gravatar_id":"","url":"https://api.github.com/users/kevinpschaaf","html_url":"https://github.com/kevinpschaaf","followers_url":"https://api.github.com/users/kevinpschaaf/followers","following_url":"https://api.github.com/users/kevinpschaaf/following{/other_user}","gists_url":"https://api.github.com/users/kevinpschaaf/gists{/gist_id}","starred_url":"https://api.github.com/users/kevinpschaaf/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kevinpschaaf/subscriptions","organizations_url":"https://api.github.com/users/kevinpschaaf/orgs","repos_url":"https://api.github.com/users/kevinpschaaf/repos","events_url":"https://api.github.com/users/kevinpschaaf/events{/privacy}","received_events_url":"https://api.github.com/users/kevinpschaaf/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/Polymer/polymer/labels/p1","name":"p1","color":"eb6420"},{"url":"https://api.github.com/repos/Polymer/polymer/labels/performance","name":"performance","color":"FF9500"}],"state":"closed","locked":false,"assignee":{"login":"kevinpschaaf","id":1354932,"avatar_url":"https://avatars.githubusercontent.com/u/1354932?v=3","gravatar_id":"","url":"https://api.github.com/users/kevinpschaaf","html_url":"https://github.com/kevinpschaaf","followers_url":"https://api.github.com/users/kevinpschaaf/followers","following_url":"https://api.github.com/users/kevinpschaaf/following{/other_user}","gists_url":"https://api.github.com/users/kevinpschaaf/gists{/gist_id}","starred_url":"https://api.github.com/users/kevinpschaaf/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kevinpschaaf/subscriptions","organizations_url":"https://api.github.com/users/kevinpschaaf/orgs","repos_url":"https://api.github.com/users/kevinpschaaf/repos","events_url":"https://api.github.com/users/kevinpschaaf/events{/privacy}","received_events_url":"https://api.github.com/users/kevinpschaaf/received_events","type":"User","site_admin":false},"milestone":null,"comments":7,"created_at":"2015-10-30T18:58:49Z","updated_at":"2016-02-18T20:42:13Z","closed_at":"2016-02-18T20:42:13Z","body":"Currently elements that are bound (i.e. have data pushed to them by their host) must be upgraded prior to data propagation.  This is because the act of upgrading installs accessors on the element via its prototype, which may be shadowed by data values propagated to the instance earlier by the host.\r\n\r\nThis is typically not an issue when an element imports all of its dependencies before registering, which guarantees that when a host stamps its template, the children upgrade prior to the host pushing its data.\r\n\r\nHowever, to support lazy upgrade use cases, elements would need to support reading instance values for properties with accessors, deleting the instance values, and passing them into the initial configuration / setters.  This should likely be an option via an attribute (e.g. `late-bind`) so that all instances aren't taxed with this extra processing."}}