{"action":"created","issue":{"url":"https://api.github.com/repos/jruby/jruby/issues/5937","repository_url":"https://api.github.com/repos/jruby/jruby","labels_url":"https://api.github.com/repos/jruby/jruby/issues/5937/labels{/name}","comments_url":"https://api.github.com/repos/jruby/jruby/issues/5937/comments","events_url":"https://api.github.com/repos/jruby/jruby/issues/5937/events","html_url":"https://github.com/jruby/jruby/issues/5937","id":510990714,"node_id":"MDU6SXNzdWU1MTA5OTA3MTQ=","number":5937,"title":"port CGI.escapeHTML optimization","user":{"login":"ahorek","id":9540855,"node_id":"MDQ6VXNlcjk1NDA4NTU=","avatar_url":"https://avatars2.githubusercontent.com/u/9540855?v=4","gravatar_id":"","url":"https://api.github.com/users/ahorek","html_url":"https://github.com/ahorek","followers_url":"https://api.github.com/users/ahorek/followers","following_url":"https://api.github.com/users/ahorek/following{/other_user}","gists_url":"https://api.github.com/users/ahorek/gists{/gist_id}","starred_url":"https://api.github.com/users/ahorek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ahorek/subscriptions","organizations_url":"https://api.github.com/users/ahorek/orgs","repos_url":"https://api.github.com/users/ahorek/repos","events_url":"https://api.github.com/users/ahorek/events{/privacy}","received_events_url":"https://api.github.com/users/ahorek/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/jruby/jruby/milestones/81","html_url":"https://github.com/jruby/jruby/milestone/81","labels_url":"https://api.github.com/repos/jruby/jruby/milestones/81/labels","id":4214769,"node_id":"MDk6TWlsZXN0b25lNDIxNDc2OQ==","number":81,"title":"JRuby 9.2.9.0","description":"","creator":{"login":"enebo","id":19819,"node_id":"MDQ6VXNlcjE5ODE5","avatar_url":"https://avatars1.githubusercontent.com/u/19819?v=4","gravatar_id":"","url":"https://api.github.com/users/enebo","html_url":"https://github.com/enebo","followers_url":"https://api.github.com/users/enebo/followers","following_url":"https://api.github.com/users/enebo/following{/other_user}","gists_url":"https://api.github.com/users/enebo/gists{/gist_id}","starred_url":"https://api.github.com/users/enebo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/enebo/subscriptions","organizations_url":"https://api.github.com/users/enebo/orgs","repos_url":"https://api.github.com/users/enebo/repos","events_url":"https://api.github.com/users/enebo/events{/privacy}","received_events_url":"https://api.github.com/users/enebo/received_events","type":"User","site_admin":false},"open_issues":16,"closed_issues":64,"state":"open","created_at":"2019-04-09T18:41:44Z","updated_at":"2019-10-23T16:39:17Z","due_on":null,"closed_at":null},"comments":1,"created_at":"2019-10-22T23:50:23Z","updated_at":"2019-10-23T16:39:51Z","closed_at":null,"author_association":"CONTRIBUTOR","body":"one of the recent ruby 2.7 optimization is https://github.com/ruby/ruby/pull/2226\r\n\r\njruby is a bit behind\r\n```\r\nruby 2.7 dev\r\n      CGI.escapeHTML      2.614k (± 9.3%) i/s -     13.108k in   5.065551s\r\n\r\nruby 2.5.3\r\n      CGI.escapeHTML    761.177  (± 6.7%) i/s -      3.825k in   5.050563s\r\n\r\njruby 9.2.9.0 dev\r\n      CGI.escapeHTML    224.765  (± 6.7%) i/s -      1.122k in   5.013482s\r\n```\r\n\r\nthe previous java port is at https://github.com/jruby/jruby/blob/4e8bb2666a7257f0f5986800f96bb88efdd6acbd/core/src/main/java/org/jruby/ext/cgi/escape/CGIEscape.java#L64\r\n\r\nporting the new algorithm should improve numbers\r\n\r\nthe optimization is especially important for rails, erb engine does use it for html escaping:\r\nhttps://api.rubyonrails.org/classes/ERB/Util.html#method-c-h"},"comment":{"url":"https://api.github.com/repos/jruby/jruby/issues/comments/545531665","html_url":"https://github.com/jruby/jruby/issues/5937#issuecomment-545531665","issue_url":"https://api.github.com/repos/jruby/jruby/issues/5937","id":545531665,"node_id":"MDEyOklzc3VlQ29tbWVudDU0NTUzMTY2NQ==","user":{"login":"headius","id":10135,"node_id":"MDQ6VXNlcjEwMTM1","avatar_url":"https://avatars3.githubusercontent.com/u/10135?v=4","gravatar_id":"","url":"https://api.github.com/users/headius","html_url":"https://github.com/headius","followers_url":"https://api.github.com/users/headius/followers","following_url":"https://api.github.com/users/headius/following{/other_user}","gists_url":"https://api.github.com/users/headius/gists{/gist_id}","starred_url":"https://api.github.com/users/headius/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/headius/subscriptions","organizations_url":"https://api.github.com/users/headius/orgs","repos_url":"https://api.github.com/users/headius/repos","events_url":"https://api.github.com/users/headius/events{/privacy}","received_events_url":"https://api.github.com/users/headius/received_events","type":"User","site_admin":false},"created_at":"2019-10-23T16:39:51Z","updated_at":"2019-10-23T16:39:51Z","author_association":"MEMBER","body":"Oops, for some reason I thought this was a PR. We'll merge it whenever someone does it."}}
{"actor":{"display_login":"headius"}}