summaryrefslogtreecommitdiffstats
path: root/src/runtime.js
diff options
context:
space:
mode:
authorAndrei Popescu <andreip@google.com>2010-02-26 13:31:12 +0000
committerAndrei Popescu <andreip@google.com>2010-02-26 13:31:12 +0000
commit402d937239b0e2fd11bf2f4fe972ad78aa9fd481 (patch)
treeb9d769439a27fa48d7171e1a669e98f519591b94 /src/runtime.js
parent2007755a32dfa1ac843f501dec4fb872f8bbcc52 (diff)
downloadandroid_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.js29
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';