diff options
| author | Steve Block <steveblock@google.com> | 2009-12-15 09:54:21 +0000 |
|---|---|---|
| committer | Steve Block <steveblock@google.com> | 2009-12-15 09:54:21 +0000 |
| commit | d0582a6c46733687d045e4188a1bcd0123c758a1 (patch) | |
| tree | 4139657adad206f69647f3d03f6fb2da2e8ae14e /src/runtime.js | |
| parent | 3ce2e2076e8e3e60cf1810eec160ea2d8557e9e7 (diff) | |
| download | android_external_v8-d0582a6c46733687d045e4188a1bcd0123c758a1.tar.gz android_external_v8-d0582a6c46733687d045e4188a1bcd0123c758a1.tar.bz2 android_external_v8-d0582a6c46733687d045e4188a1bcd0123c758a1.zip | |
Update V8 to r3431 as required by WebKit r51976.
Change-Id: I567392c3f8c0a0d5201a4249611ac4ccf468cd5b
Diffstat (limited to 'src/runtime.js')
| -rw-r--r-- | src/runtime.js | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/runtime.js b/src/runtime.js index 789bfdb7..105749a7 100644 --- a/src/runtime.js +++ b/src/runtime.js @@ -128,7 +128,10 @@ function COMPARE(x, ncr) { if (IS_STRING(a) && IS_STRING(b)) { return %StringCompare(a, b); } else { - return %NumberCompare(%ToNumber(a), %ToNumber(b), ncr); + var a_number = %ToNumber(a); + var b_number = %ToNumber(b); + if (NUMBER_IS_NAN(a_number) || NUMBER_IS_NAN(b_number)) return ncr; + return %NumberCompare(a_number, b_number, ncr); } } @@ -143,16 +146,16 @@ function COMPARE(x, ncr) { function ADD(x) { // Fast case: Check for number operands and do the addition. if (IS_NUMBER(this) && IS_NUMBER(x)) return %NumberAdd(this, x); - if (IS_STRING(this) && IS_STRING(x)) return %StringAdd(this, x); + if (IS_STRING(this) && IS_STRING(x)) return %_StringAdd(this, x); // Default implementation. var a = %ToPrimitive(this, NO_HINT); var b = %ToPrimitive(x, NO_HINT); if (IS_STRING(a)) { - return %StringAdd(a, %ToString(b)); + return %_StringAdd(a, %ToString(b)); } else if (IS_STRING(b)) { - return %StringAdd(%ToString(a), b); + return %_StringAdd(%ToString(a), b); } else { return %NumberAdd(%ToNumber(a), %ToNumber(b)); } @@ -170,7 +173,7 @@ function STRING_ADD_LEFT(y) { : %ToString(%ToPrimitive(y, NO_HINT)); } } - return %StringAdd(this, y); + return %_StringAdd(this, y); } @@ -186,7 +189,7 @@ function STRING_ADD_RIGHT(y) { : %ToString(%ToPrimitive(x, NO_HINT)); } } - return %StringAdd(x, y); + return %_StringAdd(x, y); } |
