* Added field value tests.
* Fixed field image src param.
* Fixed falsy values with label fields.
* Fixed falsy values with text input fields.
* Fixed some angle field tests.
* Fixed other text input when editing tests.
* Fixed colour tests.
* Cleaned up some number and variable field tests.
* Added angle field > 360 degrees tests.
* Fixed variable validator tests.
* Split setValue tests into sub-suites.
* Fixed angle >360 tests
* Changed var declarations to property declarations.
document.documentElement.clientWidth/clientHeight seems to work everywhere Blockly works. Closure’s functions are mind-numbingly complex due to IE5, old WebKit, Opera 8, and others.
Previously a function call with no return value generated:
prefix();
suffix();
function();
The intent was so the prefix and suffix calls in the function body wouldn’t overlap with the prefix and suffix calls of the function call. However, this is doomed to be inconsistent with a function call with a return value:
prefix();
print(function());
suffix();
Thus since overlaping must exist, both types of function calls should have consistent suffix locations.
Visit (with prefix and suffix) function block when executed. This commit adds a revisit at the end of the function body when evaluating the return value.
This allows generators to have more control over the placement of suffix. Needed for ‘if’ blocks and function calls which require their suffix code to be somewhere other than the end.
Also, add loop’s prefix to ‘break’ blocks, since the loop’s suffix will be the next statement hit.
Also, reuse procedures_callreturn generator for procedures_callnoreturn.
Also remove need to manually indent INFINITE_LOOP_TRAP. This is a breaking change for Python users of this property. However, very few users of this property exist, given that the existing code breaks if the block ID has a $ in it (also fixed in this PR).
* Rebuild and update version numbers
* rebuild
* Update version number to 1.20190419.0
* Resolve field angle overlap render problem
* use block.getColourBorder() function
I don’t care about whether we use the Element constants or the ubiquitously known 1 & 3 integers. But we had a mix.
Also, ’x’ is usually used for horizontal location, ‘i’ is an iterator.
No functional change.
Previously, if the XML of a toolbox contained a block ID, the first creation of this block would inherit this ID. Thus two realtime collaborators could realistically end up with conflict. Likewise, cut and paste could generate similar conflict.