From ec6b46a4c58f25ab7f8c1e47493f131809b6fd3b Mon Sep 17 00:00:00 2001 From: jmoenig Date: Fri, 4 Oct 2013 10:34:59 +0200 Subject: [PATCH] Type-check the SPLIT block's input before eval'ing it --- history.txt | 4 ++++ threads.js | 14 ++++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/history.txt b/history.txt index 93860b58..2605a144 100755 --- a/history.txt +++ b/history.txt @@ -1933,3 +1933,7 @@ ______ 131001 ------ * Objects: smooth numerical values displayed in watchers + +131004 +------ +* Threads: Type-check the SPLIT block's input before eval'ing it diff --git a/threads.js b/threads.js index b8acc7e5..a705f285 100644 --- a/threads.js +++ b/threads.js @@ -83,7 +83,7 @@ ArgLabelMorph, localize, XML_Element, hex_sha512*/ // Global stuff //////////////////////////////////////////////////////// -modules.threads = '2013-September-16'; +modules.threads = '2013-October-04'; var ThreadManager; var Process; @@ -2002,8 +2002,18 @@ Process.prototype.reportUnicodeAsLetter = function (num) { }; Process.prototype.reportTextSplit = function (string, delimiter) { - var str = (string || '').toString(), + var types = ['text', 'number'], + strType = this.reportTypeOf(string), + delType = this.reportTypeOf(this.inputOption(delimiter)), + str, del; + if (!contains(types, strType)) { + throw new Error('expecting a text instad of a ' + strType); + } + if (!contains(types, delType)) { + throw new Error('expecting a text delimiter instad of a ' + delType); + } + str = (string || '').toString(); switch (this.inputOption(delimiter)) { case 'line': del = '\n';