diff options
author | Bradley T. Hughes <bradley.hughes@nokia.com> | 2009-06-15 09:57:36 (GMT) |
---|---|---|
committer | Bradley T. Hughes <bradley.hughes@nokia.com> | 2009-06-15 09:57:36 (GMT) |
commit | 336dfcef05cb63df0a6d550b59a4badc7a0f01c1 (patch) | |
tree | a218ec97413e0c8ebc9600ac5db9b2adea485b32 /src/3rdparty/webkit/JavaScriptCore/runtime/JSImmediate.cpp | |
parent | e44d64510e019e5d3b379b704cfb824e0d7ccc9d (diff) | |
download | Qt-336dfcef05cb63df0a6d550b59a4badc7a0f01c1.zip Qt-336dfcef05cb63df0a6d550b59a4badc7a0f01c1.tar.gz Qt-336dfcef05cb63df0a6d550b59a4badc7a0f01c1.tar.bz2 |
Merge of master
Diffstat (limited to 'src/3rdparty/webkit/JavaScriptCore/runtime/JSImmediate.cpp')
-rw-r--r-- | src/3rdparty/webkit/JavaScriptCore/runtime/JSImmediate.cpp | 41 |
1 files changed, 24 insertions, 17 deletions
diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/JSImmediate.cpp b/src/3rdparty/webkit/JavaScriptCore/runtime/JSImmediate.cpp index 09b3750..201e56c 100644 --- a/src/3rdparty/webkit/JavaScriptCore/runtime/JSImmediate.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/runtime/JSImmediate.cpp @@ -32,35 +32,31 @@ namespace JSC { -JSObject* JSImmediate::toThisObject(JSValuePtr v, ExecState* exec) +JSObject* JSImmediate::toThisObject(JSValue v, ExecState* exec) { ASSERT(isImmediate(v)); if (isNumber(v)) - return constructNumberFromImmediateNumber(exec, v); + return constructNumber(exec, v); if (isBoolean(v)) return constructBooleanFromImmediateBoolean(exec, v); - if (v->isNull()) - return exec->globalThisValue(); - - JSNotAnObjectErrorStub* exception = createNotAnObjectErrorStub(exec, v->isNull()); - exec->setException(exception); - return new (exec) JSNotAnObject(exec, exception); + ASSERT(v.isUndefinedOrNull()); + return exec->globalThisValue(); } -JSObject* JSImmediate::toObject(JSValuePtr v, ExecState* exec) +JSObject* JSImmediate::toObject(JSValue v, ExecState* exec) { ASSERT(isImmediate(v)); if (isNumber(v)) - return constructNumberFromImmediateNumber(exec, v); + return constructNumber(exec, v); if (isBoolean(v)) return constructBooleanFromImmediateBoolean(exec, v); - JSNotAnObjectErrorStub* exception = createNotAnObjectErrorStub(exec, v->isNull()); + JSNotAnObjectErrorStub* exception = createNotAnObjectErrorStub(exec, v.isNull()); exec->setException(exception); return new (exec) JSNotAnObject(exec, exception); } -JSObject* JSImmediate::prototype(JSValuePtr v, ExecState* exec) +JSObject* JSImmediate::prototype(JSValue v, ExecState* exec) { ASSERT(isImmediate(v)); if (isNumber(v)) @@ -68,23 +64,34 @@ JSObject* JSImmediate::prototype(JSValuePtr v, ExecState* exec) if (isBoolean(v)) return exec->lexicalGlobalObject()->booleanPrototype(); - JSNotAnObjectErrorStub* exception = createNotAnObjectErrorStub(exec, v->isNull()); + JSNotAnObjectErrorStub* exception = createNotAnObjectErrorStub(exec, v.isNull()); exec->setException(exception); return new (exec) JSNotAnObject(exec, exception); } -UString JSImmediate::toString(JSValuePtr v) +UString JSImmediate::toString(JSValue v) { ASSERT(isImmediate(v)); - if (isNumber(v)) + if (isIntegerNumber(v)) return UString::from(getTruncatedInt32(v)); +#if USE(ALTERNATE_JSIMMEDIATE) + if (isNumber(v)) { + ASSERT(isDoubleNumber(v)); + double value = doubleValue(v); + if (value == 0.0) // +0.0 or -0.0 + return "0"; + return UString::from(value); + } +#else + ASSERT(!isNumber(v)); +#endif if (jsBoolean(false) == v) return "false"; if (jsBoolean(true) == v) return "true"; - if (v->isNull()) + if (v.isNull()) return "null"; - ASSERT(v->isUndefined()); + ASSERT(v.isUndefined()); return "undefined"; } |