Fixed #642, avoid “freezing” when calling CONS on non-list/null

thanks, @brianharvey !
pull/3/merge
jmoenig 2014-11-20 14:17:06 +01:00
rodzic ea05f7859f
commit 89c2835130
2 zmienionych plików z 8 dodań i 1 usunięć

Wyświetl plik

@ -2321,3 +2321,7 @@ ______
141117
------
* Threads, Blocks: Treat REPORT blocks inside custom command definitions as STOP THIS BLOCK / IGNORE INPUTS
141120
------
* Lists: Fixed #642, avoid “freezing” when calling CONS on non-list/null

Wyświetl plik

@ -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;