summaryrefslogtreecommitdiff
path: root/threads.js
diff options
context:
space:
mode:
authorGubolin <gubolin@fantasymail.de>2015-04-01 16:05:26 +0200
committerGubolin <gubolin@fantasymail.de>2015-04-01 16:05:26 +0200
commita2c7c28f741f89a560ce20b3d2088fd7b3363c22 (patch)
treef9e50cb2e4cf606ea2ca77095f9c63d36051bcd9 /threads.js
parent3eb7ffb22905d2b516e98b9887831ebc526fb4c6 (diff)
parent5bf3820ce190d2334187681fb384421c594f52ac (diff)
downloadsnap-a2c7c28f741f89a560ce20b3d2088fd7b3363c22.tar.gz
snap-a2c7c28f741f89a560ce20b3d2088fd7b3363c22.zip
Merge master
Diffstat (limited to 'threads.js')
-rw-r--r--threads.js17
1 files changed, 13 insertions, 4 deletions
diff --git a/threads.js b/threads.js
index f28704d..2c96d38 100644
--- a/threads.js
+++ b/threads.js
@@ -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;
@@ -1178,10 +1178,13 @@ 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
+ );
+ return;
}
}
varFrame.setVar(name, value, this.blockReceiver());
@@ -1193,7 +1196,11 @@ 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
+ );
+ return;
}
}
varFrame.changeVar(name, value, this.blockReceiver());
@@ -1423,6 +1430,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);
};