[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: kdelibs/kjs
From: Harri Porten <porten () kde ! org>
Date: 2002-12-19 11:04:02
[Download RAW message or body]
CVS commit by porten:
throw RangeError exception on invalid array lenghts
M +12 -2 array_object.cpp 1.43
--- kdelibs/kjs/array_object.cpp #1.42:1.43
@@ -56,4 +56,9 @@ void ArrayInstanceImp::put(ExecState *ex
unsigned int oldLen = len.toUInt32(exec);
unsigned int newLen = value.toUInt32(exec);
+ if (value.toNumber(exec) != double(newLen)) {
+ Object err = Error::create(exec, RangeError, "Invalid array length.");
+ exec->setException(err);
+ return;
+ }
// shrink array
for (unsigned int u = newLen; u < oldLen; u++) {
@@ -515,7 +520,12 @@ Object ArrayObjectImp::construct(ExecSta
ListIterator it = args.begin();
// a single argument might denote the array size
- if (args.size() == 1 && it->type() == NumberType)
+ if (args.size() == 1 && it->type() == NumberType) {
len = it->toUInt32(exec);
- else {
+ if (it->toNumber(exec) != double(len)) {
+ Object err = Error::create(exec, RangeError, "Invalid array length.");
+ exec->setException(err);
+ return err;
+ }
+ } else {
// initialize array
len = args.size();
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic