summaryrefslogtreecommitdiff
path: root/threads.js
diff options
context:
space:
mode:
authorGubolin <gubolin@fantasymail.de>2015-01-08 19:29:43 +0100
committerGubolin <gubolin@fantasymail.de>2015-01-08 19:29:43 +0100
commit8b7b751c04a0f41129a2d39de93c171e8e516c42 (patch)
treeec627c704ed7f143b3b13f8c408797e738c47b29 /threads.js
parent04b0e2e521e52aa4d812de2aa098ecc7f7c475f5 (diff)
parent2b8d842592c0cf809408e4f14df1b23b55177206 (diff)
downloadsnap-8b7b751c04a0f41129a2d39de93c171e8e516c42.tar.gz
snap-8b7b751c04a0f41129a2d39de93c171e8e516c42.zip
Merge branch 'development' into gh-pages
Diffstat (limited to 'threads.js')
-rw-r--r--threads.js6
1 files changed, 4 insertions, 2 deletions
diff --git a/threads.js b/threads.js
index 936c9e0..f6aea65 100644
--- a/threads.js
+++ b/threads.js
@@ -83,7 +83,7 @@ ArgLabelMorph, localize, XML_Element, hex_sha512*/
// Global stuff ////////////////////////////////////////////////////////
-modules.threads = '2014-December-04';
+modules.threads = '2014-December-17';
var ThreadManager;
var Process;
@@ -243,7 +243,7 @@ ThreadManager.prototype.removeTerminatedProcesses = function () {
// and un-highlight their scripts
var remaining = [];
this.processes.forEach(function (proc) {
- if (!proc.isRunning() && !proc.errorFlag && !proc.isDead) {
+ if ((!proc.isRunning() && !proc.errorFlag) || proc.isDead) {
if (proc.topBlock instanceof BlockMorph) {
proc.topBlock.removeHighlight();
}
@@ -1734,6 +1734,7 @@ Process.prototype.doForEach = function (upvar, list, script) {
);
if (index > list.length()) {return; }
this.context.inputs[3] += 1;
+ this.pushContext('doYield');
this.pushContext();
this.evaluate(script, new List(), true);
};
@@ -2617,6 +2618,7 @@ Process.prototype.reportContextFor = function (context, otherObj) {
if (result.outerContext) {
result.outerContext = copy(result.outerContext);
result.outerContext.receiver = otherObj;
+ result.outerContext.variables.parentFrame = otherObj.variables;
}
return result;
};