{"action":"created","issue":{"url":"https://api.github.com/repos/strongloop/express/issues/2561","labels_url":"https://api.github.com/repos/strongloop/express/issues/2561/labels{/name}","comments_url":"https://api.github.com/repos/strongloop/express/issues/2561/comments","events_url":"https://api.github.com/repos/strongloop/express/issues/2561/events","html_url":"https://github.com/strongloop/express/issues/2561","id":58609028,"number":2561,"title":"`Cannot redefine property: name` in createApplication since v4.10","user":{"login":"ekyo","id":1851447,"avatar_url":"https://avatars.githubusercontent.com/u/1851447?v=3","gravatar_id":"","url":"https://api.github.com/users/ekyo","html_url":"https://github.com/ekyo","followers_url":"https://api.github.com/users/ekyo/followers","following_url":"https://api.github.com/users/ekyo/following{/other_user}","gists_url":"https://api.github.com/users/ekyo/gists{/gist_id}","starred_url":"https://api.github.com/users/ekyo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ekyo/subscriptions","organizations_url":"https://api.github.com/users/ekyo/orgs","repos_url":"https://api.github.com/users/ekyo/repos","events_url":"https://api.github.com/users/ekyo/events{/privacy}","received_events_url":"https://api.github.com/users/ekyo/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/strongloop/express/labels/4.x","name":"4.x","color":"ededed"},{"url":"https://api.github.com/repos/strongloop/express/labels/bug","name":"bug","color":"fc2929"}],"state":"open","locked":false,"assignee":{"login":"dougwilson","id":67512,"avatar_url":"https://avatars.githubusercontent.com/u/67512?v=3","gravatar_id":"","url":"https://api.github.com/users/dougwilson","html_url":"https://github.com/dougwilson","followers_url":"https://api.github.com/users/dougwilson/followers","following_url":"https://api.github.com/users/dougwilson/following{/other_user}","gists_url":"https://api.github.com/users/dougwilson/gists{/gist_id}","starred_url":"https://api.github.com/users/dougwilson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dougwilson/subscriptions","organizations_url":"https://api.github.com/users/dougwilson/orgs","repos_url":"https://api.github.com/users/dougwilson/repos","events_url":"https://api.github.com/users/dougwilson/events{/privacy}","received_events_url":"https://api.github.com/users/dougwilson/received_events","type":"User","site_admin":false},"milestone":null,"comments":7,"created_at":"2015-02-23T16:21:48Z","updated_at":"2015-02-23T17:04:51Z","closed_at":null,"body":"Issue happens in v4.10 and v4.12 but not in v4.9.8\r\n\r\nit can be reproduced easily using a coffee repl:\r\n\r\n    coffee> (require 'events').EventEmitter.prototype.name = \"letscrashthis\"\r\n    coffee> (require 'express')()\r\n\r\nIn my case, I ran into this issue because `require('events').EventEmitter.prototype.name`'s value at runtime before executing `require('express')()` is \"EventEmitter\" as a read-only property.\r\n\r\n In `createApplication()`, the line `mixin(app, EventEmitter.prototype);` causes the following error: \r\n\r\n    TypeError: Cannot redefine property: name\r\n      at Function.defineProperty (native)\r\n      at ./node_modules/express/node_modules/merge-descriptors/index.js:4:12\r\n      at Array.forEach (native)\r\n      at module.exports (./node_modules/express/node_modules/merge-descriptors/index.js:2:35)\r\n      at createApplication (./node_modules/express/lib/express.js:35:3)\r\n\r\nI am still investigating what is defining EventEmitter.prototype.name and will send more info when I find something"},"comment":{"url":"https://api.github.com/repos/strongloop/express/issues/comments/75584279","html_url":"https://github.com/strongloop/express/issues/2561#issuecomment-75584279","issue_url":"https://api.github.com/repos/strongloop/express/issues/2561","id":75584279,"user":{"login":"ekyo","id":1851447,"avatar_url":"https://avatars.githubusercontent.com/u/1851447?v=3","gravatar_id":"","url":"https://api.github.com/users/ekyo","html_url":"https://github.com/ekyo","followers_url":"https://api.github.com/users/ekyo/followers","following_url":"https://api.github.com/users/ekyo/following{/other_user}","gists_url":"https://api.github.com/users/ekyo/gists{/gist_id}","starred_url":"https://api.github.com/users/ekyo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ekyo/subscriptions","organizations_url":"https://api.github.com/users/ekyo/orgs","repos_url":"https://api.github.com/users/ekyo/repos","events_url":"https://api.github.com/users/ekyo/events{/privacy}","received_events_url":"https://api.github.com/users/ekyo/received_events","type":"User","site_admin":false},"created_at":"2015-02-23T17:04:50Z","updated_at":"2015-02-23T17:04:50Z","body":"I had a line in my unit-tests causing this issue by assigning a name to just about everything's prototype, which wasn't intended to work this way (funny it did not cause any concerns before) and is now fixed for me.\r\n\r\nI guess in normal circumstances this would probably not happen.\r\n\r\nThanks for the help tough."}}