{"action":"created","issue":{"url":"https://api.github.com/repos/systemjs/builder/issues/335","labels_url":"https://api.github.com/repos/systemjs/builder/issues/335/labels{/name}","comments_url":"https://api.github.com/repos/systemjs/builder/issues/335/comments","events_url":"https://api.github.com/repos/systemjs/builder/issues/335/events","html_url":"https://github.com/systemjs/builder/pull/335","id":109471920,"number":335,"title":"Use stable name mangling for deterministic builds","user":{"login":"shintonik","id":1560055,"avatar_url":"https://avatars.githubusercontent.com/u/1560055?v=3","gravatar_id":"","url":"https://api.github.com/users/shintonik","html_url":"https://github.com/shintonik","followers_url":"https://api.github.com/users/shintonik/followers","following_url":"https://api.github.com/users/shintonik/following{/other_user}","gists_url":"https://api.github.com/users/shintonik/gists{/gist_id}","starred_url":"https://api.github.com/users/shintonik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shintonik/subscriptions","organizations_url":"https://api.github.com/users/shintonik/orgs","repos_url":"https://api.github.com/users/shintonik/repos","events_url":"https://api.github.com/users/shintonik/events{/privacy}","received_events_url":"https://api.github.com/users/shintonik/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-10-02T11:00:17Z","updated_at":"2015-10-02T11:45:26Z","closed_at":"2015-10-02T11:03:06Z","pull_request":{"url":"https://api.github.com/repos/systemjs/builder/pulls/335","html_url":"https://github.com/systemjs/builder/pull/335","diff_url":"https://github.com/systemjs/builder/pull/335.diff","patch_url":"https://github.com/systemjs/builder/pull/335.patch"},"body":"When using the SystemJS builder with enabled minify option builds seem \r\nto be non-deterministic. Compiling one and the same source results in \r\ndifferent results which makes computing checksums (and using them as a\r\ncache buster) for those files useless.\r\n\r\nThe problem seems to be caused by UglifyJS's compute_char_frequency \r\nmethod which leads to unstable name mangling (at least in some cases). \r\nRemoving that method from the builder has fixed that problem \r\nimmediately.\r\n\r\nThe official Grunt Uglify task for instance disabled that method for \r\nthe same reason. \r\nSee: https://github.com/gruntjs/grunt-contrib-uglify/blob/master/tasks/lib/uglify.js#L137"},"comment":{"url":"https://api.github.com/repos/systemjs/builder/issues/comments/144996771","html_url":"https://github.com/systemjs/builder/pull/335#issuecomment-144996771","issue_url":"https://api.github.com/repos/systemjs/builder/issues/335","id":144996771,"user":{"login":"guybedford","id":598730,"avatar_url":"https://avatars.githubusercontent.com/u/598730?v=3","gravatar_id":"","url":"https://api.github.com/users/guybedford","html_url":"https://github.com/guybedford","followers_url":"https://api.github.com/users/guybedford/followers","following_url":"https://api.github.com/users/guybedford/following{/other_user}","gists_url":"https://api.github.com/users/guybedford/gists{/gist_id}","starred_url":"https://api.github.com/users/guybedford/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/guybedford/subscriptions","organizations_url":"https://api.github.com/users/guybedford/orgs","repos_url":"https://api.github.com/users/guybedford/repos","events_url":"https://api.github.com/users/guybedford/events{/privacy}","received_events_url":"https://api.github.com/users/guybedford/received_events","type":"User","site_admin":false},"created_at":"2015-10-02T11:45:26Z","updated_at":"2015-10-02T11:45:26Z","body":"Sure, no problem. It will still be a few days yet for release."}}