{"action":"created","comment":{"url":"https://api.github.com/repos/WebAssembly/binaryen/pulls/comments/74098166","id":74098166,"diff_hunk":"@@ -1342,6 +1346,40 @@ class S2WasmBuilder {\n     }\n   }\n \n+  // Converts invoke wrapper names generated by LLVM backend to real invoke","path":"src/s2wasm.h","position":56,"original_position":56,"commit_id":"cc29afe53b54f0587931214c9eb821e1f21c4cbd","original_commit_id":"dcee9b3fde9033e80dba8401b80a9a9fcfcac5d8","user":{"login":"kripken","id":173661,"avatar_url":"https://avatars.githubusercontent.com/u/173661?v=3","gravatar_id":"","url":"https://api.github.com/users/kripken","html_url":"https://github.com/kripken","followers_url":"https://api.github.com/users/kripken/followers","following_url":"https://api.github.com/users/kripken/following{/other_user}","gists_url":"https://api.github.com/users/kripken/gists{/gist_id}","starred_url":"https://api.github.com/users/kripken/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kripken/subscriptions","organizations_url":"https://api.github.com/users/kripken/orgs","repos_url":"https://api.github.com/users/kripken/repos","events_url":"https://api.github.com/users/kripken/events{/privacy}","received_events_url":"https://api.github.com/users/kripken/received_events","type":"User","site_admin":false},"body":"Fair enough.","created_at":"2016-08-09T16:53:27Z","updated_at":"2016-08-09T16:53:27Z","html_url":"https://github.com/WebAssembly/binaryen/pull/664#discussion_r74098166","pull_request_url":"https://api.github.com/repos/WebAssembly/binaryen/pulls/664","_links":{"self":{"href":"https://api.github.com/repos/WebAssembly/binaryen/pulls/comments/74098166"},"html":{"href":"https://github.com/WebAssembly/binaryen/pull/664#discussion_r74098166"},"pull_request":{"href":"https://api.github.com/repos/WebAssembly/binaryen/pulls/664"}}},"pull_request":{"url":"https://api.github.com/repos/WebAssembly/binaryen/pulls/664","id":80442117,"html_url":"https://github.com/WebAssembly/binaryen/pull/664","diff_url":"https://github.com/WebAssembly/binaryen/pull/664.diff","patch_url":"https://github.com/WebAssembly/binaryen/pull/664.patch","issue_url":"https://api.github.com/repos/WebAssembly/binaryen/issues/664","number":664,"state":"open","locked":false,"title":"Implement asm.js style exception handling for Wasm","user":{"login":"aheejin","id":8726997,"avatar_url":"https://avatars.githubusercontent.com/u/8726997?v=3","gravatar_id":"","url":"https://api.github.com/users/aheejin","html_url":"https://github.com/aheejin","followers_url":"https://api.github.com/users/aheejin/followers","following_url":"https://api.github.com/users/aheejin/following{/other_user}","gists_url":"https://api.github.com/users/aheejin/gists{/gist_id}","starred_url":"https://api.github.com/users/aheejin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aheejin/subscriptions","organizations_url":"https://api.github.com/users/aheejin/orgs","repos_url":"https://api.github.com/users/aheejin/repos","events_url":"https://api.github.com/users/aheejin/events{/privacy}","received_events_url":"https://api.github.com/users/aheejin/received_events","type":"User","site_admin":false},"body":"Converts invoke wrapper names generated by LLVM backend to real invoke wrapper\r\nnames that are expected by JavaScript glue code.\r\nThis is required to support wasm exception handling (asm.js style).\r\n\r\nLLVM backend lowers\r\n`  invoke @func(arg1, arg2) to label %invoke.cont unwind label %lpad`\r\ninto\r\n```\r\n... (some code)\r\n  call @invoke_SIG(func, arg1, arg2)\r\n... (some code)\r\n```\r\nSIG is a mangled string generated based on the LLVM IR-level function\r\nsignature. In LLVM IR, types are not lowered yet, so this mangling scheme\r\nsimply takes LLVM's string representtion of parameter types and concatenate\r\nthem with '_'. For example, the name of an invoke wrapper for function void\r\nfoo(struct mystruct*, int) will be \"__invoke_void_%struct.mystruct*_int\".  This\r\nfunction converts the names of invoke wrappers based on their lowered argument\r\ntypes and a return type. In the example above, the resulting new wrapper name\r\nbecomes \"invoke_vii\".","created_at":"2016-08-08T12:26:05Z","updated_at":"2016-08-09T16:53:27Z","closed_at":null,"merged_at":null,"merge_commit_sha":"1843f367f0937baeca6814891c8854fe80759430","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/WebAssembly/binaryen/pulls/664/commits","review_comments_url":"https://api.github.com/repos/WebAssembly/binaryen/pulls/664/comments","review_comment_url":"https://api.github.com/repos/WebAssembly/binaryen/pulls/comments{/number}","comments_url":"https://api.github.com/repos/WebAssembly/binaryen/issues/664/comments","statuses_url":"https://api.github.com/repos/WebAssembly/binaryen/statuses/cc29afe53b54f0587931214c9eb821e1f21c4cbd","head":{"label":"aheejin:em-exception","ref":"em-exception","sha":"cc29afe53b54f0587931214c9eb821e1f21c4cbd","user":{"login":"aheejin","id":8726997,"avatar_url":"https://avatars.githubusercontent.com/u/8726997?v=3","gravatar_id":"","url":"https://api.github.com/users/aheejin","html_url":"https://github.com/aheejin","followers_url":"https://api.github.com/users/aheejin/followers","following_url":"https://api.github.com/users/aheejin/following{/other_user}","gists_url":"https://api.github.com/users/aheejin/gists{/gist_id}","starred_url":"https://api.github.com/users/aheejin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aheejin/subscriptions","organizations_url":"https://api.github.com/users/aheejin/orgs","repos_url":"https://api.github.com/users/aheejin/repos","events_url":"https://api.github.com/users/aheejin/events{/privacy}","received_events_url":"https://api.github.com/users/aheejin/received_events","type":"User","site_admin":false},"repo":{"id":64957608,"name":"binaryen","full_name":"aheejin/binaryen","owner":{"login":"aheejin","id":8726997,"avatar_url":"https://avatars.githubusercontent.com/u/8726997?v=3","gravatar_id":"","url":"https://api.github.com/users/aheejin","html_url":"https://github.com/aheejin","followers_url":"https://api.github.com/users/aheejin/followers","following_url":"https://api.github.com/users/aheejin/following{/other_user}","gists_url":"https://api.github.com/users/aheejin/gists{/gist_id}","starred_url":"https://api.github.com/users/aheejin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aheejin/subscriptions","organizations_url":"https://api.github.com/users/aheejin/orgs","repos_url":"https://api.github.com/users/aheejin/repos","events_url":"https://api.github.com/users/aheejin/events{/privacy}","received_events_url":"https://api.github.com/users/aheejin/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/aheejin/binaryen","description":"Compiler infrastructure and toolchain library for WebAssembly, in C++","fork":true,"url":"https://api.github.com/repos/aheejin/binaryen","forks_url":"https://api.github.com/repos/aheejin/binaryen/forks","keys_url":"https://api.github.com/repos/aheejin/binaryen/keys{/key_id}","collaborators_url":"https://api.github.com/repos/aheejin/binaryen/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/aheejin/binaryen/teams","hooks_url":"https://api.github.com/repos/aheejin/binaryen/hooks","issue_events_url":"https://api.github.com/repos/aheejin/binaryen/issues/events{/number}","events_url":"https://api.github.com/repos/aheejin/binaryen/events","assignees_url":"https://api.github.com/repos/aheejin/binaryen/assignees{/user}","branches_url":"https://api.github.com/repos/aheejin/binaryen/branches{/branch}","tags_url":"https://api.github.com/repos/aheejin/binaryen/tags","blobs_url":"https://api.github.com/repos/aheejin/binaryen/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/aheejin/binaryen/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/aheejin/binaryen/git/refs{/sha}","trees_url":"https://api.github.com/repos/aheejin/binaryen/git/trees{/sha}","statuses_url":"https://api.github.com/repos/aheejin/binaryen/statuses/{sha}","languages_url":"https://api.github.com/repos/aheejin/binaryen/languages","stargazers_url":"https://api.github.com/repos/aheejin/binaryen/stargazers","contributors_url":"https://api.github.com/repos/aheejin/binaryen/contributors","subscribers_url":"https://api.github.com/repos/aheejin/binaryen/subscribers","subscription_url":"https://api.github.com/repos/aheejin/binaryen/subscription","commits_url":"https://api.github.com/repos/aheejin/binaryen/commits{/sha}","git_commits_url":"https://api.github.com/repos/aheejin/binaryen/git/commits{/sha}","comments_url":"https://api.github.com/repos/aheejin/binaryen/comments{/number}","issue_comment_url":"https://api.github.com/repos/aheejin/binaryen/issues/comments{/number}","contents_url":"https://api.github.com/repos/aheejin/binaryen/contents/{+path}","compare_url":"https://api.github.com/repos/aheejin/binaryen/compare/{base}...{head}","merges_url":"https://api.github.com/repos/aheejin/binaryen/merges","archive_url":"https://api.github.com/repos/aheejin/binaryen/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/aheejin/binaryen/downloads","issues_url":"https://api.github.com/repos/aheejin/binaryen/issues{/number}","pulls_url":"https://api.github.com/repos/aheejin/binaryen/pulls{/number}","milestones_url":"https://api.github.com/repos/aheejin/binaryen/milestones{/number}","notifications_url":"https://api.github.com/repos/aheejin/binaryen/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/aheejin/binaryen/labels{/name}","releases_url":"https://api.github.com/repos/aheejin/binaryen/releases{/id}","deployments_url":"https://api.github.com/repos/aheejin/binaryen/deployments","created_at":"2016-08-04T18:21:25Z","updated_at":"2016-08-04T18:21:31Z","pushed_at":"2016-08-09T10:12:50Z","git_url":"git://github.com/aheejin/binaryen.git","ssh_url":"git@github.com:aheejin/binaryen.git","clone_url":"https://github.com/aheejin/binaryen.git","svn_url":"https://github.com/aheejin/binaryen","homepage":"","size":26486,"stargazers_count":0,"watchers_count":0,"language":"Assembly","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"WebAssembly:master","ref":"master","sha":"49b99e6675424ff0866a670ed83f2393330198dd","user":{"login":"WebAssembly","id":11578470,"avatar_url":"https://avatars.githubusercontent.com/u/11578470?v=3","gravatar_id":"","url":"https://api.github.com/users/WebAssembly","html_url":"https://github.com/WebAssembly","followers_url":"https://api.github.com/users/WebAssembly/followers","following_url":"https://api.github.com/users/WebAssembly/following{/other_user}","gists_url":"https://api.github.com/users/WebAssembly/gists{/gist_id}","starred_url":"https://api.github.com/users/WebAssembly/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/WebAssembly/subscriptions","organizations_url":"https://api.github.com/users/WebAssembly/orgs","repos_url":"https://api.github.com/users/WebAssembly/repos","events_url":"https://api.github.com/users/WebAssembly/events{/privacy}","received_events_url":"https://api.github.com/users/WebAssembly/received_events","type":"Organization","site_admin":false},"repo":{"id":45208608,"name":"binaryen","full_name":"WebAssembly/binaryen","owner":{"login":"WebAssembly","id":11578470,"avatar_url":"https://avatars.githubusercontent.com/u/11578470?v=3","gravatar_id":"","url":"https://api.github.com/users/WebAssembly","html_url":"https://github.com/WebAssembly","followers_url":"https://api.github.com/users/WebAssembly/followers","following_url":"https://api.github.com/users/WebAssembly/following{/other_user}","gists_url":"https://api.github.com/users/WebAssembly/gists{/gist_id}","starred_url":"https://api.github.com/users/WebAssembly/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/WebAssembly/subscriptions","organizations_url":"https://api.github.com/users/WebAssembly/orgs","repos_url":"https://api.github.com/users/WebAssembly/repos","events_url":"https://api.github.com/users/WebAssembly/events{/privacy}","received_events_url":"https://api.github.com/users/WebAssembly/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/WebAssembly/binaryen","description":"Compiler infrastructure and toolchain library for WebAssembly, in C++","fork":false,"url":"https://api.github.com/repos/WebAssembly/binaryen","forks_url":"https://api.github.com/repos/WebAssembly/binaryen/forks","keys_url":"https://api.github.com/repos/WebAssembly/binaryen/keys{/key_id}","collaborators_url":"https://api.github.com/repos/WebAssembly/binaryen/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/WebAssembly/binaryen/teams","hooks_url":"https://api.github.com/repos/WebAssembly/binaryen/hooks","issue_events_url":"https://api.github.com/repos/WebAssembly/binaryen/issues/events{/number}","events_url":"https://api.github.com/repos/WebAssembly/binaryen/events","assignees_url":"https://api.github.com/repos/WebAssembly/binaryen/assignees{/user}","branches_url":"https://api.github.com/repos/WebAssembly/binaryen/branches{/branch}","tags_url":"https://api.github.com/repos/WebAssembly/binaryen/tags","blobs_url":"https://api.github.com/repos/WebAssembly/binaryen/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/WebAssembly/binaryen/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/WebAssembly/binaryen/git/refs{/sha}","trees_url":"https://api.github.com/repos/WebAssembly/binaryen/git/trees{/sha}","statuses_url":"https://api.github.com/repos/WebAssembly/binaryen/statuses/{sha}","languages_url":"https://api.github.com/repos/WebAssembly/binaryen/languages","stargazers_url":"https://api.github.com/repos/WebAssembly/binaryen/stargazers","contributors_url":"https://api.github.com/repos/WebAssembly/binaryen/contributors","subscribers_url":"https://api.github.com/repos/WebAssembly/binaryen/subscribers","subscription_url":"https://api.github.com/repos/WebAssembly/binaryen/subscription","commits_url":"https://api.github.com/repos/WebAssembly/binaryen/commits{/sha}","git_commits_url":"https://api.github.com/repos/WebAssembly/binaryen/git/commits{/sha}","comments_url":"https://api.github.com/repos/WebAssembly/binaryen/comments{/number}","issue_comment_url":"https://api.github.com/repos/WebAssembly/binaryen/issues/comments{/number}","contents_url":"https://api.github.com/repos/WebAssembly/binaryen/contents/{+path}","compare_url":"https://api.github.com/repos/WebAssembly/binaryen/compare/{base}...{head}","merges_url":"https://api.github.com/repos/WebAssembly/binaryen/merges","archive_url":"https://api.github.com/repos/WebAssembly/binaryen/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/WebAssembly/binaryen/downloads","issues_url":"https://api.github.com/repos/WebAssembly/binaryen/issues{/number}","pulls_url":"https://api.github.com/repos/WebAssembly/binaryen/pulls{/number}","milestones_url":"https://api.github.com/repos/WebAssembly/binaryen/milestones{/number}","notifications_url":"https://api.github.com/repos/WebAssembly/binaryen/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/WebAssembly/binaryen/labels{/name}","releases_url":"https://api.github.com/repos/WebAssembly/binaryen/releases{/id}","deployments_url":"https://api.github.com/repos/WebAssembly/binaryen/deployments","created_at":"2015-10-29T20:26:28Z","updated_at":"2016-08-09T06:01:09Z","pushed_at":"2016-08-09T10:12:50Z","git_url":"git://github.com/WebAssembly/binaryen.git","ssh_url":"git@github.com:WebAssembly/binaryen.git","clone_url":"https://github.com/WebAssembly/binaryen.git","svn_url":"https://github.com/WebAssembly/binaryen","homepage":"","size":29389,"stargazers_count":815,"watchers_count":815,"language":"Assembly","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":72,"mirror_url":null,"open_issues_count":89,"forks":72,"open_issues":89,"watchers":815,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/WebAssembly/binaryen/pulls/664"},"html":{"href":"https://github.com/WebAssembly/binaryen/pull/664"},"issue":{"href":"https://api.github.com/repos/WebAssembly/binaryen/issues/664"},"comments":{"href":"https://api.github.com/repos/WebAssembly/binaryen/issues/664/comments"},"review_comments":{"href":"https://api.github.com/repos/WebAssembly/binaryen/pulls/664/comments"},"review_comment":{"href":"https://api.github.com/repos/WebAssembly/binaryen/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/WebAssembly/binaryen/pulls/664/commits"},"statuses":{"href":"https://api.github.com/repos/WebAssembly/binaryen/statuses/cc29afe53b54f0587931214c9eb821e1f21c4cbd"}}}}
{"actor":{"display_login":"kripken"}}