Changeset 96673 in webkit for trunk/Source/JavaScriptCore/jit/JITStubs.cpp
- Timestamp:
- Oct 4, 2011, 7:38:49 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/jit/JITStubs.cpp
r96563 r96673 1313 1313 } 1314 1314 1315 double left = 0.0, right; 1316 if (v1.getNumber(left) && v2.getNumber(right)) 1317 return JSValue::encode(jsNumber(left + right)); 1315 if (v1.isNumber() && v2.isNumber()) 1316 return JSValue::encode(jsNumber(v1.asNumber() + v2.asNumber())); 1318 1317 1319 1318 // All other cases are pretty uncommon … … 2118 2117 JSValue src2 = stackFrame.args[1].jsValue(); 2119 2118 2120 double left; 2121 double right; 2122 if (src1.getNumber(left) && src2.getNumber(right)) 2123 return JSValue::encode(jsNumber(left * right)); 2119 if (src1.isNumber() && src2.isNumber()) 2120 return JSValue::encode(jsNumber(src1.asNumber() * src2.asNumber())); 2124 2121 2125 2122 CallFrame* callFrame = stackFrame.callFrame; … … 2588 2585 JSValue src2 = stackFrame.args[1].jsValue(); 2589 2586 2590 double left; 2591 double right; 2592 if (src1.getNumber(left) && src2.getNumber(right)) 2593 return JSValue::encode(jsNumber(left - right)); 2587 if (src1.isNumber() && src2.isNumber()) 2588 return JSValue::encode(jsNumber(src1.asNumber() - src2.asNumber())); 2594 2589 2595 2590 CallFrame* callFrame = stackFrame.callFrame; … … 2626 2621 return; 2627 2622 } else { 2628 double dValue = 0; 2629 if (value.getNumber(dValue)) { 2630 jsByteArray->setIndex(i, dValue); 2623 if (value.isNumber()) { 2624 jsByteArray->setIndex(i, value.asNumber()); 2631 2625 return; 2632 2626 } … … 2668 2662 return; 2669 2663 } else { 2670 double dValue = 0; 2671 if (value.getNumber(dValue)) { 2672 jsByteArray->setIndex(i, dValue); 2664 if (value.isNumber()) { 2665 jsByteArray->setIndex(i, value.asNumber()); 2673 2666 return; 2674 2667 } … … 2834 2827 JSValue src = stackFrame.args[0].jsValue(); 2835 2828 2836 double v; 2837 if (src.getNumber(v)) 2838 return JSValue::encode(jsNumber(-v)); 2829 if (src.isNumber()) 2830 return JSValue::encode(jsNumber(-src.asNumber())); 2839 2831 2840 2832 CallFrame* callFrame = stackFrame.callFrame; … … 2951 2943 JSValue src2 = stackFrame.args[1].jsValue(); 2952 2944 2953 double left; 2954 double right; 2955 if (src1.getNumber(left) && src2.getNumber(right)) 2956 return JSValue::encode(jsNumber(left / right)); 2945 if (src1.isNumber() && src2.isNumber()) 2946 return JSValue::encode(jsNumber(src1.asNumber() / src2.asNumber())); 2957 2947 2958 2948 CallFrame* callFrame = stackFrame.callFrame; … … 3063 3053 CHECK_FOR_EXCEPTION_AT_END(); 3064 3054 3065 callFrame->registers()[stackFrame.args[1].int32()] = jsNumber(number. uncheckedGetNumber() + 1);3055 callFrame->registers()[stackFrame.args[1].int32()] = jsNumber(number.asNumber() + 1); 3066 3056 return JSValue::encode(number); 3067 3057 } … … 3362 3352 CHECK_FOR_EXCEPTION_AT_END(); 3363 3353 3364 callFrame->registers()[stackFrame.args[1].int32()] = jsNumber(number. uncheckedGetNumber() - 1);3354 callFrame->registers()[stackFrame.args[1].int32()] = jsNumber(number.asNumber() - 1); 3365 3355 return JSValue::encode(number); 3366 3356 } … … 3667 3657 if (scrutinee.isInt32()) 3668 3658 return codeBlock->immediateSwitchJumpTable(tableIndex).ctiForValue(scrutinee.asInt32()).executableAddress(); 3669 else { 3670 double value; 3671 int32_t intValue; 3672 if (scrutinee.getNumber(value) && ((intValue = static_cast<int32_t>(value)) == value)) 3673 return codeBlock->immediateSwitchJumpTable(tableIndex).ctiForValue(intValue).executableAddress(); 3674 else 3675 return codeBlock->immediateSwitchJumpTable(tableIndex).ctiDefault.executableAddress(); 3676 } 3659 if (scrutinee.isDouble()) { 3660 double value = scrutinee.asDouble(); 3661 int32_t int32Value = value; 3662 if (int32Value == value) 3663 return codeBlock->immediateSwitchJumpTable(tableIndex).ctiForValue(int32Value).executableAddress(); 3664 } 3665 return codeBlock->immediateSwitchJumpTable(tableIndex).ctiDefault.executableAddress(); 3677 3666 } 3678 3667
Note:
See TracChangeset
for help on using the changeset viewer.