summaryrefslogtreecommitdiff
path: root/threads.js
diff options
context:
space:
mode:
Diffstat (limited to 'threads.js')
-rw-r--r--threads.js17
1 files changed, 16 insertions, 1 deletions
diff --git a/threads.js b/threads.js
index d1e57d3..19f5fd8 100644
--- a/threads.js
+++ b/threads.js
@@ -83,7 +83,7 @@ ArgLabelMorph, localize, XML_Element, hex_sha512*/
// Global stuff ////////////////////////////////////////////////////////
-modules.threads = '2013-December-11';
+modules.threads = '2014-January-08';
var ThreadManager;
var Process;
@@ -2377,6 +2377,9 @@ Process.prototype.reportAttributeOf = function (attribute, name) {
thatObj = this.getOtherObject(name, thisObj, stage);
}
if (thatObj) {
+ if (attribute instanceof Context) {
+ return this.reportContextFor(attribute, thatObj);
+ }
if (isString(attribute)) {
return thatObj.variables.getVar(attribute);
}
@@ -2401,6 +2404,18 @@ Process.prototype.reportAttributeOf = function (attribute, name) {
return '';
};
+Process.prototype.reportContextFor = function (context, otherObj) {
+ // Private - return a copy of the context
+ // and bind it to another receiver
+ var result = copy(context);
+ result.receiver = otherObj;
+ if (result.outerContext) {
+ result.outerContext = copy(result.outerContext);
+ result.outerContext.receiver = otherObj;
+ }
+ return result;
+};
+
Process.prototype.reportMouseX = function () {
var stage, world;
if (this.homeContext.receiver) {