{"action":"created","issue":{"url":"https://api.github.com/repos/servo/servo/issues/8227","labels_url":"https://api.github.com/repos/servo/servo/issues/8227/labels{/name}","comments_url":"https://api.github.com/repos/servo/servo/issues/8227/comments","events_url":"https://api.github.com/repos/servo/servo/issues/8227/events","html_url":"https://github.com/servo/servo/pull/8227","id":113685573,"number":8227,"title":"Versioned dom","user":{"login":"asajeffrey","id":403333,"avatar_url":"https://avatars.githubusercontent.com/u/403333?v=3","gravatar_id":"","url":"https://api.github.com/users/asajeffrey","html_url":"https://github.com/asajeffrey","followers_url":"https://api.github.com/users/asajeffrey/followers","following_url":"https://api.github.com/users/asajeffrey/following{/other_user}","gists_url":"https://api.github.com/users/asajeffrey/gists{/gist_id}","starred_url":"https://api.github.com/users/asajeffrey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/asajeffrey/subscriptions","organizations_url":"https://api.github.com/users/asajeffrey/orgs","repos_url":"https://api.github.com/users/asajeffrey/repos","events_url":"https://api.github.com/users/asajeffrey/events{/privacy}","received_events_url":"https://api.github.com/users/asajeffrey/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/servo/servo/labels/S-awaiting-review","name":"S-awaiting-review","color":"d4c5f9"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":20,"created_at":"2015-10-27T20:47:49Z","updated_at":"2015-11-02T17:05:21Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/servo/servo/pulls/8227","html_url":"https://github.com/servo/servo/pull/8227","diff_url":"https://github.com/servo/servo/pull/8227.diff","patch_url":"https://github.com/servo/servo/pull/8227.patch"},"body":"This PR adds versioning to the DOM. There are now node.get_version and node.get_descendent_version methods that return a counter that is bumped when the node is dirtied. This is used to implement cache invalidation for caching HTMLCollection state. Caching HTMCollections gets a 1000x speedup in the Dromaeo DOM query tests.\r\n\r\nAddresses https://github.com/servo/servo/issues/6901, https://github.com/servo/servo/issues/3381 and https://github.com/servo/servo/issues/1916.\r\n\r\nReplaces PR https://github.com/servo/servo/pull/6927.\n\n<!-- Reviewable:start -->\n[<img src=\"https://reviewable.io/review_button.png\" height=40 alt=\"Review on Reviewable\"/>](https://reviewable.io/reviews/servo/servo/8227)\n<!-- Reviewable:end -->\n"},"comment":{"url":"https://api.github.com/repos/servo/servo/issues/comments/153084316","html_url":"https://github.com/servo/servo/pull/8227#issuecomment-153084316","issue_url":"https://api.github.com/repos/servo/servo/issues/8227","id":153084316,"user":{"login":"jdm","id":27658,"avatar_url":"https://avatars.githubusercontent.com/u/27658?v=3","gravatar_id":"","url":"https://api.github.com/users/jdm","html_url":"https://github.com/jdm","followers_url":"https://api.github.com/users/jdm/followers","following_url":"https://api.github.com/users/jdm/following{/other_user}","gists_url":"https://api.github.com/users/jdm/gists{/gist_id}","starred_url":"https://api.github.com/users/jdm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jdm/subscriptions","organizations_url":"https://api.github.com/users/jdm/orgs","repos_url":"https://api.github.com/users/jdm/repos","events_url":"https://api.github.com/users/jdm/events{/privacy}","received_events_url":"https://api.github.com/users/jdm/received_events","type":"User","site_admin":false},"created_at":"2015-11-02T17:05:20Z","updated_at":"2015-11-02T17:05:20Z","body":"@eefriedman Are you doing a full review of this, or just drive-by? Please set the assignee field for the former, so it's clear who's responsible for the next step here."}}