From 32f4d9e3a59a99c0ee1afa90724b28edbb3cc661 Mon Sep 17 00:00:00 2001 From: Mattias Gaertner Date: Fri, 19 Jan 2018 17:00:20 +0000 Subject: [PATCH] pas2js: range check int:= git-svn-id: trunk@38011 - --- utils/pas2js/dist/rtl.js | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/utils/pas2js/dist/rtl.js b/utils/pas2js/dist/rtl.js index 9512e76ed1..974cfe9547 100644 --- a/utils/pas2js/dist/rtl.js +++ b/utils/pas2js/dist/rtl.js @@ -385,6 +385,28 @@ var rtl = { rtl.raiseEInvalidCast(); }, + raiseRangeCheck: function(){ + var m = pas.sysutils || pas.SysUtils; + if (m){ + var t = m.ERangeError || m.erangeerror; + if (rtl.isPasClass(t)){ + var f = 'Create'; + if (rtl.isFunction(t[f])){ + throw t.$create(f); + } else { + throw t.$create('create'); + } + } + } + throw 'range error'; + }, + + rc: function(i,minval,maxval){ + // range check integer + if ((Math.floor(i)===i) && (i>=minval) && (i<=maxval)) return i; + rtl.raiseRangeCheck(); + }, + length: function(arr){ return (arr == null) ? 0 : arr.length; },