QScriptValueImpl Number::method_toString(QScriptContextPrivate *context, QScriptEnginePrivate *eng, QScriptClassInfo *classInfo) { QScriptValueImpl self = context->thisObject(); if (self.classInfo() != classInfo) return context->throwError(QScriptContext::TypeError, QLatin1String("Number.prototype.toString")); QScriptValueImpl arg = context->argument(0); if (!arg.isUndefined()) { int radix = arg.toInt32(); if (radix < 2 || radix > 36) return context->throwError(QString::fromLatin1("Number.prototype.toString: %0 is not a valid radix") .arg(radix)); if (radix != 10) { QString str; qsreal num = self.internalValue().toInteger(); do { char c = (char)::fmod(num, radix); if (c < 10) c += '0'; else c = c - 10 + 'a'; str.prepend(QLatin1Char(c)); num = ::floor(num / radix); } while (num != 0); return QScriptValueImpl(eng, str); } } QString str = self.internalValue().toString(); return (QScriptValueImpl(eng, str)); }