Index: src/runtime.js |
=================================================================== |
--- src/runtime.js (revision 5357) |
+++ src/runtime.js (working copy) |
@@ -502,7 +502,10 @@ |
// ECMA-262, section 9.3, page 31. |
function ToNumber(x) { |
if (IS_NUMBER(x)) return x; |
- if (IS_STRING(x)) return %StringToNumber(x); |
+ if (IS_STRING(x)) { |
+ return %_HasCachedArrayIndex(x) ? %_GetCachedArrayIndex(x) |
+ : %StringToNumber(x); |
+ } |
if (IS_BOOLEAN(x)) return x ? 1 : 0; |
if (IS_UNDEFINED(x)) return $NaN; |
return (IS_NULL(x)) ? 0 : ToNumber(%DefaultNumber(x)); |