diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/qml/jsruntime/qv4arraydata.cpp | 4 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4arrayobject.cpp | 40 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4lookup.cpp | 10 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4numberobject.cpp | 32 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4objectproto.cpp | 6 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4sequenceobject_p.h | 2 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4stringobject.cpp | 6 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4typedarray.cpp | 2 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4value.cpp | 10 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4value_p.h | 2 |
10 files changed, 52 insertions, 62 deletions
diff --git a/src/qml/jsruntime/qv4arraydata.cpp b/src/qml/jsruntime/qv4arraydata.cpp index 20e8e8a053..a546f78b54 100644 --- a/src/qml/jsruntime/qv4arraydata.cpp +++ b/src/qml/jsruntime/qv4arraydata.cpp @@ -679,8 +679,8 @@ bool ArrayElementLessThan::operator()(Value v1, Value v2) const return result->toNumber() < 0; } - ScopedString p1s(scope, v1.toString(m_context)); - ScopedString p2s(scope, v2.toString(m_context)); + ScopedString p1s(scope, v1.toString(scope.engine)); + ScopedString p2s(scope, v2.toString(scope.engine)); return p1s->toQString() < p2s->toQString(); } diff --git a/src/qml/jsruntime/qv4arrayobject.cpp b/src/qml/jsruntime/qv4arrayobject.cpp index 78cbe88ba9..bc47cb7c89 100644 --- a/src/qml/jsruntime/qv4arrayobject.cpp +++ b/src/qml/jsruntime/qv4arrayobject.cpp @@ -140,7 +140,7 @@ ReturnedValue ArrayPrototype::method_concat(CallContext *ctx) Scope scope(ctx); ScopedObject result(scope, ctx->d()->engine->newArrayObject()); - ScopedObject thisObject(scope, ctx->d()->callData->thisObject.toObject(ctx)); + ScopedObject thisObject(scope, ctx->d()->callData->thisObject.toObject(scope.engine)); if (!thisObject) return Encode::undefined(); ScopedArrayObject instance(scope, thisObject); @@ -220,7 +220,7 @@ ReturnedValue ArrayPrototype::method_join(CallContext *ctx) for (quint32 k = 1; k < r2; ++k) { R += r4; - name = Primitive::fromDouble(k).toString(ctx); + name = Primitive::fromDouble(k).toString(scope.engine); r12 = self->get(name.getPointer()); if (scope.hasException()) return Encode::undefined(); @@ -236,7 +236,7 @@ ReturnedValue ArrayPrototype::method_join(CallContext *ctx) ReturnedValue ArrayPrototype::method_pop(CallContext *ctx) { Scope scope(ctx); - ScopedObject instance(scope, ctx->d()->callData->thisObject.toObject(ctx)); + ScopedObject instance(scope, ctx->d()->callData->thisObject.toObject(scope.engine)); if (!instance) return Encode::undefined(); uint len = instance->getLength(); @@ -264,7 +264,7 @@ ReturnedValue ArrayPrototype::method_pop(CallContext *ctx) ReturnedValue ArrayPrototype::method_push(CallContext *ctx) { Scope scope(ctx); - ScopedObject instance(scope, ctx->d()->callData->thisObject.toObject(ctx)); + ScopedObject instance(scope, ctx->d()->callData->thisObject.toObject(scope.engine)); if (!instance) return Encode::undefined(); @@ -278,7 +278,7 @@ ReturnedValue ArrayPrototype::method_push(CallContext *ctx) double l = len; ScopedString s(scope); for (int i = 0; i < ctx->d()->callData->argc; ++i) { - s = Primitive::fromDouble(l + i).toString(ctx); + s = Primitive::fromDouble(l + i).toString(scope.engine); instance->put(s.getPointer(), ctx->d()->callData->args[i]); } double newLen = l + ctx->d()->callData->argc; @@ -312,7 +312,7 @@ ReturnedValue ArrayPrototype::method_push(CallContext *ctx) ReturnedValue ArrayPrototype::method_reverse(CallContext *ctx) { Scope scope(ctx); - ScopedObject instance(scope, ctx->d()->callData->thisObject.toObject(ctx)); + ScopedObject instance(scope, ctx->d()->callData->thisObject.toObject(scope.engine)); if (!instance) return Encode::undefined(); uint length = instance->getLength(); @@ -344,7 +344,7 @@ ReturnedValue ArrayPrototype::method_reverse(CallContext *ctx) ReturnedValue ArrayPrototype::method_shift(CallContext *ctx) { Scope scope(ctx); - ScopedObject instance(scope, ctx->d()->callData->thisObject.toObject(ctx)); + ScopedObject instance(scope, ctx->d()->callData->thisObject.toObject(scope.engine)); if (!instance) return Encode::undefined(); @@ -396,7 +396,7 @@ ReturnedValue ArrayPrototype::method_shift(CallContext *ctx) ReturnedValue ArrayPrototype::method_slice(CallContext *ctx) { Scope scope(ctx); - ScopedObject o(scope, ctx->d()->callData->thisObject.toObject(ctx)); + ScopedObject o(scope, ctx->d()->callData->thisObject.toObject(scope.engine)); if (!o) return Encode::undefined(); @@ -438,7 +438,7 @@ ReturnedValue ArrayPrototype::method_slice(CallContext *ctx) ReturnedValue ArrayPrototype::method_sort(CallContext *ctx) { Scope scope(ctx); - Scoped<Object> instance(scope, ctx->d()->callData->thisObject.toObject(ctx)); + Scoped<Object> instance(scope, ctx->d()->callData->thisObject.toObject(scope.engine)); if (!instance) return Encode::undefined(); @@ -452,7 +452,7 @@ ReturnedValue ArrayPrototype::method_sort(CallContext *ctx) ReturnedValue ArrayPrototype::method_splice(CallContext *ctx) { Scope scope(ctx); - ScopedObject instance(scope, ctx->d()->callData->thisObject.toObject(ctx)); + ScopedObject instance(scope, ctx->d()->callData->thisObject.toObject(scope.engine)); if (!instance) return Encode::undefined(); uint len = instance->getLength(); @@ -532,7 +532,7 @@ ReturnedValue ArrayPrototype::method_splice(CallContext *ctx) ReturnedValue ArrayPrototype::method_unshift(CallContext *ctx) { Scope scope(ctx); - ScopedObject instance(scope, ctx->d()->callData->thisObject.toObject(ctx)); + ScopedObject instance(scope, ctx->d()->callData->thisObject.toObject(scope.engine)); if (!instance) return Encode::undefined(); @@ -571,7 +571,7 @@ ReturnedValue ArrayPrototype::method_indexOf(CallContext *ctx) { Scope scope(ctx); - ScopedObject instance(scope, ctx->d()->callData->thisObject.toObject(ctx)); + ScopedObject instance(scope, ctx->d()->callData->thisObject.toObject(scope.engine)); if (!instance) return Encode::undefined(); uint len = instance->getLength(); @@ -639,7 +639,7 @@ ReturnedValue ArrayPrototype::method_lastIndexOf(CallContext *ctx) { Scope scope(ctx); - ScopedObject instance(scope, ctx->d()->callData->thisObject.toObject(ctx)); + ScopedObject instance(scope, ctx->d()->callData->thisObject.toObject(scope.engine)); if (!instance) return Encode::undefined(); uint len = instance->getLength(); @@ -684,7 +684,7 @@ ReturnedValue ArrayPrototype::method_lastIndexOf(CallContext *ctx) ReturnedValue ArrayPrototype::method_every(CallContext *ctx) { Scope scope(ctx); - Scoped<Object> instance(scope, ctx->d()->callData->thisObject.toObject(ctx)); + Scoped<Object> instance(scope, ctx->d()->callData->thisObject.toObject(scope.engine)); if (!instance) return Encode::undefined(); @@ -718,7 +718,7 @@ ReturnedValue ArrayPrototype::method_every(CallContext *ctx) ReturnedValue ArrayPrototype::method_some(CallContext *ctx) { Scope scope(ctx); - Scoped<Object> instance(scope, ctx->d()->callData->thisObject.toObject(ctx)); + Scoped<Object> instance(scope, ctx->d()->callData->thisObject.toObject(scope.engine)); if (!instance) return Encode::undefined(); @@ -752,7 +752,7 @@ ReturnedValue ArrayPrototype::method_some(CallContext *ctx) ReturnedValue ArrayPrototype::method_forEach(CallContext *ctx) { Scope scope(ctx); - Scoped<Object> instance(scope, ctx->d()->callData->thisObject.toObject(ctx)); + Scoped<Object> instance(scope, ctx->d()->callData->thisObject.toObject(scope.engine)); if (!instance) return Encode::undefined(); @@ -783,7 +783,7 @@ ReturnedValue ArrayPrototype::method_forEach(CallContext *ctx) ReturnedValue ArrayPrototype::method_map(CallContext *ctx) { Scope scope(ctx); - Scoped<Object> instance(scope, ctx->d()->callData->thisObject.toObject(ctx)); + Scoped<Object> instance(scope, ctx->d()->callData->thisObject.toObject(scope.engine)); if (!instance) return Encode::undefined(); @@ -820,7 +820,7 @@ ReturnedValue ArrayPrototype::method_map(CallContext *ctx) ReturnedValue ArrayPrototype::method_filter(CallContext *ctx) { Scope scope(ctx); - Scoped<Object> instance(scope, ctx->d()->callData->thisObject.toObject(ctx)); + Scoped<Object> instance(scope, ctx->d()->callData->thisObject.toObject(scope.engine)); if (!instance) return Encode::undefined(); @@ -861,7 +861,7 @@ ReturnedValue ArrayPrototype::method_filter(CallContext *ctx) ReturnedValue ArrayPrototype::method_reduce(CallContext *ctx) { Scope scope(ctx); - Scoped<Object> instance(scope, ctx->d()->callData->thisObject.toObject(ctx)); + Scoped<Object> instance(scope, ctx->d()->callData->thisObject.toObject(scope.engine)); if (!instance) return Encode::undefined(); @@ -911,7 +911,7 @@ ReturnedValue ArrayPrototype::method_reduce(CallContext *ctx) ReturnedValue ArrayPrototype::method_reduceRight(CallContext *ctx) { Scope scope(ctx); - Scoped<Object> instance(scope, ctx->d()->callData->thisObject.toObject(ctx)); + Scoped<Object> instance(scope, ctx->d()->callData->thisObject.toObject(scope.engine)); if (!instance) return Encode::undefined(); diff --git a/src/qml/jsruntime/qv4lookup.cpp b/src/qml/jsruntime/qv4lookup.cpp index f69d2c2c2f..b3c295ed87 100644 --- a/src/qml/jsruntime/qv4lookup.cpp +++ b/src/qml/jsruntime/qv4lookup.cpp @@ -148,7 +148,7 @@ ReturnedValue Lookup::indexedGetterFallback(Lookup *l, const ValueRef object, co return o->getIndexed(idx); } - ScopedString name(scope, index->toString(ctx)); + ScopedString name(scope, index->toString(scope.engine)); if (scope.hasException()) return Encode::undefined(); return o->get(name.getPointer()); @@ -190,7 +190,7 @@ void Lookup::indexedSetterFallback(Lookup *l, const ValueRef object, const Value { ExecutionContext *ctx = l->engine->currentContext(); Scope scope(ctx); - ScopedObject o(scope, object->toObject(ctx)); + ScopedObject o(scope, object->toObject(scope.engine)); if (scope.engine->hasException) return; @@ -207,7 +207,7 @@ void Lookup::indexedSetterFallback(Lookup *l, const ValueRef object, const Value return; } - ScopedString name(scope, index->toString(ctx)); + ScopedString name(scope, index->toString(scope.engine)); o->put(name.getPointer(), value); } @@ -320,7 +320,7 @@ ReturnedValue Lookup::getterTwoClasses(Lookup *l, const ValueRef object) ReturnedValue Lookup::getterFallback(Lookup *l, const ValueRef object) { QV4::Scope scope(l->name->engine()); - QV4::ScopedObject o(scope, object->toObject(scope.engine->currentContext())); + QV4::ScopedObject o(scope, object->toObject(scope.engine)); if (!o) return Encode::undefined(); QV4::ScopedString s(scope, l->name); @@ -733,7 +733,7 @@ void Lookup::setterTwoClasses(Lookup *l, const ValueRef object, const ValueRef v void Lookup::setterFallback(Lookup *l, const ValueRef object, const ValueRef value) { QV4::Scope scope(l->name->engine()); - QV4::ScopedObject o(scope, object->toObject(scope.engine->currentContext())); + QV4::ScopedObject o(scope, object->toObject(scope.engine)); if (o) { QV4::ScopedString s(scope, l->name); o->put(s.getPointer(), value); diff --git a/src/qml/jsruntime/qv4numberobject.cpp b/src/qml/jsruntime/qv4numberobject.cpp index 99028e7c7d..404ad8f61e 100644 --- a/src/qml/jsruntime/qv4numberobject.cpp +++ b/src/qml/jsruntime/qv4numberobject.cpp @@ -117,8 +117,9 @@ inline double thisNumber(ExecutionContext *ctx) ReturnedValue NumberPrototype::method_toString(CallContext *ctx) { + Scope scope(ctx); double num = thisNumber(ctx); - if (ctx->d()->engine->hasException) + if (scope.engine->hasException) return Encode::undefined(); if (ctx->d()->callData->argc && !ctx->d()->callData->args[0].isUndefined()) { @@ -128,9 +129,9 @@ ReturnedValue NumberPrototype::method_toString(CallContext *ctx) .arg(radix)); if (std::isnan(num)) { - return ctx->d()->engine->newString(QStringLiteral("NaN"))->asReturnedValue(); + return scope.engine->newString(QStringLiteral("NaN"))->asReturnedValue(); } else if (qIsInf(num)) { - return ctx->d()->engine->newString(QLatin1String(num < 0 ? "-Infinity" : "Infinity"))->asReturnedValue(); + return scope.engine->newString(QLatin1String(num < 0 ? "-Infinity" : "Infinity"))->asReturnedValue(); } if (radix != 10) { @@ -160,19 +161,19 @@ ReturnedValue NumberPrototype::method_toString(CallContext *ctx) } if (negative) str.prepend(QLatin1Char('-')); - return ctx->d()->engine->newString(str)->asReturnedValue(); + return scope.engine->newString(str)->asReturnedValue(); } } - return Primitive::fromDouble(num).toString(ctx)->asReturnedValue(); + return Primitive::fromDouble(num).toString(scope.engine)->asReturnedValue(); } ReturnedValue NumberPrototype::method_toLocaleString(CallContext *ctx) { Scope scope(ctx); ScopedValue v(scope, thisNumberValue(ctx)); - ScopedString str(scope, v->toString(ctx)); - if (ctx->d()->engine->hasException) + ScopedString str(scope, v->toString(scope.engine)); + if (scope.engine->hasException) return Encode::undefined(); return str.asReturnedValue(); } @@ -184,8 +185,9 @@ ReturnedValue NumberPrototype::method_valueOf(CallContext *ctx) ReturnedValue NumberPrototype::method_toFixed(CallContext *ctx) { + Scope scope(ctx); double v = thisNumber(ctx); - if (ctx->d()->engine->hasException) + if (scope.engine->hasException) return Encode::undefined(); double fdigits = 0; @@ -208,14 +210,14 @@ ReturnedValue NumberPrototype::method_toFixed(CallContext *ctx) str = QString::number(v, 'f', int (fdigits)); else return RuntimeHelpers::stringFromNumber(ctx->engine(), v)->asReturnedValue(); - return ctx->d()->engine->newString(str)->asReturnedValue(); + return scope.engine->newString(str)->asReturnedValue(); } ReturnedValue NumberPrototype::method_toExponential(CallContext *ctx) { Scope scope(ctx); double d = thisNumber(ctx); - if (ctx->d()->engine->hasException) + if (scope.engine->hasException) return Encode::undefined(); int fdigits = -1; @@ -223,7 +225,7 @@ ReturnedValue NumberPrototype::method_toExponential(CallContext *ctx) if (ctx->d()->callData->argc && !ctx->d()->callData->args[0].isUndefined()) { fdigits = ctx->d()->callData->args[0].toInt32(); if (fdigits < 0 || fdigits > 20) { - ScopedString error(scope, ctx->d()->engine->newString(QStringLiteral("Number.prototype.toExponential: fractionDigits out of range"))); + ScopedString error(scope, scope.engine->newString(QStringLiteral("Number.prototype.toExponential: fractionDigits out of range"))); return ctx->engine()->throwRangeError(error); } } @@ -233,14 +235,14 @@ ReturnedValue NumberPrototype::method_toExponential(CallContext *ctx) double_conversion::DoubleToStringConverter::EcmaScriptConverter().ToExponential(d, fdigits, &builder); QString result = QString::fromLatin1(builder.Finalize()); - return ctx->d()->engine->newString(result)->asReturnedValue(); + return scope.engine->newString(result)->asReturnedValue(); } ReturnedValue NumberPrototype::method_toPrecision(CallContext *ctx) { Scope scope(ctx); ScopedValue v(scope, thisNumberValue(ctx)); - if (ctx->d()->engine->hasException) + if (scope.engine->hasException) return Encode::undefined(); if (!ctx->d()->callData->argc || ctx->d()->callData->args[0].isUndefined()) @@ -248,7 +250,7 @@ ReturnedValue NumberPrototype::method_toPrecision(CallContext *ctx) double precision = ctx->d()->callData->args[0].toInt32(); if (precision < 1 || precision > 21) { - ScopedString error(scope, ctx->d()->engine->newString(QStringLiteral("Number.prototype.toPrecision: precision out of range"))); + ScopedString error(scope, scope.engine->newString(QStringLiteral("Number.prototype.toPrecision: precision out of range"))); return ctx->engine()->throwRangeError(error); } @@ -257,5 +259,5 @@ ReturnedValue NumberPrototype::method_toPrecision(CallContext *ctx) double_conversion::DoubleToStringConverter::EcmaScriptConverter().ToPrecision(v->asDouble(), precision, &builder); QString result = QString::fromLatin1(builder.Finalize()); - return ctx->d()->engine->newString(result)->asReturnedValue(); + return scope.engine->newString(result)->asReturnedValue(); } diff --git a/src/qml/jsruntime/qv4objectproto.cpp b/src/qml/jsruntime/qv4objectproto.cpp index 4615a48a6a..ba3ef9bf4f 100644 --- a/src/qml/jsruntime/qv4objectproto.cpp +++ b/src/qml/jsruntime/qv4objectproto.cpp @@ -135,7 +135,7 @@ ReturnedValue ObjectPrototype::method_getOwnPropertyDescriptor(CallContext *ctx) Scoped<ArgumentsObject>(scope, O)->fullyCreate(); ScopedValue v(scope, ctx->argument(1)); - Scoped<String> name(scope, v->toString(ctx)); + Scoped<String> name(scope, v->toString(scope.engine)); if (scope.hasException()) return Encode::undefined(); PropertyAttributes attrs; @@ -402,7 +402,7 @@ ReturnedValue ObjectPrototype::method_toString(CallContext *ctx) ReturnedValue ObjectPrototype::method_toLocaleString(CallContext *ctx) { Scope scope(ctx); - ScopedObject o(scope, ctx->d()->callData->thisObject.toObject(ctx)); + ScopedObject o(scope, ctx->d()->callData->thisObject.toObject(scope.engine)); if (!o) return Encode::undefined(); Scoped<FunctionObject> f(scope, o->get(ctx->d()->engine->id_toString)); @@ -416,7 +416,7 @@ ReturnedValue ObjectPrototype::method_toLocaleString(CallContext *ctx) ReturnedValue ObjectPrototype::method_valueOf(CallContext *ctx) { Scope scope(ctx); - ScopedValue v(scope, ctx->d()->callData->thisObject.toObject(ctx)); + ScopedValue v(scope, ctx->d()->callData->thisObject.toObject(scope.engine)); if (ctx->d()->engine->hasException) return Encode::undefined(); return v.asReturnedValue(); diff --git a/src/qml/jsruntime/qv4sequenceobject_p.h b/src/qml/jsruntime/qv4sequenceobject_p.h index c0848ec0ba..8d08a90869 100644 --- a/src/qml/jsruntime/qv4sequenceobject_p.h +++ b/src/qml/jsruntime/qv4sequenceobject_p.h @@ -62,7 +62,7 @@ struct SequencePrototype : public QV4::Object static ReturnedValue method_valueOf(QV4::CallContext *ctx) { - return ctx->d()->callData->thisObject.toString(ctx)->asReturnedValue(); + return ctx->d()->callData->thisObject.toString(ctx->engine())->asReturnedValue(); } static ReturnedValue method_sort(QV4::CallContext *ctx); diff --git a/src/qml/jsruntime/qv4stringobject.cpp b/src/qml/jsruntime/qv4stringobject.cpp index b9fb8812ea..64e373babb 100644 --- a/src/qml/jsruntime/qv4stringobject.cpp +++ b/src/qml/jsruntime/qv4stringobject.cpp @@ -171,7 +171,7 @@ ReturnedValue StringCtor::construct(Managed *m, CallData *callData) Scope scope(v4); ScopedValue value(scope); if (callData->argc) - value = callData->args[0].toString(v4->currentContext()); + value = callData->args[0].toString(v4); else value = v4->newString(QString()); return Encode(v4->newStringObject(value)); @@ -183,7 +183,7 @@ ReturnedValue StringCtor::call(Managed *m, CallData *callData) Scope scope(v4); ScopedValue value(scope); if (callData->argc) - value = callData->args[0].toString(v4->currentContext()); + value = callData->args[0].toString(v4); else value = v4->newString(QString()); return value.asReturnedValue(); @@ -368,7 +368,7 @@ ReturnedValue StringPrototype::method_match(CallContext *context) return context->engine()->throwTypeError(); Scope scope(context); - ScopedString s(scope, context->d()->callData->thisObject.toString(context)); + ScopedString s(scope, context->d()->callData->thisObject.toString(scope.engine)); ScopedValue regexp(scope, context->d()->callData->argument(0)); Scoped<RegExpObject> rx(scope, regexp); diff --git a/src/qml/jsruntime/qv4typedarray.cpp b/src/qml/jsruntime/qv4typedarray.cpp index 0259e98ee3..3149e0485a 100644 --- a/src/qml/jsruntime/qv4typedarray.cpp +++ b/src/qml/jsruntime/qv4typedarray.cpp @@ -463,7 +463,7 @@ ReturnedValue TypedArrayPrototype::method_set(CallContext *ctx) Scoped<TypedArray> srcTypedArray(scope, ctx->d()->callData->args[0]); if (!srcTypedArray) { // src is a regular object - ScopedObject o(scope, ctx->d()->callData->args[0].toObject(ctx)); + ScopedObject o(scope, ctx->d()->callData->args[0].toObject(scope.engine)); if (scope.engine->hasException || !o) return scope.engine->throwTypeError(); diff --git a/src/qml/jsruntime/qv4value.cpp b/src/qml/jsruntime/qv4value.cpp index 0600a82525..3d40f4b7f5 100644 --- a/src/qml/jsruntime/qv4value.cpp +++ b/src/qml/jsruntime/qv4value.cpp @@ -274,11 +274,6 @@ Heap::String *Value::toString(ExecutionEngine *e) const return RuntimeHelpers::convertToString(e, ValueRef::fromRawValue(this)); } -Heap::String *Value::toString(ExecutionContext *ctx) const -{ - return toString(ctx->engine()); -} - Heap::Object *Value::toObject(ExecutionEngine *e) const { if (isObject()) @@ -286,9 +281,4 @@ Heap::Object *Value::toObject(ExecutionEngine *e) const return RuntimeHelpers::convertToObject(e, ValueRef::fromRawValue(this)); } -Heap::Object *Value::toObject(ExecutionContext *ctx) const -{ - return toObject(ctx->engine()); -} - #endif // V4_BOOTSTRAP diff --git a/src/qml/jsruntime/qv4value_p.h b/src/qml/jsruntime/qv4value_p.h index 71b712b3fd..c713f6a147 100644 --- a/src/qml/jsruntime/qv4value_p.h +++ b/src/qml/jsruntime/qv4value_p.h @@ -330,9 +330,7 @@ struct Q_QML_PRIVATE_EXPORT Value QString toQStringNoThrow() const; QString toQString() const; Heap::String *toString(ExecutionEngine *e) const; - Heap::String *toString(ExecutionContext *ctx) const; Heap::Object *toObject(ExecutionEngine *e) const; - Heap::Object *toObject(ExecutionContext *ctx) const; inline bool isPrimitive() const; inline bool tryIntegerConversion() { |