summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjmoenig <jens@moenig.org>2014-11-24 12:59:02 +0100
committerjmoenig <jens@moenig.org>2014-11-24 12:59:02 +0100
commit68c4d2d291c8da03798164f0740ed18889f09db3 (patch)
treefc4316824a538b398f8dd024d0db312c6523f1f3
parent2cee474cb676f9ad04d55cc25f8d3fc42c002cce (diff)
downloadsnap-byow-68c4d2d291c8da03798164f0740ed18889f09db3.tar.gz
snap-byow-68c4d2d291c8da03798164f0740ed18889f09db3.zip
fixed #131
and display an error if a reporter or a “called” ring is missing a “report” statement
-rwxr-xr-xhistory.txt1
-rw-r--r--threads.js3
2 files changed, 3 insertions, 1 deletions
diff --git a/history.txt b/history.txt
index 2efc442..30de1ab 100755
--- a/history.txt
+++ b/history.txt
@@ -2349,3 +2349,4 @@ ______
* Objects: Fixed #372
* Threads: Fixed #644
* Store: Fixed #34
+* Threads: Fixed #131
diff --git a/threads.js b/threads.js
index 574fd35..9161417 100644
--- a/threads.js
+++ b/threads.js
@@ -698,7 +698,7 @@ Process.prototype.doYield = function () {
Process.prototype.exitReporter = function () {
// catch-tag for REPORT and STOP BLOCK primitives
- this.popContext();
+ this.handleError(new Error("missing 'report' statement in reporter"));
};
// Process Exception Handling
@@ -1098,6 +1098,7 @@ Process.prototype.evaluateCustomBlock = function () {
outer.receiver
);
runnable.parentContext = exit;
+ this.popContext(); // don't yield when done
} else {
// tag all "stop this block" blocks with the current
// procedureCount as exitTag, and mark all "report" blocks