{"push_id":2473244259,"size":8,"distinct_size":8,"ref":"refs/heads/develop","head":"631d7fb4de5b89a516a463b83c6a04df74c3f0f2","before":"cd7e03f0f671ae4186c93fe24a4337c9f5639980","commits":[{"sha":"af058b8146651b70fb1a224587711735c3682bc6","author":{"name":"Christopher Willis-Ford","email":"c5a5a9d0bd93c19a227678a2375ff852d563be19@media.mit.edu"},"message":"Support LOOP and CONDITIONAL blocks in extensions\n\nA LOOP block is like a conditional, but the LOOP block will be\nre-evaluated after any child branch runs.\n\nAlso:\n- Support using '---' as a block separator\n- Refactor common code from `_registerExtensionPrimitives` and\n  `_refreshExtensionPrimitives` into new `_fillExtensionCategory`\n- Improve error reporting during block conversion","distinct":true,"url":"https://api.github.com/repos/LLK/scratch-vm/commits/af058b8146651b70fb1a224587711735c3682bc6"},{"sha":"de9e2be265bf5d800f37a8267b140ffb62f3b674","author":{"name":"Christopher Willis-Ford","email":"c5a5a9d0bd93c19a227678a2375ff852d563be19@media.mit.edu"},"message":"Add EVENT extension block type\n\nAn EVENT block is like a HAT block but it has no implementation\nfunction. Its stack runs when the VM emits the corresponding event.","distinct":true,"url":"https://api.github.com/repos/LLK/scratch-vm/commits/de9e2be265bf5d800f37a8267b140ffb62f3b674"},{"sha":"defdd42c47752fffe439db228f138c025b68968c","author":{"name":"Christopher Willis-Ford","email":"c5a5a9d0bd93c19a227678a2375ff852d563be19@media.mit.edu"},"message":"Add TargetType enum for use by/with extensions","distinct":true,"url":"https://api.github.com/repos/LLK/scratch-vm/commits/defdd42c47752fffe439db228f138c025b68968c"},{"sha":"f8db6c3f02b64785a1b420dd0e9b4759bf1a0a44","author":{"name":"Christopher Willis-Ford","email":"c5a5a9d0bd93c19a227678a2375ff852d563be19@media.mit.edu"},"message":"Support extension translation\n\nThe new `maybeFormatMessage` function detects whether its argument\nlooks like a message descriptor object and, if so, will call\n`formatMessage` on it. This is now used for all user-visible text fields\nin extensions.\n\nAlso, messages may use \"select\" to check the target type with a message\nlike this: '{targetType, select, stage {text for stage} sprite {text for\nsprite} other {text for other}'. Note that the \"other\" clause is\nrequired by `formatMessage`.","distinct":true,"url":"https://api.github.com/repos/LLK/scratch-vm/commits/f8db6c3f02b64785a1b420dd0e9b4759bf1a0a44"},{"sha":"3be16eddb18f0db3b74d39bd7fbf2f2528af03fa","author":{"name":"Christopher Willis-Ford","email":"c5a5a9d0bd93c19a227678a2375ff852d563be19@media.mit.edu"},"message":"Add code to load 'core' extensions","distinct":true,"url":"https://api.github.com/repos/LLK/scratch-vm/commits/3be16eddb18f0db3b74d39bd7fbf2f2528af03fa"},{"sha":"8ef4aec7fabb290381511a6606f4a762798ae787","author":{"name":"Christopher Willis-Ford","email":"c5a5a9d0bd93c19a227678a2375ff852d563be19@media.mit.edu"},"message":"Add tests for maybeFormatMessage","distinct":true,"url":"https://api.github.com/repos/LLK/scratch-vm/commits/8ef4aec7fabb290381511a6606f4a762798ae787"},{"sha":"53b5ba93f55a01f5376f5265b40856172d867858","author":{"name":"Christopher Willis-Ford","email":"c5a5a9d0bd93c19a227678a2375ff852d563be19@media.mit.edu"},"message":"Add tests for converting extension metadata\n\nThese tests convert some extension metadata into scratch-blocks JSON and\nXML, then verify that the JSON and XML are as expected.","distinct":true,"url":"https://api.github.com/repos/LLK/scratch-vm/commits/53b5ba93f55a01f5376f5265b40856172d867858"},{"sha":"631d7fb4de5b89a516a463b83c6a04df74c3f0f2","author":{"name":"Chris Willis-Ford","email":"c5a5a9d0bd93c19a227678a2375ff852d563be19@users.noreply.github.com"},"message":"Merge pull request #1021 from cwillisf/features-for-control-extension\n\nFeatures for control extension","distinct":true,"url":"https://api.github.com/repos/LLK/scratch-vm/commits/631d7fb4de5b89a516a463b83c6a04df74c3f0f2"}]}
{"actor":{"display_login":"cwillisf"}}