{"action":"created","issue":{"url":"https://api.github.com/repos/svaarala/duktape/issues/145","labels_url":"https://api.github.com/repos/svaarala/duktape/issues/145/labels{/name}","comments_url":"https://api.github.com/repos/svaarala/duktape/issues/145/comments","events_url":"https://api.github.com/repos/svaarala/duktape/issues/145/events","html_url":"https://github.com/svaarala/duktape/issues/145","id":63540961,"number":145,"title":"Rework TRYCATCH opcode to remove current reg/const limits","user":{"login":"svaarala","id":6377415,"avatar_url":"https://avatars.githubusercontent.com/u/6377415?v=3","gravatar_id":"","url":"https://api.github.com/users/svaarala","html_url":"https://github.com/svaarala","followers_url":"https://api.github.com/users/svaarala/followers","following_url":"https://api.github.com/users/svaarala/following{/other_user}","gists_url":"https://api.github.com/users/svaarala/gists{/gist_id}","starred_url":"https://api.github.com/users/svaarala/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/svaarala/subscriptions","organizations_url":"https://api.github.com/users/svaarala/orgs","repos_url":"https://api.github.com/users/svaarala/repos","events_url":"https://api.github.com/users/svaarala/events{/privacy}","received_events_url":"https://api.github.com/users/svaarala/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/svaarala/duktape/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/svaarala/duktape/milestones/9","html_url":"https://github.com/svaarala/duktape/milestones/v1.3.0","labels_url":"https://api.github.com/repos/svaarala/duktape/milestones/9/labels","id":1037290,"number":9,"title":"v1.3.0","description":"","creator":{"login":"svaarala","id":6377415,"avatar_url":"https://avatars.githubusercontent.com/u/6377415?v=3","gravatar_id":"","url":"https://api.github.com/users/svaarala","html_url":"https://github.com/svaarala","followers_url":"https://api.github.com/users/svaarala/followers","following_url":"https://api.github.com/users/svaarala/following{/other_user}","gists_url":"https://api.github.com/users/svaarala/gists{/gist_id}","starred_url":"https://api.github.com/users/svaarala/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/svaarala/subscriptions","organizations_url":"https://api.github.com/users/svaarala/orgs","repos_url":"https://api.github.com/users/svaarala/repos","events_url":"https://api.github.com/users/svaarala/events{/privacy}","received_events_url":"https://api.github.com/users/svaarala/received_events","type":"User","site_admin":false},"open_issues":39,"closed_issues":12,"state":"open","created_at":"2015-03-24T22:16:58Z","updated_at":"2015-05-27T23:59:36Z","due_on":null,"closed_at":null},"comments":6,"created_at":"2015-03-22T14:58:19Z","updated_at":"2015-05-28T18:17:42Z","closed_at":null,"body":"Current TRYCATCH opcode has a low register limit for both catch register and catch variable name constant. There's no indirect variant or shuffling support.\r\n\r\nRelated to #144."},"comment":{"url":"https://api.github.com/repos/svaarala/duktape/issues/comments/106545967","html_url":"https://github.com/svaarala/duktape/issues/145#issuecomment-106545967","issue_url":"https://api.github.com/repos/svaarala/duktape/issues/145","id":106545967,"user":{"login":"svaarala","id":6377415,"avatar_url":"https://avatars.githubusercontent.com/u/6377415?v=3","gravatar_id":"","url":"https://api.github.com/users/svaarala","html_url":"https://github.com/svaarala","followers_url":"https://api.github.com/users/svaarala/followers","following_url":"https://api.github.com/users/svaarala/following{/other_user}","gists_url":"https://api.github.com/users/svaarala/gists{/gist_id}","starred_url":"https://api.github.com/users/svaarala/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/svaarala/subscriptions","organizations_url":"https://api.github.com/users/svaarala/orgs","repos_url":"https://api.github.com/users/svaarala/repos","events_url":"https://api.github.com/users/svaarala/events{/privacy}","received_events_url":"https://api.github.com/users/svaarala/received_events","type":"User","site_admin":false},"created_at":"2015-05-28T18:17:42Z","updated_at":"2015-05-28T18:17:42Z","body":"Draft solution here:\r\n\r\n- https://github.com/svaarala/duktape/compare/reduce-trycatch-opcode-limits-gh145\r\n\r\nReworks TRYCATCH so that the BC slot (18 bits) is used both for (1) \"with\" target and catch variable name, and (2) base register for writing thrown value and throw type for catch/finally. The register limit bottleneck is raised from 511 to 262143 as for most other shuffle code.\r\n\r\nThe cost of this change is that an `LDCONST` is needed for every try-catch. Not sure if this should be merged as there might be a better solution."}}