{"action":"created","comment":{"url":"https://api.github.com/repos/Semmle/ql/pulls/comments/237413526","pull_request_review_id":179701729,"id":237413526,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIzNzQxMzUyNg==","diff_hunk":"@@ -11,8 +11,8 @@ could choose a name that makes the application invoke an unexpected method, whic\n exception. If this exception is not handled, it could be used to mount a denial-of-service attack.\n </p>\n <p>\n-For example, there might not be a method of the given name or the result of the lookup might not be\n-a function, which would cause the method call to throw a <code>TypeError</code> at runtime.\n+For example, there might not be a method of the given name, or the result of the lookup might not be","path":"javascript/ql/src/Security/CWE-754/UnvalidatedDynamicMethodCall.qhelp","position":6,"original_position":6,"commit_id":"45574d4eaa2900032ef6302bebdc04c2193016e6","original_commit_id":"45574d4eaa2900032ef6302bebdc04c2193016e6","user":{"login":"mc-semmle","id":42146119,"node_id":"MDQ6VXNlcjQyMTQ2MTE5","avatar_url":"https://avatars3.githubusercontent.com/u/42146119?v=4","gravatar_id":"","url":"https://api.github.com/users/mc-semmle","html_url":"https://github.com/mc-semmle","followers_url":"https://api.github.com/users/mc-semmle/followers","following_url":"https://api.github.com/users/mc-semmle/following{/other_user}","gists_url":"https://api.github.com/users/mc-semmle/gists{/gist_id}","starred_url":"https://api.github.com/users/mc-semmle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mc-semmle/subscriptions","organizations_url":"https://api.github.com/users/mc-semmle/orgs","repos_url":"https://api.github.com/users/mc-semmle/repos","events_url":"https://api.github.com/users/mc-semmle/events{/privacy}","received_events_url":"https://api.github.com/users/mc-semmle/received_events","type":"User","site_admin":false},"body":"line 35-36: add a comma for a better understanding:\r\nEven if the object only contains methods**,** it is still a good idea to perform this check in case other properties are added to the object later on.","created_at":"2018-11-29T09:44:38Z","updated_at":"2018-11-29T09:46:53Z","html_url":"https://github.com/Semmle/ql/pull/559#discussion_r237413526","pull_request_url":"https://api.github.com/repos/Semmle/ql/pulls/559","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/Semmle/ql/pulls/comments/237413526"},"html":{"href":"https://github.com/Semmle/ql/pull/559#discussion_r237413526"},"pull_request":{"href":"https://api.github.com/repos/Semmle/ql/pulls/559"}}},"pull_request":{"url":"https://api.github.com/repos/Semmle/ql/pulls/559","id":234285305,"node_id":"MDExOlB1bGxSZXF1ZXN0MjM0Mjg1MzA1","html_url":"https://github.com/Semmle/ql/pull/559","diff_url":"https://github.com/Semmle/ql/pull/559.diff","patch_url":"https://github.com/Semmle/ql/pull/559.patch","issue_url":"https://api.github.com/repos/Semmle/ql/issues/559","number":559,"state":"open","locked":false,"title":"JavaScript: Documentation review for new query `UnvalidatedDynamicMethodCall`.","user":{"login":"xiemaisi","id":501353,"node_id":"MDQ6VXNlcjUwMTM1Mw==","avatar_url":"https://avatars3.githubusercontent.com/u/501353?v=4","gravatar_id":"","url":"https://api.github.com/users/xiemaisi","html_url":"https://github.com/xiemaisi","followers_url":"https://api.github.com/users/xiemaisi/followers","following_url":"https://api.github.com/users/xiemaisi/following{/other_user}","gists_url":"https://api.github.com/users/xiemaisi/gists{/gist_id}","starred_url":"https://api.github.com/users/xiemaisi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xiemaisi/subscriptions","organizations_url":"https://api.github.com/users/xiemaisi/orgs","repos_url":"https://api.github.com/users/xiemaisi/repos","events_url":"https://api.github.com/users/xiemaisi/events{/privacy}","received_events_url":"https://api.github.com/users/xiemaisi/received_events","type":"User","site_admin":false},"body":"https://github.com/Semmle/ql/pull/555 was (deliberately) merged without doc review to facilitate testing.","created_at":"2018-11-28T13:56:20Z","updated_at":"2018-11-29T09:46:52Z","closed_at":null,"merged_at":null,"merge_commit_sha":"acc920171415a3e9562ed703ab4ba7db9aad6f28","assignee":{"login":"mc-semmle","id":42146119,"node_id":"MDQ6VXNlcjQyMTQ2MTE5","avatar_url":"https://avatars3.githubusercontent.com/u/42146119?v=4","gravatar_id":"","url":"https://api.github.com/users/mc-semmle","html_url":"https://github.com/mc-semmle","followers_url":"https://api.github.com/users/mc-semmle/followers","following_url":"https://api.github.com/users/mc-semmle/following{/other_user}","gists_url":"https://api.github.com/users/mc-semmle/gists{/gist_id}","starred_url":"https://api.github.com/users/mc-semmle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mc-semmle/subscriptions","organizations_url":"https://api.github.com/users/mc-semmle/orgs","repos_url":"https://api.github.com/users/mc-semmle/repos","events_url":"https://api.github.com/users/mc-semmle/events{/privacy}","received_events_url":"https://api.github.com/users/mc-semmle/received_events","type":"User","site_admin":false},"assignees":[{"login":"mc-semmle","id":42146119,"node_id":"MDQ6VXNlcjQyMTQ2MTE5","avatar_url":"https://avatars3.githubusercontent.com/u/42146119?v=4","gravatar_id":"","url":"https://api.github.com/users/mc-semmle","html_url":"https://github.com/mc-semmle","followers_url":"https://api.github.com/users/mc-semmle/followers","following_url":"https://api.github.com/users/mc-semmle/following{/other_user}","gists_url":"https://api.github.com/users/mc-semmle/gists{/gist_id}","starred_url":"https://api.github.com/users/mc-semmle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mc-semmle/subscriptions","organizations_url":"https://api.github.com/users/mc-semmle/orgs","repos_url":"https://api.github.com/users/mc-semmle/repos","events_url":"https://api.github.com/users/mc-semmle/events{/privacy}","received_events_url":"https://api.github.com/users/mc-semmle/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"requested_teams":[{"name":"js","id":2849576,"node_id":"MDQ6VGVhbTI4NDk1NzY=","slug":"js","description":"JavaScript analysis","privacy":"closed","url":"https://api.github.com/teams/2849576","members_url":"https://api.github.com/teams/2849576/members{/member}","repositories_url":"https://api.github.com/teams/2849576/repos","permission":"pull"}],"labels":[{"id":1013903216,"node_id":"MDU6TGFiZWwxMDEzOTAzMjE2","url":"https://api.github.com/repos/Semmle/ql/labels/JS","name":"JS","color":"edcc80","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/Semmle/ql/pulls/559/commits","review_comments_url":"https://api.github.com/repos/Semmle/ql/pulls/559/comments","review_comment_url":"https://api.github.com/repos/Semmle/ql/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Semmle/ql/issues/559/comments","statuses_url":"https://api.github.com/repos/Semmle/ql/statuses/45574d4eaa2900032ef6302bebdc04c2193016e6","head":{"label":"xiemaisi:js/invalid-dynamic-method-call","ref":"js/invalid-dynamic-method-call","sha":"45574d4eaa2900032ef6302bebdc04c2193016e6","user":{"login":"xiemaisi","id":501353,"node_id":"MDQ6VXNlcjUwMTM1Mw==","avatar_url":"https://avatars3.githubusercontent.com/u/501353?v=4","gravatar_id":"","url":"https://api.github.com/users/xiemaisi","html_url":"https://github.com/xiemaisi","followers_url":"https://api.github.com/users/xiemaisi/followers","following_url":"https://api.github.com/users/xiemaisi/following{/other_user}","gists_url":"https://api.github.com/users/xiemaisi/gists{/gist_id}","starred_url":"https://api.github.com/users/xiemaisi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xiemaisi/subscriptions","organizations_url":"https://api.github.com/users/xiemaisi/orgs","repos_url":"https://api.github.com/users/xiemaisi/repos","events_url":"https://api.github.com/users/xiemaisi/events{/privacy}","received_events_url":"https://api.github.com/users/xiemaisi/received_events","type":"User","site_admin":false},"repo":{"id":143419908,"node_id":"MDEwOlJlcG9zaXRvcnkxNDM0MTk5MDg=","name":"ql","full_name":"xiemaisi/ql","private":false,"owner":{"login":"xiemaisi","id":501353,"node_id":"MDQ6VXNlcjUwMTM1Mw==","avatar_url":"https://avatars3.githubusercontent.com/u/501353?v=4","gravatar_id":"","url":"https://api.github.com/users/xiemaisi","html_url":"https://github.com/xiemaisi","followers_url":"https://api.github.com/users/xiemaisi/followers","following_url":"https://api.github.com/users/xiemaisi/following{/other_user}","gists_url":"https://api.github.com/users/xiemaisi/gists{/gist_id}","starred_url":"https://api.github.com/users/xiemaisi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xiemaisi/subscriptions","organizations_url":"https://api.github.com/users/xiemaisi/orgs","repos_url":"https://api.github.com/users/xiemaisi/repos","events_url":"https://api.github.com/users/xiemaisi/events{/privacy}","received_events_url":"https://api.github.com/users/xiemaisi/received_events","type":"User","site_admin":false},"html_url":"https://github.com/xiemaisi/ql","description":null,"fork":true,"url":"https://api.github.com/repos/xiemaisi/ql","forks_url":"https://api.github.com/repos/xiemaisi/ql/forks","keys_url":"https://api.github.com/repos/xiemaisi/ql/keys{/key_id}","collaborators_url":"https://api.github.com/repos/xiemaisi/ql/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/xiemaisi/ql/teams","hooks_url":"https://api.github.com/repos/xiemaisi/ql/hooks","issue_events_url":"https://api.github.com/repos/xiemaisi/ql/issues/events{/number}","events_url":"https://api.github.com/repos/xiemaisi/ql/events","assignees_url":"https://api.github.com/repos/xiemaisi/ql/assignees{/user}","branches_url":"https://api.github.com/repos/xiemaisi/ql/branches{/branch}","tags_url":"https://api.github.com/repos/xiemaisi/ql/tags","blobs_url":"https://api.github.com/repos/xiemaisi/ql/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/xiemaisi/ql/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/xiemaisi/ql/git/refs{/sha}","trees_url":"https://api.github.com/repos/xiemaisi/ql/git/trees{/sha}","statuses_url":"https://api.github.com/repos/xiemaisi/ql/statuses/{sha}","languages_url":"https://api.github.com/repos/xiemaisi/ql/languages","stargazers_url":"https://api.github.com/repos/xiemaisi/ql/stargazers","contributors_url":"https://api.github.com/repos/xiemaisi/ql/contributors","subscribers_url":"https://api.github.com/repos/xiemaisi/ql/subscribers","subscription_url":"https://api.github.com/repos/xiemaisi/ql/subscription","commits_url":"https://api.github.com/repos/xiemaisi/ql/commits{/sha}","git_commits_url":"https://api.github.com/repos/xiemaisi/ql/git/commits{/sha}","comments_url":"https://api.github.com/repos/xiemaisi/ql/comments{/number}","issue_comment_url":"https://api.github.com/repos/xiemaisi/ql/issues/comments{/number}","contents_url":"https://api.github.com/repos/xiemaisi/ql/contents/{+path}","compare_url":"https://api.github.com/repos/xiemaisi/ql/compare/{base}...{head}","merges_url":"https://api.github.com/repos/xiemaisi/ql/merges","archive_url":"https://api.github.com/repos/xiemaisi/ql/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/xiemaisi/ql/downloads","issues_url":"https://api.github.com/repos/xiemaisi/ql/issues{/number}","pulls_url":"https://api.github.com/repos/xiemaisi/ql/pulls{/number}","milestones_url":"https://api.github.com/repos/xiemaisi/ql/milestones{/number}","notifications_url":"https://api.github.com/repos/xiemaisi/ql/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/xiemaisi/ql/labels{/name}","releases_url":"https://api.github.com/repos/xiemaisi/ql/releases{/id}","deployments_url":"https://api.github.com/repos/xiemaisi/ql/deployments","created_at":"2018-08-03T11:36:23Z","updated_at":"2018-11-26T16:17:53Z","pushed_at":"2018-11-29T09:27:51Z","git_url":"git://github.com/xiemaisi/ql.git","ssh_url":"git@github.com:xiemaisi/ql.git","clone_url":"https://github.com/xiemaisi/ql.git","svn_url":"https://github.com/xiemaisi/ql","homepage":null,"size":12498,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"Semmle:rc/1.19","ref":"rc/1.19","sha":"57a976d6684133af4f56d621abe83f030a9d4bc4","user":{"login":"Semmle","id":1101495,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExMDE0OTU=","avatar_url":"https://avatars0.githubusercontent.com/u/1101495?v=4","gravatar_id":"","url":"https://api.github.com/users/Semmle","html_url":"https://github.com/Semmle","followers_url":"https://api.github.com/users/Semmle/followers","following_url":"https://api.github.com/users/Semmle/following{/other_user}","gists_url":"https://api.github.com/users/Semmle/gists{/gist_id}","starred_url":"https://api.github.com/users/Semmle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Semmle/subscriptions","organizations_url":"https://api.github.com/users/Semmle/orgs","repos_url":"https://api.github.com/users/Semmle/repos","events_url":"https://api.github.com/users/Semmle/events{/privacy}","received_events_url":"https://api.github.com/users/Semmle/received_events","type":"Organization","site_admin":false},"repo":{"id":143040428,"node_id":"MDEwOlJlcG9zaXRvcnkxNDMwNDA0Mjg=","name":"ql","full_name":"Semmle/ql","private":false,"owner":{"login":"Semmle","id":1101495,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExMDE0OTU=","avatar_url":"https://avatars0.githubusercontent.com/u/1101495?v=4","gravatar_id":"","url":"https://api.github.com/users/Semmle","html_url":"https://github.com/Semmle","followers_url":"https://api.github.com/users/Semmle/followers","following_url":"https://api.github.com/users/Semmle/following{/other_user}","gists_url":"https://api.github.com/users/Semmle/gists{/gist_id}","starred_url":"https://api.github.com/users/Semmle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Semmle/subscriptions","organizations_url":"https://api.github.com/users/Semmle/orgs","repos_url":"https://api.github.com/users/Semmle/repos","events_url":"https://api.github.com/users/Semmle/events{/privacy}","received_events_url":"https://api.github.com/users/Semmle/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/Semmle/ql","description":"The standard QL libraries and queries that power LGTM.com and other Semmle Products","fork":false,"url":"https://api.github.com/repos/Semmle/ql","forks_url":"https://api.github.com/repos/Semmle/ql/forks","keys_url":"https://api.github.com/repos/Semmle/ql/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Semmle/ql/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Semmle/ql/teams","hooks_url":"https://api.github.com/repos/Semmle/ql/hooks","issue_events_url":"https://api.github.com/repos/Semmle/ql/issues/events{/number}","events_url":"https://api.github.com/repos/Semmle/ql/events","assignees_url":"https://api.github.com/repos/Semmle/ql/assignees{/user}","branches_url":"https://api.github.com/repos/Semmle/ql/branches{/branch}","tags_url":"https://api.github.com/repos/Semmle/ql/tags","blobs_url":"https://api.github.com/repos/Semmle/ql/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Semmle/ql/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Semmle/ql/git/refs{/sha}","trees_url":"https://api.github.com/repos/Semmle/ql/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Semmle/ql/statuses/{sha}","languages_url":"https://api.github.com/repos/Semmle/ql/languages","stargazers_url":"https://api.github.com/repos/Semmle/ql/stargazers","contributors_url":"https://api.github.com/repos/Semmle/ql/contributors","subscribers_url":"https://api.github.com/repos/Semmle/ql/subscribers","subscription_url":"https://api.github.com/repos/Semmle/ql/subscription","commits_url":"https://api.github.com/repos/Semmle/ql/commits{/sha}","git_commits_url":"https://api.github.com/repos/Semmle/ql/git/commits{/sha}","comments_url":"https://api.github.com/repos/Semmle/ql/comments{/number}","issue_comment_url":"https://api.github.com/repos/Semmle/ql/issues/comments{/number}","contents_url":"https://api.github.com/repos/Semmle/ql/contents/{+path}","compare_url":"https://api.github.com/repos/Semmle/ql/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Semmle/ql/merges","archive_url":"https://api.github.com/repos/Semmle/ql/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Semmle/ql/downloads","issues_url":"https://api.github.com/repos/Semmle/ql/issues{/number}","pulls_url":"https://api.github.com/repos/Semmle/ql/pulls{/number}","milestones_url":"https://api.github.com/repos/Semmle/ql/milestones{/number}","notifications_url":"https://api.github.com/repos/Semmle/ql/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Semmle/ql/labels{/name}","releases_url":"https://api.github.com/repos/Semmle/ql/releases{/id}","deployments_url":"https://api.github.com/repos/Semmle/ql/deployments","created_at":"2018-07-31T16:35:51Z","updated_at":"2018-11-29T08:28:06Z","pushed_at":"2018-11-29T09:10:32Z","git_url":"git://github.com/Semmle/ql.git","ssh_url":"git@github.com:Semmle/ql.git","clone_url":"https://github.com/Semmle/ql.git","svn_url":"https://github.com/Semmle/ql","homepage":"https://semmle.com/ql","size":12358,"stargazers_count":69,"watchers_count":69,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":44,"mirror_url":null,"archived":false,"open_issues_count":35,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":44,"open_issues":35,"watchers":69,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Semmle/ql/pulls/559"},"html":{"href":"https://github.com/Semmle/ql/pull/559"},"issue":{"href":"https://api.github.com/repos/Semmle/ql/issues/559"},"comments":{"href":"https://api.github.com/repos/Semmle/ql/issues/559/comments"},"review_comments":{"href":"https://api.github.com/repos/Semmle/ql/pulls/559/comments"},"review_comment":{"href":"https://api.github.com/repos/Semmle/ql/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Semmle/ql/pulls/559/commits"},"statuses":{"href":"https://api.github.com/repos/Semmle/ql/statuses/45574d4eaa2900032ef6302bebdc04c2193016e6"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"mc-semmle"}}