{"push_id":813925816,"size":44,"distinct_size":44,"ref":"refs/heads/flow-output-formatting","head":"0bd7b1f45b22862c14eaac13bcfecd017ddb2dd5","before":"cd327c5b011a0c68934322fc6c21ebde6ad2a837","commits":[{"sha":"70e3c4c604b5d0a17ecaa8c958395e4e82487fa7","author":{"email":"521b71b66118ece0fda08843b612c77cfd6c2588@fb.com","name":"Jez Ng"},"message":"[hack] Log total server-side build time\n\nReviewed By: @​bpr\n\nDifferential Revision: D2488858","distinct":true,"url":"https://api.github.com/repos/frantic/flow/commits/70e3c4c604b5d0a17ecaa8c958395e4e82487fa7"},{"sha":"897950ffdd272de1489817f7c4f4dd0b2e54c1fa","author":{"email":"a40eabc18988c835da8387da252ea730fb3ab8f1@gmail.com","name":"Sam Goldman"},"message":"Lex object keys in normal mode\n\nSummary: Fixes #829, where @sebmck couldn't use `implements` as the key in a\ndeclared class type. This was happening because the key was lexed in\n\"type mode\" which spat out a T_IDENTIFIER instead of a T_IMPLEMENTS, so\nlater on, in `Parser_flow.identifier_or_reserved_word`, the logic to\nexplicitly allow reserved words didn't fire, and we fell back to\n`identifier`, which complains about the future reserved word.\n\nAfter this change object keys in a type context are lexed in normal\nmode, so the lexer will spit out the more specific token type, and\n`identifier_or_reserved_word` can do its job.\n\nThis change does allow `@@​foo` in object literals and class\ndeclarations, which is absolutely wrong. However, we should really be\nusing [Symbol.iterator] instead of @@​iterator, so adding a bunch of\nerror handling in the parser (tried it, was ugly) just didn't seem worth\nit. Feel free to set me straight if I'm just being lazy... :)\nCloses https://github.com/facebook/flow/pull/870\n\nReviewed By: @jeffmo\n\nDifferential Revision: D2486482\n\nPulled By: @gabelevi","distinct":true,"url":"https://api.github.com/repos/frantic/flow/commits/897950ffdd272de1489817f7c4f4dd0b2e54c1fa"},{"sha":"a59440f8e71281d97e9d40c0b5b6b39342d8351d","author":{"email":"f3e731dfa293c7a83119d8aacfa41b5d2d780be9@jeffutter.com","name":"Jeffery Utter"},"message":"Add @@iterator to NodeList and HTMLCollection\n\nSummary: Add @@​iterator support to HTMLCollection and NodeList. This adds support for things like:\n\n```\nlet inputs = document.querySelectorAll('input, select');\nfor ( let el of billingInputOrSelect ) { ... }\n```\nCloses https://github.com/facebook/flow/pull/865\n\nReviewed By: @jeffmo\n\nDifferential Revision: D2487255\n\nPulled By: @gabelevi","distinct":true,"url":"https://api.github.com/repos/frantic/flow/commits/a59440f8e71281d97e9d40c0b5b6b39342d8351d"},{"sha":"206a9afa46bd2317f2b098435fb527b8d3b81898","author":{"email":"cc060e347222643fda7d9ea6fc0ae6961bf9e7ac@fb.com","name":"Gabe Levi"},"message":"[hack] Log wall_age_ms in addition to wall_age\n\nSummary: Sometimes its nice to have ms precision.\n\nReviewed By: @int3\n\nDifferential Revision: D2494520","distinct":true,"url":"https://api.github.com/repos/frantic/flow/commits/206a9afa46bd2317f2b098435fb527b8d3b81898"},{"sha":"5ce3276a4d8e6a496f3430210f8ce4375b42ff12","author":{"email":"e8d869025aa586dcffe1d742d5ceb2c0a562badf@fb.com","name":"James Pearce"},"message":"Adds support for registerElement for web components\n\nSummary: Just adds the registerElement function as per http://w3c.github.io/webcomponents/spec/custom/#extensions-to-document-interface-to-register\nCloses https://github.com/facebook/flow/pull/855\n\nReviewed By: @jeffmo\n\nDifferential Revision: D2492051\n\nPulled By: @gabelevi","distinct":true,"url":"https://api.github.com/repos/frantic/flow/commits/5ce3276a4d8e6a496f3430210f8ce4375b42ff12"},{"sha":"bb4f2a13bb55ff122500656535834fdbc7e3ec2c","author":{"email":"f3e731dfa293c7a83119d8aacfa41b5d2d780be9@jeffutter.com","name":"Jeffery Utter"},"message":"Add checkValidity() function HTMLFormElement and HTMLInputElement\n\nSummary: Both of these are defined in the HTML5 spec.Closes https://github.com/facebook/flow/pull/866\n\nReviewed By: @jeffmo\n\nDifferential Revision: D2487387\n\nPulled By: @gabelevi","distinct":true,"url":"https://api.github.com/repos/frantic/flow/commits/bb4f2a13bb55ff122500656535834fdbc7e3ec2c"},{"sha":"2848a3f26de6c161dc01579c9037521007fd1268","author":{"email":"0e528190e12911c0001cd13934cb550f905f02b8@fb.com","name":"Michael Bolin"},"message":"Add definition for Number.isInteger() to lib/core.js.\n\nSummary: Reading http://www.ecma-international.org/ecma-262/6.0/#sec-isinteger and\ntesting in Chrome, there is nothing that requires the argument to be a `number`.\n\nI noticed that the same is true of `isNaN()` and `isSafeInteger()`, so I\nupdated those, as well.\n\nReviewed By: @bhosmer\n\nDifferential Revision: D2494736","distinct":true,"url":"https://api.github.com/repos/frantic/flow/commits/2848a3f26de6c161dc01579c9037521007fd1268"},{"sha":"b352b4c41283c1cb109ee2e8f6ef604ad4ac381b","author":{"email":"cc060e347222643fda7d9ea6fc0ae6961bf9e7ac@fb.com","name":"Gabe Levi"},"message":"Standardize exit codes\n\nSummary: This diff attempts to create a list of the various exit codes and use\nthem in the right places.\n\nExit codes are part of our API and therefore can't be changed willynilly.\nLuckily, our exit codes are mostly undocumented, and only a few are used by the\nvarious tools that integrate with Flow. This gives me the freedom to change\nwith which code many paths exit.\n\nReviewed By: @bhosmer\n\nDifferential Revision: D2493921","distinct":true,"url":"https://api.github.com/repos/frantic/flow/commits/b352b4c41283c1cb109ee2e8f6ef604ad4ac381b"},{"sha":"7089eaf73b1ac66ea037eb1802a051132a3959f3","author":{"email":"7180f0b2b26643fef3b2a9b6f99d2d199447b86c@uw.edu","name":"Tim Popham"},"message":"Support `new this.constructor(...)` and `new x.constructor(...)`\n\nSummary: This redirects `constructor` property lookups on class instances to the class rather than its constructor function.  With the ctor handled separate from other static methods, #596 can be closed.\nCloses https://github.com/facebook/flow/pull/857\n\nReviewed By: @jeffmo\n\nDifferential Revision: D2487440\n\nPulled By: @gabelevi","distinct":true,"url":"https://api.github.com/repos/frantic/flow/commits/7089eaf73b1ac66ea037eb1802a051132a3959f3"},{"sha":"fab830edbbcf75ba29efc55ffe19e072157a3448","author":{"email":"cc060e347222643fda7d9ea6fc0ae6961bf9e7ac@fb.com","name":"Gabe Levi"},"message":"Log an event when a command exits\n\nSummary: This will be useful to tracking how fast/slow various commands are\n\nReviewed By: @bhosmer\n\nDifferential Revision: D2494662","distinct":true,"url":"https://api.github.com/repos/frantic/flow/commits/fab830edbbcf75ba29efc55ffe19e072157a3448"},{"sha":"752ec04c063387e18e58f889f0897b4aa1504df8","author":{"email":"5b09847fdc2bcc8c7c506df89bc8543d94b30bd6@fb.com","name":"Gabe Levi"},"message":"Update logger stub and fix OSS build\n\nSummary: Closes https://github.com/facebook/flow/pull/885\n\nReviewed By: @jeffmo\n\nDifferential Revision: D2496368\n\nPulled By: @gabelevi","distinct":true,"url":"https://api.github.com/repos/frantic/flow/commits/752ec04c063387e18e58f889f0897b4aa1504df8"},{"sha":"5ab964cac6670bd64d0b6d8b56a35836b7113298","author":{"email":"7180f0b2b26643fef3b2a9b6f99d2d199447b86c@uw.edu","name":"Tim Popham"},"message":"Support `new this(...)` within static methods\n\nSummary: Bind `this` within class static methods to the class itself rather than just the statics.  This is necessary to allow instantiating `this`.\n\nI would still like to admit polymorphic statics that yield derived instances, e.g.\n\n```js\nclass A {\n  static create<T: A>(): T {\n    return new this();\n  }\n}\n\nclass B extends A {}\n\nvar b: B = B.create(); // NG\n```\nCloses https://github.com/facebook/flow/pull/858\n\nReviewed By: @jeffmo\n\nDifferential Revision: D2487424\n\nPulled By: @gabelevi","distinct":true,"url":"https://api.github.com/repos/frantic/flow/commits/5ab964cac6670bd64d0b6d8b56a35836b7113298"},{"sha":"fb50e311cbc4d6b716889419796ff8a8746bd7f1","author":{"email":"86b86551e02b757a2f0b3d9405886cb9a40714f9@fb.com","name":"Max Sherman"},"message":"[hack] adding -s switch for statement matching\n\nSummary: this diff adds the -s switch to hh_match, which is like the -e switch, except it matches and patches statements instead of expressions\n\nthis works, however there are two problems that I noticed:\n- For both -e and -s, when matching multiple statements the number printed to stdout that is supposed to be the number of matches is wrong.  the number i'm referring to is the first one printed.  it will be like\n\n$NUM Matched: $FILE_PATH\n<matches>...\n\nwhere $NUM is usually too high\n\n- hh_match with the -e or -s switch doesn't seem to work when used on directories, only on specific files\n\nReviewed By: @hermanventer\n\nDifferential Revision: D2481142","distinct":true,"url":"https://api.github.com/repos/frantic/flow/commits/fb50e311cbc4d6b716889419796ff8a8746bd7f1"},{"sha":"89b5aa68e8c9449aefdcb8c5b2a370a8cb080527","author":{"email":"f56adeef18cb5eed56cd82d8c7100e80f36f6b8b@fb.com","name":"Avik Chaudhuri"},"message":"array spread fix\n\nSummary: Earlier, we used to treat spreads in arrays the same way as we treat spreads in\ncall args. This was flawed, because in call args they implicitly repeat (to\nmatch a sequence of params) whereas in arrays they don't: all elements have the\nsame type.\n\nMatching with repetition needs special handling, which we implement only in\nparameter / call arg matching. This diff frees spreads in arrays from\nrepetition, so that no further special handling is needed for them.\n\nReviewed By: @bhosmer\n\nDifferential Revision: D2497212","distinct":true,"url":"https://api.github.com/repos/frantic/flow/commits/89b5aa68e8c9449aefdcb8c5b2a370a8cb080527"},{"sha":"7cd2a6456b8d80035d8fc041097af2b2ddd0a96c","author":{"email":"cc060e347222643fda7d9ea6fc0ae6961bf9e7ac@fb.com","name":"Gabe Levi"},"message":"All classes have a static \"name\" property\n\nSummary: All classes implicitly have a static property `name`, which is the\nname of the class. Anonymous classes have the empty string. Initially I built\nthis to use string literals, but this doesn't work well with inheritance. That\nis if `class B extends A {}`, then it's a problem if `B.name` and `A.name` have\nincompatible string literal types.\n\nFunctions have this too, but at the moment we don't enforce anything about the\nstatics of functions.\n\nReviewed By: @bhosmer\n\nDifferential Revision: D2497035","distinct":true,"url":"https://api.github.com/repos/frantic/flow/commits/7cd2a6456b8d80035d8fc041097af2b2ddd0a96c"},{"sha":"4a818e73fdb00766f16d0f288a66e706d1a135e8","author":{"email":"521b71b66118ece0fda08843b612c77cfd6c2588@fb.com","name":"Jez Ng"},"message":"[hack] Fix integration tests\n\nReviewed By: @dlreeves\n\nDifferential Revision: D2497499","distinct":true,"url":"https://api.github.com/repos/frantic/flow/commits/4a818e73fdb00766f16d0f288a66e706d1a135e8"},{"sha":"3f7f91ad713b86efe255666e6488c77d6fef190e","author":{"email":"521b71b66118ece0fda08843b612c77cfd6c2588@fb.com","name":"Jez Ng"},"message":"[hack] Add --logname flag\n\nSummary: So people can do things like `cat $(hh_client --logname) | pastebin`\n\nReviewed By: @dlreeves\n\nDifferential Revision: D2497222","distinct":true,"url":"https://api.github.com/repos/frantic/flow/commits/3f7f91ad713b86efe255666e6488c77d6fef190e"},{"sha":"9f3807fdc5cc5e62f0f1e39af5870891664c968c","author":{"email":"521b71b66118ece0fda08843b612c77cfd6c2588@fb.com","name":"Jez Ng"},"message":"Log how long `find` takes\n\nSummary: I had to move it out of utils/ because EventLogger depends on Utils.\n\nThe number of top-level directories is proliferating, and I'd like to move all the fs-related stuff under an fs/ folder... but in a separate commit\n\nReviewed By: @dlreeves\n\nDifferential Revision: D2484010","distinct":true,"url":"https://api.github.com/repos/frantic/flow/commits/9f3807fdc5cc5e62f0f1e39af5870891664c968c"},{"sha":"9014e237701c81d765fbe2b69bf5055f70f4e7ac","author":{"email":"521b71b66118ece0fda08843b612c77cfd6c2588@fb.com","name":"Jez Ng"},"message":"[hack] Remove ServerEnv.async around logging call\n\nSummary: Logging is now entirely async, so this optimization is unnecessary\n\nReviewed By: @dlreeves\n\nDifferential Revision: D2493128","distinct":true,"url":"https://api.github.com/repos/frantic/flow/commits/9014e237701c81d765fbe2b69bf5055f70f4e7ac"},{"sha":"aa86ce108140696457ebfc44aa51d72bd9271195","author":{"email":"521b71b66118ece0fda08843b612c77cfd6c2588@fb.com","name":"Jez Ng"},"message":"[hack] Use Python test runner for integration tests\n\nReviewed By: @dlreeves\n\nDifferential Revision: D2497960","distinct":true,"url":"https://api.github.com/repos/frantic/flow/commits/aa86ce108140696457ebfc44aa51d72bd9271195"}]}