{"action":"created","comment":{"url":"https://api.github.com/repos/videojs/video.js/pulls/comments/89893594","pull_request_review_id":10424023,"id":89893594,"diff_hunk":"@@ -0,0 +1,377 @@\n+/**\n+ * @file mixins/evented.js\n+ */\n+import * as Dom from '../utils/dom';\n+import * as Fn from '../utils/fn';\n+import * as Events from '../utils/events';\n+\n+/**\n+ * Returns whether or not an object has had the evented mixin applied.\n+ *\n+ * @private\n+ * @param  {Object} object","path":"src/js/mixins/evented.js","position":12,"original_position":12,"commit_id":"2b780ebbbc5cfa533466347d6cf43f229b09531d","original_commit_id":"cc6c63e3772432fb1980b528936bce7ed24321fa","user":{"login":"misteroneill","id":214723,"avatar_url":"https://avatars.githubusercontent.com/u/214723?v=3","gravatar_id":"","url":"https://api.github.com/users/misteroneill","html_url":"https://github.com/misteroneill","followers_url":"https://api.github.com/users/misteroneill/followers","following_url":"https://api.github.com/users/misteroneill/following{/other_user}","gists_url":"https://api.github.com/users/misteroneill/gists{/gist_id}","starred_url":"https://api.github.com/users/misteroneill/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/misteroneill/subscriptions","organizations_url":"https://api.github.com/users/misteroneill/orgs","repos_url":"https://api.github.com/users/misteroneill/repos","events_url":"https://api.github.com/users/misteroneill/events{/privacy}","received_events_url":"https://api.github.com/users/misteroneill/received_events","type":"User","site_admin":false},"body":"I think I've done a pass that adds missing descriptions for params and returns.","created_at":"2016-11-28T21:54:50Z","updated_at":"2016-11-28T21:54:51Z","html_url":"https://github.com/videojs/video.js/pull/3690#discussion_r89893594","pull_request_url":"https://api.github.com/repos/videojs/video.js/pulls/3690","_links":{"self":{"href":"https://api.github.com/repos/videojs/video.js/pulls/comments/89893594"},"html":{"href":"https://github.com/videojs/video.js/pull/3690#discussion_r89893594"},"pull_request":{"href":"https://api.github.com/repos/videojs/video.js/pulls/3690"}}},"pull_request":{"url":"https://api.github.com/repos/videojs/video.js/pulls/3690","id":89702042,"html_url":"https://github.com/videojs/video.js/pull/3690","diff_url":"https://github.com/videojs/video.js/pull/3690.diff","patch_url":"https://github.com/videojs/video.js/pull/3690.patch","issue_url":"https://api.github.com/repos/videojs/video.js/issues/3690","number":3690,"state":"open","locked":false,"title":"Class-based Plugins for 6.0","user":{"login":"misteroneill","id":214723,"avatar_url":"https://avatars.githubusercontent.com/u/214723?v=3","gravatar_id":"","url":"https://api.github.com/users/misteroneill","html_url":"https://github.com/misteroneill","followers_url":"https://api.github.com/users/misteroneill/followers","following_url":"https://api.github.com/users/misteroneill/following{/other_user}","gists_url":"https://api.github.com/users/misteroneill/gists{/gist_id}","starred_url":"https://api.github.com/users/misteroneill/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/misteroneill/subscriptions","organizations_url":"https://api.github.com/users/misteroneill/orgs","repos_url":"https://api.github.com/users/misteroneill/repos","events_url":"https://api.github.com/users/misteroneill/events{/privacy}","received_events_url":"https://api.github.com/users/misteroneill/received_events","type":"User","site_admin":false},"body":"# Class-based Plugins for 6.0\r\n\r\nAs part of 6.0, we want to make some improvements to plugins while still supporting the current style of plugins for the most part. There are some minor backward-incompatibilities, but nothing that's likely to break existing plugins.\r\n\r\nThough this is technically a breaking change, _the old stuff should still work!_\r\n## Goals\r\n\r\nThese are the broad feature goals of this effort. The overarching approach will be to maintain simplicity throughout the implementation, avoiding assumptions and opinions whenever possible. For now, we are providing a foundation not a framework, but something both we and our users can build on easily.\r\n- Maintain support for \"basic\" plugins (i.e. a function that is added to `Player.prototype`).\r\n- Add a foundation for \"enhanced\" plugins with:\r\n  - Support for the basic lifecycle of initialization and disposal.\r\n  - Support for per-player state management.\r\n- For both types of plugins, add the following:\r\n  - Support for querying per-player plugin activation state.\r\n  - Support for a conventional `VERSION` property.\r\n## Specific Changes\r\n\r\nChanges that are backward-incompatible are marked with **[BI]**.\r\n- Add `videojs.registerPlugin` and `videojs.registerPlugins` and deprecate `videojs.plugin`.\r\n  - **[BI]** Registering a plugin with a name that already exists or conflicts with a `Player.prototype` method will now throw an error.\r\n- Add `videojs.getPlugin`, `videojs.getPlugins`, and `videojs.getPluginVersion`.\r\n- Add `Player#usingPlugin` to detect if a plugin has been initialized on a player.\r\n- Create `Plugin` base class for enhanced plugin functionality.\r\n  - This includes static methods for de-registering plugins, but those are not globally exposed and mostly used for testing.\r\n- Introduce semi-formal concept of mixins, which are functions that mutate an object in some way to add functionality:\r\n  - Create `mixins/evented`, which provides objects with methods from `Events` (`on`, `one`, `off`, and `trigger`). This uses an `eventBusEl_` as an event bus because the `Events` module doesn't play very nicely with non-element objects.\r\n  - Create `mixins/stateful`, which provides objects with a React-like `state` property and `setState` method - as well as triggering a `\"statechanged\"` event if the object has a `trigger` method.\r\n## Requirements Checklist\r\n- [x] Feature implemented / Bug fixed\r\n- [x] If necessary, more likely in a feature request than a bug fix\r\n  - [x] Unit Tests updated or fixed\r\n  - [x] Docs/guides updated\r\n  - [ ] Example created ([starter template on JSBin](http://jsbin.com/axedog/edit?html,output))\r\n- [ ] Reviewed by Two Core Contributors\r\n","created_at":"2016-10-17T20:59:48Z","updated_at":"2016-11-28T21:54:51Z","closed_at":null,"merged_at":null,"merge_commit_sha":"215f40e5f1b20c1efe7c66e3e1047fcbfbc5348d","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/videojs/video.js/pulls/3690/commits","review_comments_url":"https://api.github.com/repos/videojs/video.js/pulls/3690/comments","review_comment_url":"https://api.github.com/repos/videojs/video.js/pulls/comments{/number}","comments_url":"https://api.github.com/repos/videojs/video.js/issues/3690/comments","statuses_url":"https://api.github.com/repos/videojs/video.js/statuses/2b780ebbbc5cfa533466347d6cf43f229b09531d","head":{"label":"misteroneill:enhance-plugins","ref":"enhance-plugins","sha":"2b780ebbbc5cfa533466347d6cf43f229b09531d","user":{"login":"misteroneill","id":214723,"avatar_url":"https://avatars.githubusercontent.com/u/214723?v=3","gravatar_id":"","url":"https://api.github.com/users/misteroneill","html_url":"https://github.com/misteroneill","followers_url":"https://api.github.com/users/misteroneill/followers","following_url":"https://api.github.com/users/misteroneill/following{/other_user}","gists_url":"https://api.github.com/users/misteroneill/gists{/gist_id}","starred_url":"https://api.github.com/users/misteroneill/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/misteroneill/subscriptions","organizations_url":"https://api.github.com/users/misteroneill/orgs","repos_url":"https://api.github.com/users/misteroneill/repos","events_url":"https://api.github.com/users/misteroneill/events{/privacy}","received_events_url":"https://api.github.com/users/misteroneill/received_events","type":"User","site_admin":false},"repo":{"id":39393950,"name":"video.js","full_name":"misteroneill/video.js","owner":{"login":"misteroneill","id":214723,"avatar_url":"https://avatars.githubusercontent.com/u/214723?v=3","gravatar_id":"","url":"https://api.github.com/users/misteroneill","html_url":"https://github.com/misteroneill","followers_url":"https://api.github.com/users/misteroneill/followers","following_url":"https://api.github.com/users/misteroneill/following{/other_user}","gists_url":"https://api.github.com/users/misteroneill/gists{/gist_id}","starred_url":"https://api.github.com/users/misteroneill/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/misteroneill/subscriptions","organizations_url":"https://api.github.com/users/misteroneill/orgs","repos_url":"https://api.github.com/users/misteroneill/repos","events_url":"https://api.github.com/users/misteroneill/events{/privacy}","received_events_url":"https://api.github.com/users/misteroneill/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/misteroneill/video.js","description":"Video.js - open source HTML5 & Flash video player","fork":true,"url":"https://api.github.com/repos/misteroneill/video.js","forks_url":"https://api.github.com/repos/misteroneill/video.js/forks","keys_url":"https://api.github.com/repos/misteroneill/video.js/keys{/key_id}","collaborators_url":"https://api.github.com/repos/misteroneill/video.js/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/misteroneill/video.js/teams","hooks_url":"https://api.github.com/repos/misteroneill/video.js/hooks","issue_events_url":"https://api.github.com/repos/misteroneill/video.js/issues/events{/number}","events_url":"https://api.github.com/repos/misteroneill/video.js/events","assignees_url":"https://api.github.com/repos/misteroneill/video.js/assignees{/user}","branches_url":"https://api.github.com/repos/misteroneill/video.js/branches{/branch}","tags_url":"https://api.github.com/repos/misteroneill/video.js/tags","blobs_url":"https://api.github.com/repos/misteroneill/video.js/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/misteroneill/video.js/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/misteroneill/video.js/git/refs{/sha}","trees_url":"https://api.github.com/repos/misteroneill/video.js/git/trees{/sha}","statuses_url":"https://api.github.com/repos/misteroneill/video.js/statuses/{sha}","languages_url":"https://api.github.com/repos/misteroneill/video.js/languages","stargazers_url":"https://api.github.com/repos/misteroneill/video.js/stargazers","contributors_url":"https://api.github.com/repos/misteroneill/video.js/contributors","subscribers_url":"https://api.github.com/repos/misteroneill/video.js/subscribers","subscription_url":"https://api.github.com/repos/misteroneill/video.js/subscription","commits_url":"https://api.github.com/repos/misteroneill/video.js/commits{/sha}","git_commits_url":"https://api.github.com/repos/misteroneill/video.js/git/commits{/sha}","comments_url":"https://api.github.com/repos/misteroneill/video.js/comments{/number}","issue_comment_url":"https://api.github.com/repos/misteroneill/video.js/issues/comments{/number}","contents_url":"https://api.github.com/repos/misteroneill/video.js/contents/{+path}","compare_url":"https://api.github.com/repos/misteroneill/video.js/compare/{base}...{head}","merges_url":"https://api.github.com/repos/misteroneill/video.js/merges","archive_url":"https://api.github.com/repos/misteroneill/video.js/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/misteroneill/video.js/downloads","issues_url":"https://api.github.com/repos/misteroneill/video.js/issues{/number}","pulls_url":"https://api.github.com/repos/misteroneill/video.js/pulls{/number}","milestones_url":"https://api.github.com/repos/misteroneill/video.js/milestones{/number}","notifications_url":"https://api.github.com/repos/misteroneill/video.js/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/misteroneill/video.js/labels{/name}","releases_url":"https://api.github.com/repos/misteroneill/video.js/releases{/id}","deployments_url":"https://api.github.com/repos/misteroneill/video.js/deployments","created_at":"2015-07-20T16:03:45Z","updated_at":"2016-02-04T16:50:56Z","pushed_at":"2016-11-28T21:53:32Z","git_url":"git://github.com/misteroneill/video.js.git","ssh_url":"git@github.com:misteroneill/video.js.git","clone_url":"https://github.com/misteroneill/video.js.git","svn_url":"https://github.com/misteroneill/video.js","homepage":"www.videojs.com","size":106278,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":false,"has_downloads":false,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":4,"forks":0,"open_issues":4,"watchers":0,"default_branch":"master"}},"base":{"label":"videojs:master","ref":"master","sha":"9b9f89e5b33bc7cb1165c006db704c3cc9615740","user":{"login":"videojs","id":3287189,"avatar_url":"https://avatars.githubusercontent.com/u/3287189?v=3","gravatar_id":"","url":"https://api.github.com/users/videojs","html_url":"https://github.com/videojs","followers_url":"https://api.github.com/users/videojs/followers","following_url":"https://api.github.com/users/videojs/following{/other_user}","gists_url":"https://api.github.com/users/videojs/gists{/gist_id}","starred_url":"https://api.github.com/users/videojs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/videojs/subscriptions","organizations_url":"https://api.github.com/users/videojs/orgs","repos_url":"https://api.github.com/users/videojs/repos","events_url":"https://api.github.com/users/videojs/events{/privacy}","received_events_url":"https://api.github.com/users/videojs/received_events","type":"Organization","site_admin":false},"repo":{"id":667006,"name":"video.js","full_name":"videojs/video.js","owner":{"login":"videojs","id":3287189,"avatar_url":"https://avatars.githubusercontent.com/u/3287189?v=3","gravatar_id":"","url":"https://api.github.com/users/videojs","html_url":"https://github.com/videojs","followers_url":"https://api.github.com/users/videojs/followers","following_url":"https://api.github.com/users/videojs/following{/other_user}","gists_url":"https://api.github.com/users/videojs/gists{/gist_id}","starred_url":"https://api.github.com/users/videojs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/videojs/subscriptions","organizations_url":"https://api.github.com/users/videojs/orgs","repos_url":"https://api.github.com/users/videojs/repos","events_url":"https://api.github.com/users/videojs/events{/privacy}","received_events_url":"https://api.github.com/users/videojs/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/videojs/video.js","description":"Video.js - open source HTML5 & Flash video player","fork":false,"url":"https://api.github.com/repos/videojs/video.js","forks_url":"https://api.github.com/repos/videojs/video.js/forks","keys_url":"https://api.github.com/repos/videojs/video.js/keys{/key_id}","collaborators_url":"https://api.github.com/repos/videojs/video.js/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/videojs/video.js/teams","hooks_url":"https://api.github.com/repos/videojs/video.js/hooks","issue_events_url":"https://api.github.com/repos/videojs/video.js/issues/events{/number}","events_url":"https://api.github.com/repos/videojs/video.js/events","assignees_url":"https://api.github.com/repos/videojs/video.js/assignees{/user}","branches_url":"https://api.github.com/repos/videojs/video.js/branches{/branch}","tags_url":"https://api.github.com/repos/videojs/video.js/tags","blobs_url":"https://api.github.com/repos/videojs/video.js/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/videojs/video.js/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/videojs/video.js/git/refs{/sha}","trees_url":"https://api.github.com/repos/videojs/video.js/git/trees{/sha}","statuses_url":"https://api.github.com/repos/videojs/video.js/statuses/{sha}","languages_url":"https://api.github.com/repos/videojs/video.js/languages","stargazers_url":"https://api.github.com/repos/videojs/video.js/stargazers","contributors_url":"https://api.github.com/repos/videojs/video.js/contributors","subscribers_url":"https://api.github.com/repos/videojs/video.js/subscribers","subscription_url":"https://api.github.com/repos/videojs/video.js/subscription","commits_url":"https://api.github.com/repos/videojs/video.js/commits{/sha}","git_commits_url":"https://api.github.com/repos/videojs/video.js/git/commits{/sha}","comments_url":"https://api.github.com/repos/videojs/video.js/comments{/number}","issue_comment_url":"https://api.github.com/repos/videojs/video.js/issues/comments{/number}","contents_url":"https://api.github.com/repos/videojs/video.js/contents/{+path}","compare_url":"https://api.github.com/repos/videojs/video.js/compare/{base}...{head}","merges_url":"https://api.github.com/repos/videojs/video.js/merges","archive_url":"https://api.github.com/repos/videojs/video.js/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/videojs/video.js/downloads","issues_url":"https://api.github.com/repos/videojs/video.js/issues{/number}","pulls_url":"https://api.github.com/repos/videojs/video.js/pulls{/number}","milestones_url":"https://api.github.com/repos/videojs/video.js/milestones{/number}","notifications_url":"https://api.github.com/repos/videojs/video.js/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/videojs/video.js/labels{/name}","releases_url":"https://api.github.com/repos/videojs/video.js/releases{/id}","deployments_url":"https://api.github.com/repos/videojs/video.js/deployments","created_at":"2010-05-14T18:45:10Z","updated_at":"2016-11-28T20:38:08Z","pushed_at":"2016-11-28T21:53:33Z","git_url":"git://github.com/videojs/video.js.git","ssh_url":"git@github.com:videojs/video.js.git","clone_url":"https://github.com/videojs/video.js.git","svn_url":"https://github.com/videojs/video.js","homepage":"www.videojs.com","size":115460,"stargazers_count":14330,"watchers_count":14330,"language":"JavaScript","has_issues":true,"has_downloads":false,"has_wiki":true,"has_pages":true,"forks_count":4145,"mirror_url":null,"open_issues_count":237,"forks":4145,"open_issues":237,"watchers":14330,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/videojs/video.js/pulls/3690"},"html":{"href":"https://github.com/videojs/video.js/pull/3690"},"issue":{"href":"https://api.github.com/repos/videojs/video.js/issues/3690"},"comments":{"href":"https://api.github.com/repos/videojs/video.js/issues/3690/comments"},"review_comments":{"href":"https://api.github.com/repos/videojs/video.js/pulls/3690/comments"},"review_comment":{"href":"https://api.github.com/repos/videojs/video.js/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/videojs/video.js/pulls/3690/commits"},"statuses":{"href":"https://api.github.com/repos/videojs/video.js/statuses/2b780ebbbc5cfa533466347d6cf43f229b09531d"}}}}
{"actor":{"display_login":"misteroneill"}}