summaryrefslogtreecommitdiff
path: root/threads.js
diff options
context:
space:
mode:
authorJens Mönig <jens@moenig.org>2015-03-23 12:44:46 +0100
committerJens Mönig <jens@moenig.org>2015-03-23 12:44:46 +0100
commitaf9b3dec293c45ac4b109f4ef3c21ba2f5bc55c3 (patch)
tree4fbdc970ba7fd2f9ba43b83cc7b8ffce4e8bea27 /threads.js
parent4acf1896bd9fa57d3dbe3f4721b6790c6f3b0d56 (diff)
downloadsnap-af9b3dec293c45ac4b109f4ef3c21ba2f5bc55c3.tar.gz
snap-af9b3dec293c45ac4b109f4ef3c21ba2f5bc55c3.zip
OOP: Tweaks for scope conflicts when adding / removing vars
Diffstat (limited to 'threads.js')
-rw-r--r--threads.js9
1 files changed, 6 insertions, 3 deletions
diff --git a/threads.js b/threads.js
index d3dcfc9..82f7ab0 100644
--- a/threads.js
+++ b/threads.js
@@ -83,7 +83,7 @@ ArgLabelMorph, localize, XML_Element, hex_sha512*/
// Global stuff ////////////////////////////////////////////////////////
-modules.threads = '2015-March-21';
+modules.threads = '2015-March-23';
var ThreadManager;
var Process;
@@ -1299,14 +1299,17 @@ Process.prototype.doRemoveTemporaries = function () {
Process.prototype.doDeleteAttr = function (attrName) {
// currently only variables are deletable
- var name = attrName;
+ var name = attrName,
+ rcvr = this.blockReceiver();
if (name instanceof Context) {
if (name.expression.selector === 'reportGetVar') {
name = name.expression.blockSpec;
}
}
- this.blockReceiver().deleteVariable(name);
+ if (contains(rcvr.inheritedVariableNames(true), name)) {
+ rcvr.deleteVariable(name);
+ }
};
// Process lists primitives