diff options
| author | Andrei Popescu <andreip@google.com> | 2010-02-26 13:31:12 +0000 |
|---|---|---|
| committer | Andrei Popescu <andreip@google.com> | 2010-02-26 13:31:12 +0000 |
| commit | 402d937239b0e2fd11bf2f4fe972ad78aa9fd481 (patch) | |
| tree | b9d769439a27fa48d7171e1a669e98f519591b94 /src/runtime.js | |
| parent | 2007755a32dfa1ac843f501dec4fb872f8bbcc52 (diff) | |
| download | android_external_v8-402d937239b0e2fd11bf2f4fe972ad78aa9fd481.tar.gz android_external_v8-402d937239b0e2fd11bf2f4fe972ad78aa9fd481.tar.bz2 android_external_v8-402d937239b0e2fd11bf2f4fe972ad78aa9fd481.zip | |
update V8 to TOT snapshot branch
Diffstat (limited to 'src/runtime.js')
| -rw-r--r-- | src/runtime.js | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/src/runtime.js b/src/runtime.js index 10ef98eb..e9d98487 100644 --- a/src/runtime.js +++ b/src/runtime.js @@ -178,7 +178,7 @@ function STRING_ADD_LEFT(y) { y = %_ValueOf(y); } else { y = IS_NUMBER(y) - ? %NumberToString(y) + ? %_NumberToString(y) : %ToString(%ToPrimitive(y, NO_HINT)); } } @@ -194,7 +194,7 @@ function STRING_ADD_RIGHT(y) { x = %_ValueOf(x); } else { x = IS_NUMBER(x) - ? %NumberToString(x) + ? %_NumberToString(x) : %ToString(%ToPrimitive(x, NO_HINT)); } } @@ -395,26 +395,20 @@ function FILTER_KEY(key) { function CALL_NON_FUNCTION() { - var callee = %GetCalledFunction(); - var delegate = %GetFunctionDelegate(callee); + var delegate = %GetFunctionDelegate(this); if (!IS_FUNCTION(delegate)) { - throw %MakeTypeError('called_non_callable', [typeof callee]); + throw %MakeTypeError('called_non_callable', [typeof this]); } - - var parameters = %NewArguments(delegate); - return delegate.apply(callee, parameters); + return delegate.apply(this, arguments); } function CALL_NON_FUNCTION_AS_CONSTRUCTOR() { - var callee = %GetCalledFunction(); - var delegate = %GetConstructorDelegate(callee); + var delegate = %GetConstructorDelegate(this); if (!IS_FUNCTION(delegate)) { - throw %MakeTypeError('called_non_callable', [typeof callee]); + throw %MakeTypeError('called_non_callable', [typeof this]); } - - var parameters = %NewArguments(delegate); - return delegate.apply(callee, parameters); + return delegate.apply(this, arguments); } @@ -529,6 +523,13 @@ function ToNumber(x) { // ECMA-262, section 9.8, page 35. function ToString(x) { if (IS_STRING(x)) return x; + if (IS_NUMBER(x)) return %_NumberToString(x); + if (IS_BOOLEAN(x)) return x ? 'true' : 'false'; + if (IS_UNDEFINED(x)) return 'undefined'; + return (IS_NULL(x)) ? 'null' : %ToString(%DefaultString(x)); +} + +function NonStringToString(x) { if (IS_NUMBER(x)) return %NumberToString(x); if (IS_BOOLEAN(x)) return x ? 'true' : 'false'; if (IS_UNDEFINED(x)) return 'undefined'; |
