fixed continutations capturing the end of a script

pull/95/head
jmoenig 2020-07-02 01:25:41 +02:00
rodzic 410915460e
commit d4a7caf0b9
3 zmienionych plików z 9 dodań i 5 usunięć

Wyświetl plik

@ -36,6 +36,7 @@
* recursive calls to "broadcast and wait" execute smoothly again
* expanding a collapsed comment or clicking on it now brings it to the front
* long project titles no longer overlap other buttons in the control bar
* "empty" continuations referring to the end of a script no longer throw an error.
* **Translation Updates:**
* New Hebrew translation
* Ukranian

Wyświetl plik

@ -8,7 +8,7 @@
<script src="src/symbols.js?version=2020-07-01"></script>
<script src="src/widgets.js?version=2020-07-01"></script>
<script src="src/blocks.js?version=2020-07-01"></script>
<script src="src/threads.js?version=2020-07-01"></script>
<script src="src/threads.js?version=2020-07-02"></script>
<script src="src/objects.js?version=2020-07-01"></script>
<script src="src/gui.js?version=2020-07-01"></script>
<script src="src/paint.js?version=2020-05-17"></script>

Wyświetl plik

@ -61,7 +61,7 @@ StageMorph, SpriteMorph, StagePrompterMorph, Note, modules, isString, copy, Map,
isNil, WatcherMorph, List, ListWatcherMorph, alert, console, TableMorph, BLACK,
TableFrameMorph, ColorSlotMorph, isSnapObject, newCanvas, Symbol, SVG_Costume*/
modules.threads = '2020-July-01';
modules.threads = '2020-July-02';
var ThreadManager;
var Process;
@ -1362,7 +1362,7 @@ Process.prototype.doStopCustomBlock = function () {
Process.prototype.doCallCC = function (aContext, isReporter) {
this.evaluate(
aContext,
new List([this.context.continuation()]),
new List([this.context.continuation(isReporter)]),
!isReporter
);
};
@ -6139,14 +6139,17 @@ Context.prototype.image = function () {
// Context continuations:
Context.prototype.continuation = function () {
Context.prototype.continuation = function (isReporter) {
var cont;
if (this.expression instanceof Array) {
cont = this;
} else if (this.parentContext) {
cont = this.parentContext;
} else {
cont = new Context(null, 'expectReport');
cont = new Context(
null,
isReporter ? 'expectReport' : 'popContext'
);
cont.isContinuation = true;
return cont;
}