summaryrefslogtreecommitdiff
path: root/lists.js
diff options
context:
space:
mode:
authorjmoenig <jens@moenig.org>2014-11-20 14:17:06 +0100
committerjmoenig <jens@moenig.org>2014-11-20 14:17:06 +0100
commit89c2835130e5f77e92c35c52b26d58370be07a7c (patch)
tree6bd46681245ee88a70a97e32e07ad7bcfa99ef87 /lists.js
parentea05f7859fe5a042f0c0dd49b189c594b9a798d3 (diff)
downloadsnap-yow-89c2835130e5f77e92c35c52b26d58370be07a7c.tar.gz
snap-yow-89c2835130e5f77e92c35c52b26d58370be07a7c.zip
Fixed #642, avoid “freezing” when calling CONS on non-list/null
thanks, @brianharvey !
Diffstat (limited to 'lists.js')
-rw-r--r--lists.js5
1 files changed, 4 insertions, 1 deletions
diff --git a/lists.js b/lists.js
index a4aff6c..bd856fe 100644
--- a/lists.js
+++ b/lists.js
@@ -61,7 +61,7 @@ PushButtonMorph, SyntaxElementMorph, Color, Point, WatcherMorph,
StringMorph, SpriteMorph, ScrollFrameMorph, CellMorph, ArrowMorph,
MenuMorph, snapEquals, Morph, isNil, localize, MorphicPreferences*/
-modules.lists = '2014-July-28';
+modules.lists = '2014-November-20';
var List;
var ListWatcherMorph;
@@ -125,6 +125,9 @@ List.prototype.changed = function () {
List.prototype.cons = function (car, cdr) {
var answer = new List();
+ if (!(cdr instanceof List || isNil(cdr))) {
+ throw new Error("cdr isn't a list: " + cdr);
+ }
answer.first = isNil(car) ? null : car;
answer.rest = cdr || null;
answer.isLinked = true;