Changeset 34171 in webkit for trunk/JavaScriptCore/VM/Machine.cpp
- Timestamp:
- May 28, 2008, 3:48:04 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/VM/Machine.cpp
r34170 r34171 1078 1078 */ 1079 1079 int srcDst = (++vPC)->u.operand; 1080 JSValue* result = jsNumber(r[srcDst].u.jsValue->toNumber(exec) + 1); 1080 JSValue* v = r[srcDst].u.jsValue; 1081 JSValue* result; 1082 if (JSImmediate::canDoFastAdditiveOperations(v)) 1083 result = JSImmediate::incImmediateNumber(v); 1084 else 1085 result = jsNumber(v->toNumber(exec) + 1); 1081 1086 VM_CHECK_EXCEPTION(); 1082 1087 r[srcDst].u.jsValue = result; … … 1092 1097 */ 1093 1098 int srcDst = (++vPC)->u.operand; 1094 JSValue* result = jsNumber(r[srcDst].u.jsValue->toNumber(exec) - 1); 1099 JSValue* v = r[srcDst].u.jsValue; 1100 JSValue* result; 1101 if (JSImmediate::canDoFastAdditiveOperations(v)) 1102 result = JSImmediate::decImmediateNumber(v); 1103 else 1104 result = jsNumber(v->toNumber(exec) - 1); 1095 1105 VM_CHECK_EXCEPTION(); 1096 1106 r[srcDst].u.jsValue = result; … … 1108 1118 int dst = (++vPC)->u.operand; 1109 1119 int srcDst = (++vPC)->u.operand; 1110 JSValue* number = r[srcDst].u.jsValue->toJSNumber(exec); 1120 JSValue* v = r[srcDst].u.jsValue; 1121 JSValue* result; 1122 JSValue* number; 1123 if (JSImmediate::canDoFastAdditiveOperations(v)) { 1124 number = v; 1125 result = JSImmediate::incImmediateNumber(v); 1126 } else { 1127 number = r[srcDst].u.jsValue->toJSNumber(exec); 1128 result = jsNumber(number->uncheckedGetNumber() + 1); 1129 } 1111 1130 VM_CHECK_EXCEPTION(); 1112 1131 1113 1132 r[dst].u.jsValue = number; 1114 r[srcDst].u.jsValue = jsNumber(number->uncheckedGetNumber() + 1);1133 r[srcDst].u.jsValue = result; 1115 1134 1116 1135 ++vPC; … … 1126 1145 int dst = (++vPC)->u.operand; 1127 1146 int srcDst = (++vPC)->u.operand; 1128 JSValue* number = r[srcDst].u.jsValue->toJSNumber(exec); 1147 JSValue* v = r[srcDst].u.jsValue; 1148 JSValue* result; 1149 JSValue* number; 1150 if (JSImmediate::canDoFastAdditiveOperations(v)) { 1151 number = v; 1152 result = JSImmediate::decImmediateNumber(v); 1153 } else { 1154 number = r[srcDst].u.jsValue->toJSNumber(exec); 1155 result = jsNumber(number->uncheckedGetNumber() - 1); 1156 } 1129 1157 VM_CHECK_EXCEPTION(); 1130 1158 1131 1159 r[dst].u.jsValue = number; 1132 r[srcDst].u.jsValue = jsNumber(number->uncheckedGetNumber() - 1);1160 r[srcDst].u.jsValue = result; 1133 1161 1134 1162 ++vPC;
Note:
See TracChangeset
for help on using the changeset viewer.