QScriptValue ByteArrayClass::construct(QScriptContext *ctx, QScriptEngine *) { ByteArrayClass *cls = qscriptvalue_cast<ByteArrayClass*>(ctx->callee().data()); if (!cls) return QScriptValue(); QScriptValue arg = ctx->argument(0); if (arg.instanceOf(ctx->callee())) return cls->newInstance(qscriptvalue_cast<QByteArray>(arg)); int size = arg.toInt32(); return cls->newInstance(size); }
QScriptValue ByteArrayClass::toScriptValue(QScriptEngine *eng, const QByteArray &ba) { QScriptValue ctor = eng->globalObject().property("ByteArray"); ByteArrayClass *cls = qscriptvalue_cast<ByteArrayClass*>(ctor.data()); if (!cls) return eng->newVariant(QVariant::fromValue(ba)); return cls->newInstance(ba); }
QScriptValue FilePrototype::newByteArray(const QByteArray &bytes) { ByteArrayClass *cls = getByteArrayClass(engine()); return cls ? cls->newInstance(bytes) : engine()->newVariant(QVariant::fromValue(bytes)); }