diff options
| author | Jens Mönig <jens@moenig.org> | 2015-03-25 14:05:34 +0100 |
|---|---|---|
| committer | Jens Mönig <jens@moenig.org> | 2015-03-25 14:05:34 +0100 |
| commit | 303188f2d5c3280972d02060e8e0fdaf50b4310e (patch) | |
| tree | 965ba7f14217c339eadcdece10c6f0863780c26f /threads.js | |
| parent | 457224dd620eea4f20f24ebc62391363333cd00f (diff) | |
| download | snap-303188f2d5c3280972d02060e8e0fdaf50b4310e.tar.gz snap-303188f2d5c3280972d02060e8e0fdaf50b4310e.zip | |
OOP: integrated and adjusted fix for #752 and #745
Diffstat (limited to 'threads.js')
| -rw-r--r-- | threads.js | 19 |
1 files changed, 15 insertions, 4 deletions
@@ -83,7 +83,7 @@ ArgLabelMorph, localize, XML_Element, hex_sha512*/ // Global stuff //////////////////////////////////////////////////////// -modules.threads = '2015-March-23'; +modules.threads = '2015-March-25'; var ThreadManager; var Process; @@ -1153,10 +1153,14 @@ Process.prototype.doDeclareVariables = function (varNames) { Process.prototype.doSetVar = function (varName, value) { var varFrame = this.context.variables, name = varName; - if (name instanceof Context) { if (name.expression.selector === 'reportGetVar') { - name = name.expression.blockSpec; + name.variables.setVar( + name.expression.blockSpec, + value, + this.blockReceiver() + ); + return; } } varFrame.setVar(name, value, this.blockReceiver()); @@ -1168,7 +1172,12 @@ Process.prototype.doChangeVar = function (varName, value) { if (name instanceof Context) { if (name.expression.selector === 'reportGetVar') { - name = name.expression.blockSpec; + name.variables.changeVar( + name.expression.blockSpec, + value, + this.blockReceiver() + ); + return; } } varFrame.changeVar(name, value, this.blockReceiver()); @@ -1340,6 +1349,8 @@ Process.prototype.doDeleteFromList = function (index, list) { } if (this.inputOption(index) === 'last') { idx = list.length(); + } else if (isNaN(+this.inputOption(index))) { + return null; } list.remove(idx); }; |
