{"push_id":910489098,"size":34,"distinct_size":34,"ref":"refs/heads/master","head":"193465a436e94c1efd75ac842e7bcbf09c52555c","before":"799d70c5a973265790fecf623a6639be39a59459","commits":[{"sha":"5d5208668b9d287df971966034680426572aae96","author":{"email":"0ab79927a592f1727d4d2c6abd69b159462b349d@bangdeMacBook-Pro.local","name":"bang"},"message":"Fix memory leak","distinct":true,"url":"https://api.github.com/repos/SuperSG/JSPatch/commits/5d5208668b9d287df971966034680426572aae96"},{"sha":"1126d2afb94d8c0fb4228b4e816fcebc68aaae66","author":{"email":"b35f1d5753948d984d5aafb355130f617eaf0d6e@gmail.com","name":"bang590"},"message":"update JSPatch.podspec","distinct":true,"url":"https://api.github.com/repos/SuperSG/JSPatch/commits/1126d2afb94d8c0fb4228b4e816fcebc68aaae66"},{"sha":"76d6e55e6f648f86bc38abec2b6139aa7a10efee","author":{"email":"b35f1d5753948d984d5aafb355130f617eaf0d6e@gmail.com","name":"bang590"},"message":"Support using custom struct as params or return value in JS","distinct":true,"url":"https://api.github.com/repos/SuperSG/JSPatch/commits/76d6e55e6f648f86bc38abec2b6139aa7a10efee"},{"sha":"68ef830eeb806b16f0f71ba569746f98bb592278","author":{"email":"b35f1d5753948d984d5aafb355130f617eaf0d6e@gmail.com","name":"bang590"},"message":"Support using 'self' in class method","distinct":true,"url":"https://api.github.com/repos/SuperSG/JSPatch/commits/68ef830eeb806b16f0f71ba569746f98bb592278"},{"sha":"a35364469c4d54e0520f8961c824bfbcbf46d07d","author":{"email":"b35f1d5753948d984d5aafb355130f617eaf0d6e@gmail.com","name":"bang590"},"message":"Release 0.1.4","distinct":true,"url":"https://api.github.com/repos/SuperSG/JSPatch/commits/a35364469c4d54e0520f8961c824bfbcbf46d07d"},{"sha":"90bdf9bf3246683adc33578e2f67ff32d53e659e","author":{"email":"b35f1d5753948d984d5aafb355130f617eaf0d6e@gmail.com","name":"bang590"},"message":"Remove log","distinct":true,"url":"https://api.github.com/repos/SuperSG/JSPatch/commits/90bdf9bf3246683adc33578e2f67ff32d53e659e"},{"sha":"6e2ab4f5eb750d364134f2eaac5483373d289972","author":{"email":"b35f1d5753948d984d5aafb355130f617eaf0d6e@gmail.com","name":"bang590"},"message":"Add '.performSelectorInOC(sel, args, cb)' function:\n\nWhen calling OC method in JS, the OC method will be exexuted within the JavaScriptCore context lock, so if we call OC methods concurrently in JS, this methods will execute serially because of the JSCore lock. '.performSelectorInOC()' can perform an OC method outside of the JS context, so it can get rid of the JSCore lock and execute OC methods concurrently.\n\nUsage:\n\n```\n//OC\n@implementation JPObject\n- (id)methodA:(NSString *)str\n{\n\treturn str;\n}\n- (id)methodB\n{\n\treturn nil;\n}\n@end\n```\n\n```\n//JS original\ndefineClass('JPObject', {\n\tmethodB: function(){\n\t\tvar str = \"_append\";\n\t\t//perform methodA within JSCore lock\n\t\tvar ret = self.methodA('stringFromJS') + str;\n\t\treturn ret;\n\t}\n})\nconsole.log(JPObject.alloc().init().methodB())   //output \"stringFromJS_append\"\n```\n\n```\n//JS using .performSelectorInOC()\ndefineClass('JPObject', {\n\tmethodB: function(){\n\t\tvar str = \"_append\";\n\t\t//perform methodA outside of the JSCore lock\n\t\treturn self.performSelectorInOC('methodA:', ['stringFromJS'], function(ret){\n\t\t\tret = ret + str\n\t\t\treturn str;\n\t\t})\n\t}\n})\nconsole.log(JPObject.alloc().init().methodB())   //output \"stringFromJS_append\"\n```","distinct":true,"url":"https://api.github.com/repos/SuperSG/JSPatch/commits/6e2ab4f5eb750d364134f2eaac5483373d289972"},{"sha":"f3739031c547447bf3e124a01eafc1bd818ca911","author":{"email":"9a3edfa840909a9bc4858d9083f25bafaafa32df@gmail.com","name":"Blankdlh"},"message":"bugfix: move \"NSMutableArray *list = [[NSMutableArray alloc] init];\" into block;","distinct":true,"url":"https://api.github.com/repos/SuperSG/JSPatch/commits/f3739031c547447bf3e124a01eafc1bd818ca911"},{"sha":"3616d968d5d45263e6e30f68337a31b32788345d","author":{"email":"b35f1d5753948d984d5aafb355130f617eaf0d6e@gmail.com","name":"bang"},"message":"Merge pull request #131 from Blankdlh/master\n\nbugfix: init parameters array in block","distinct":true,"url":"https://api.github.com/repos/SuperSG/JSPatch/commits/3616d968d5d45263e6e30f68337a31b32788345d"},{"sha":"7ef592be7cfac61bdafeb462d37c88062aea7eb0","author":{"email":"865a1a6813e78ff450482da124d461d5088b3433@qq.com","name":"834686746"},"message":"Weakly box self object to fix the issue of its release delay.","distinct":true,"url":"https://api.github.com/repos/SuperSG/JSPatch/commits/7ef592be7cfac61bdafeb462d37c88062aea7eb0"},{"sha":"461d027fea80ee12cdd1ccfd958ff58f65b705cf","author":{"email":"b35f1d5753948d984d5aafb355130f617eaf0d6e@gmail.com","name":"bang"},"message":"Merge pull request #133 from honghewang/feature/weak_self_in_jsvalue\n\nWeakly box self object to fix the issue of its release delay.","distinct":true,"url":"https://api.github.com/repos/SuperSG/JSPatch/commits/461d027fea80ee12cdd1ccfd958ff58f65b705cf"},{"sha":"4728ef64b141d7155ba081e391c6c9bba7c1d8fe","author":{"email":"b35f1d5753948d984d5aafb355130f617eaf0d6e@gmail.com","name":"bang590"},"message":"Keep 'self' in GCD functions","distinct":true,"url":"https://api.github.com/repos/SuperSG/JSPatch/commits/4728ef64b141d7155ba081e391c6c9bba7c1d8fe"},{"sha":"d27ac240df752f615a7c1ba1e4de10f62fbb168a","author":{"email":"b35f1d5753948d984d5aafb355130f617eaf0d6e@gmail.com","name":"bang590"},"message":"Change the way to checking block type","distinct":true,"url":"https://api.github.com/repos/SuperSG/JSPatch/commits/d27ac240df752f615a7c1ba1e4de10f62fbb168a"},{"sha":"d001e18edc08d21cb0c60e7e02b12ae6a7e736e8","author":{"email":"85e37a3300ba05fa3c988dc6a5913ba570181430@gmail.com","name":"Arthur Wang"},"message":"Use a more restrict regex to replace .method( to ._c(\"method\")(","distinct":true,"url":"https://api.github.com/repos/SuperSG/JSPatch/commits/d001e18edc08d21cb0c60e7e02b12ae6a7e736e8"},{"sha":"9d4aebebd25260b2e67aea2ef405cbd74bd4d9f3","author":{"email":"b35f1d5753948d984d5aafb355130f617eaf0d6e@gmail.com","name":"bang"},"message":"Merge pull request #139 from Arthraim/master\n\n用一个更严格的正则表达式来把 `.method(` 替换为 `._c(\"method\")(`","distinct":true,"url":"https://api.github.com/repos/SuperSG/JSPatch/commits/9d4aebebd25260b2e67aea2ef405cbd74bd4d9f3"},{"sha":"a4c7914e34c7aedeb497e7a071126e2042fa86e6","author":{"email":"b35f1d5753948d984d5aafb355130f617eaf0d6e@gmail.com","name":"bang590"},"message":"Support param/return type 'const xxx'","distinct":true,"url":"https://api.github.com/repos/SuperSG/JSPatch/commits/a4c7914e34c7aedeb497e7a071126e2042fa86e6"},{"sha":"2eee65f980f731fd62f2096e9abc11e0249bd302","author":{"email":"b35f1d5753948d984d5aafb355130f617eaf0d6e@gmail.com","name":"bang590"},"message":"Merge branch 'master' of https://github.com/bang590/JSPatch","distinct":true,"url":"https://api.github.com/repos/SuperSG/JSPatch/commits/2eee65f980f731fd62f2096e9abc11e0249bd302"},{"sha":"c1962f636efa33f8e3890d5e4efe9c68aea3b353","author":{"email":"b35f1d5753948d984d5aafb355130f617eaf0d6e@gmail.com","name":"bang590"},"message":"Add JSPatch Loader","distinct":true,"url":"https://api.github.com/repos/SuperSG/JSPatch/commits/c1962f636efa33f8e3890d5e4efe9c68aea3b353"},{"sha":"afd89ead78c3589a8f92fa8cc0b234138d81a5fc","author":{"email":"b35f1d5753948d984d5aafb355130f617eaf0d6e@gmail.com","name":"bang590"},"message":"Fix compile error","distinct":true,"url":"https://api.github.com/repos/SuperSG/JSPatch/commits/afd89ead78c3589a8f92fa8cc0b234138d81a5fc"},{"sha":"130d0f1fa5576e06d941e4f4cccc352190b9032e","author":{"email":"b35f1d5753948d984d5aafb355130f617eaf0d6e@gmail.com","name":"bang590"},"message":"Fix compile error for iOS8 SDK","distinct":true,"url":"https://api.github.com/repos/SuperSG/JSPatch/commits/130d0f1fa5576e06d941e4f4cccc352190b9032e"}]}