OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1999-2000 Harri Porten (porten@kde.org) | 2 * Copyright (C) 1999-2000 Harri Porten (porten@kde.org) |
3 * Copyright (C) 2002, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reser
ved. | 3 * Copyright (C) 2002, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reser
ved. |
4 * | 4 * |
5 * This library is free software; you can redistribute it and/or | 5 * This library is free software; you can redistribute it and/or |
6 * modify it under the terms of the GNU Library General Public | 6 * modify it under the terms of the GNU Library General Public |
7 * License as published by the Free Software Foundation; either | 7 * License as published by the Free Software Foundation; either |
8 * version 2 of the License, or (at your option) any later version. | 8 * version 2 of the License, or (at your option) any later version. |
9 * | 9 * |
10 * This library is distributed in the hope that it will be useful, | 10 * This library is distributed in the hope that it will be useful, |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
139 inline bool jsLess(CallFrame* callFrame, JSValuePtr v1, JSValuePtr v2) | 139 inline bool jsLess(CallFrame* callFrame, JSValuePtr v1, JSValuePtr v2) |
140 { | 140 { |
141 if (JSValuePtr::areBothInt32Fast(v1, v2)) | 141 if (JSValuePtr::areBothInt32Fast(v1, v2)) |
142 return v1.getInt32Fast() < v2.getInt32Fast(); | 142 return v1.getInt32Fast() < v2.getInt32Fast(); |
143 | 143 |
144 double n1; | 144 double n1; |
145 double n2; | 145 double n2; |
146 if (v1.getNumber(n1) && v2.getNumber(n2)) | 146 if (v1.getNumber(n1) && v2.getNumber(n2)) |
147 return n1 < n2; | 147 return n1 < n2; |
148 | 148 |
149 Interpreter* interpreter = callFrame->interpreter(); | 149 JSGlobalData* globalData = &callFrame->globalData(); |
150 if (interpreter->isJSString(v1) && interpreter->isJSString(v2)) | 150 if (isJSString(globalData, v1) && isJSString(globalData, v2)) |
151 return asString(v1)->value() < asString(v2)->value(); | 151 return asString(v1)->value() < asString(v2)->value(); |
152 | 152 |
153 JSValuePtr p1; | 153 JSValuePtr p1; |
154 JSValuePtr p2; | 154 JSValuePtr p2; |
155 bool wasNotString1 = v1.getPrimitiveNumber(callFrame, n1, p1); | 155 bool wasNotString1 = v1.getPrimitiveNumber(callFrame, n1, p1); |
156 bool wasNotString2 = v2.getPrimitiveNumber(callFrame, n2, p2); | 156 bool wasNotString2 = v2.getPrimitiveNumber(callFrame, n2, p2); |
157 | 157 |
158 if (wasNotString1 | wasNotString2) | 158 if (wasNotString1 | wasNotString2) |
159 return n1 < n2; | 159 return n1 < n2; |
160 | 160 |
161 return asString(p1)->value() < asString(p2)->value(); | 161 return asString(p1)->value() < asString(p2)->value(); |
162 } | 162 } |
163 | 163 |
164 inline bool jsLessEq(CallFrame* callFrame, JSValuePtr v1, JSValuePtr v2) | 164 inline bool jsLessEq(CallFrame* callFrame, JSValuePtr v1, JSValuePtr v2) |
165 { | 165 { |
166 if (JSValuePtr::areBothInt32Fast(v1, v2)) | 166 if (JSValuePtr::areBothInt32Fast(v1, v2)) |
167 return v1.getInt32Fast() <= v2.getInt32Fast(); | 167 return v1.getInt32Fast() <= v2.getInt32Fast(); |
168 | 168 |
169 double n1; | 169 double n1; |
170 double n2; | 170 double n2; |
171 if (v1.getNumber(n1) && v2.getNumber(n2)) | 171 if (v1.getNumber(n1) && v2.getNumber(n2)) |
172 return n1 <= n2; | 172 return n1 <= n2; |
173 | 173 |
174 Interpreter* interpreter = callFrame->interpreter(); | 174 JSGlobalData* globalData = &callFrame->globalData(); |
175 if (interpreter->isJSString(v1) && interpreter->isJSString(v2)) | 175 if (isJSString(globalData, v1) && isJSString(globalData, v2)) |
176 return !(asString(v2)->value() < asString(v1)->value()); | 176 return !(asString(v2)->value() < asString(v1)->value()); |
177 | 177 |
178 JSValuePtr p1; | 178 JSValuePtr p1; |
179 JSValuePtr p2; | 179 JSValuePtr p2; |
180 bool wasNotString1 = v1.getPrimitiveNumber(callFrame, n1, p1); | 180 bool wasNotString1 = v1.getPrimitiveNumber(callFrame, n1, p1); |
181 bool wasNotString2 = v2.getPrimitiveNumber(callFrame, n2, p2); | 181 bool wasNotString2 = v2.getPrimitiveNumber(callFrame, n2, p2); |
182 | 182 |
183 if (wasNotString1 | wasNotString2) | 183 if (wasNotString1 | wasNotString2) |
184 return n1 <= n2; | 184 return n1 <= n2; |
185 | 185 |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
286 ++next; | 286 ++next; |
287 } | 287 } |
288 | 288 |
289 ASSERT_NOT_REACHED(); | 289 ASSERT_NOT_REACHED(); |
290 return noValue(); | 290 return noValue(); |
291 } | 291 } |
292 | 292 |
293 } // namespace JSC | 293 } // namespace JSC |
294 | 294 |
295 #endif // Operations_h | 295 #endif // Operations_h |
OLD | NEW |