{"action":"created","issue":{"url":"https://api.github.com/repos/nodejs/node/issues/540","labels_url":"https://api.github.com/repos/nodejs/node/issues/540/labels{/name}","comments_url":"https://api.github.com/repos/nodejs/node/issues/540/comments","events_url":"https://api.github.com/repos/nodejs/node/issues/540/events","html_url":"https://github.com/nodejs/node/pull/540","id":55040686,"number":540,"title":"events: Alias EventEmitter.protoype.removeListener as EventEmitter.prototype.off ","user":{"login":"yosuke-furukawa","id":555645,"avatar_url":"https://avatars.githubusercontent.com/u/555645?v=3","gravatar_id":"","url":"https://api.github.com/users/yosuke-furukawa","html_url":"https://github.com/yosuke-furukawa","followers_url":"https://api.github.com/users/yosuke-furukawa/followers","following_url":"https://api.github.com/users/yosuke-furukawa/following{/other_user}","gists_url":"https://api.github.com/users/yosuke-furukawa/gists{/gist_id}","starred_url":"https://api.github.com/users/yosuke-furukawa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yosuke-furukawa/subscriptions","organizations_url":"https://api.github.com/users/yosuke-furukawa/orgs","repos_url":"https://api.github.com/users/yosuke-furukawa/repos","events_url":"https://api.github.com/users/yosuke-furukawa/events{/privacy}","received_events_url":"https://api.github.com/users/yosuke-furukawa/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/nodejs/node/labels/events","name":"events","color":"bfdadc"},{"url":"https://api.github.com/repos/nodejs/node/labels/semver-minor","name":"semver-minor","color":"fef2c0"}],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":22,"created_at":"2015-01-21T16:22:26Z","updated_at":"2015-11-05T00:50:52Z","closed_at":"2015-01-28T03:49:14Z","pull_request":{"url":"https://api.github.com/repos/nodejs/node/pulls/540","html_url":"https://github.com/nodejs/node/pull/540","diff_url":"https://github.com/nodejs/node/pull/540.diff","patch_url":"https://github.com/nodejs/node/pull/540.patch"},"body":"EventEmitter should have `off` alias for io.js beginners, preventing event leaks, API symmetry etc....\r\n \r\nI understand the historical reason why events does not have `off` alias. \r\n\r\nhttps://github.com/joyent/node/pull/3338\r\nhttps://github.com/joyent/node/issues/5352\r\n\r\nOf course, I understand the API of events is frozen in io.js. However io.js have already added the new API `getMaxListeners`.\r\nAnd this change does not break backward compatibility. I really would like to add this alias in io.js.\r\n\r\nI know io.js follows semantic versioning. If this changes is not patch version (v1.0.x), I can wait for io.js to merge this change until minor version up (v1.1.x)."},"comment":{"url":"https://api.github.com/repos/nodejs/node/issues/comments/153918164","html_url":"https://github.com/nodejs/node/pull/540#issuecomment-153918164","issue_url":"https://api.github.com/repos/nodejs/node/issues/540","id":153918164,"user":{"login":"ljharb","id":45469,"avatar_url":"https://avatars.githubusercontent.com/u/45469?v=3","gravatar_id":"","url":"https://api.github.com/users/ljharb","html_url":"https://github.com/ljharb","followers_url":"https://api.github.com/users/ljharb/followers","following_url":"https://api.github.com/users/ljharb/following{/other_user}","gists_url":"https://api.github.com/users/ljharb/gists{/gist_id}","starred_url":"https://api.github.com/users/ljharb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ljharb/subscriptions","organizations_url":"https://api.github.com/users/ljharb/orgs","repos_url":"https://api.github.com/users/ljharb/repos","events_url":"https://api.github.com/users/ljharb/events{/privacy}","received_events_url":"https://api.github.com/users/ljharb/received_events","type":"User","site_admin":false},"created_at":"2015-11-05T00:50:52Z","updated_at":"2015-11-05T00:50:52Z","body":"@Fishrock123 it doesn't make sense to you, or to @sam-github. It makes perfect sense to many developers. For example, I might see an event emitter, while not as a light switch, as a switch on a walkie talkie - where when \"on\", i hear things that come in on the channel, but when i want to stop listening, i turn it \"off\". There's many kinds of on/off switches so I'm sure we can anecdotally come up with a bunch that do, and a bunch that don't, make sense as metaphors for event emitters, but I don't see how that's convincing or valuable in either direction."}}