added support for single implicit parameter to FOR EACH prim

pull/89/head
jmoenig 2019-04-26 15:03:37 +02:00
rodzic 09fe4102bb
commit 3502fe2da0
3 zmienionych plików z 7 dodań i 5 usunięć

Wyświetl plik

@ -86,6 +86,7 @@
* updated "audio comp" library (for new HOF prims)
* updated "parallelism" library (for new HOF prims)
* renamed help screens for the new HOF prims
* Theads: added support for single implicit parameter to FOR EACH prim
### 2019-04-25
* updated German translation (for new HOF prims)

Wyświetl plik

@ -7,7 +7,7 @@
<script type="text/javascript" src="src/morphic.js?version=2019-02-07"></script>
<script type="text/javascript" src="src/widgets.js?version=2019-04-05"></script>
<script type="text/javascript" src="src/blocks.js?version=2019-04-11"></script>
<script type="text/javascript" src="src/threads.js?version=2019-04-24"></script>
<script type="text/javascript" src="src/threads.js?version=2019-04-26"></script>
<script type="text/javascript" src="src/objects.js?version=2019-04-26"></script>
<script type="text/javascript" src="src/gui.js?version=2019-04-10"></script>
<script type="text/javascript" src="src/paint.js?version=2019-02-22"></script>

Wyświetl plik

@ -62,7 +62,7 @@ StageMorph, SpriteMorph, StagePrompterMorph, Note, modules, isString, copy,
isNil, WatcherMorph, List, ListWatcherMorph, alert, console, TableMorph, Color,
TableFrameMorph, ColorSlotMorph, isSnapObject, Map, newCanvas, Symbol*/
modules.threads = '2019-April-24';
modules.threads = '2019-April-26';
var ThreadManager;
var Process;
@ -2103,14 +2103,15 @@ Process.prototype.doForEach = function (upvar, list, script) {
this.assertType(list, 'list');
if (isNil(this.context.inputs[3])) {this.context.inputs[3] = 1; }
var index = this.context.inputs[3];
var index = this.context.inputs[3],
item = list.at(index);
this.context.outerContext.variables.addVar(upvar);
this.context.outerContext.variables.setVar(upvar, list.at(index));
this.context.outerContext.variables.setVar(upvar, item);
if (index > list.length()) {return; }
this.context.inputs[3] += 1;
this.pushContext('doYield');
this.pushContext();
this.evaluate(script, new List(), true);
this.evaluate(script, new List([item]), true);
};
Process.prototype.doFor = function (upvar, start, end, script) {