[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdelibs/kjs
From: Maks Orlovich <maksim () kde ! org>
Date: 2005-07-06 22:11:24
Message-ID: 1120687884.488493.26283.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 432299 by orlovich:
Do not needlessly convert things to int on op-assign.
Makes += for strings significantly faster, which should
help at least some webpages.
Partial merge from JSC
M +19 -8 nodes.cpp
--- trunk/KDE/kdelibs/kjs/nodes.cpp #432298:432299
@@ -1565,8 +1565,8 @@
Value v1 = l.getValue(exec);
Value v2 = expr->evaluate(exec);
KJS_CHECKEXCEPTIONVALUE
- int i1 = v1.toInt32(exec);
- int i2 = v2.toInt32(exec);
+ int i1;
+ int i2;
unsigned int ui;
switch (oper) {
case OpMultEq:
@@ -1582,23 +1582,34 @@
v = add(exec, v1, v2, '-');
break;
case OpLShift:
- v = Number(i1 <<= i2);
+ i1 = v1.toInt32(exec);
+ i2 = v2.toInt32(exec);
+ v = Number(i1 << i2);
break;
case OpRShift:
- v = Number(i1 >>= i2);
+ i1 = v1.toInt32(exec);
+ i2 = v2.toInt32(exec);
+ v = Number(i1 >> i2);
break;
case OpURShift:
ui = v1.toUInt32(exec);
- v = Number(ui >>= i2);
+ i2 = v2.toInt32(exec);
+ v = Number(ui >> i2);
break;
case OpAndEq:
- v = Number(i1 &= i2);
+ i1 = v1.toInt32(exec);
+ i2 = v2.toInt32(exec);
+ v = Number(i1 & i2);
break;
case OpXOrEq:
- v = Number(i1 ^= i2);
+ i1 = v1.toInt32(exec);
+ i2 = v2.toInt32(exec);
+ v = Number(i1 ^ i2);
break;
case OpOrEq:
- v = Number(i1 |= i2);
+ i1 = v1.toInt32(exec);
+ i2 = v2.toInt32(exec);
+ v = Number(i1 | i2);
break;
case OpModEq: {
double d1 = v1.toNumber(exec);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic