/*! \since 4.4 Sets the internal \a data of this QScriptValue object. You can use this function to set object-specific data that won't be directly accessible to scripts, but may be retrieved in C++ using the data() function. */ void QScriptValue::setData(const QScriptValue &data) { if (!isObject()) return; QScriptValueImpl self = QScriptValuePrivate::valueOf(*this); QScriptValueImpl data_p = QScriptValuePrivate::valueOf(data); self.setInternalValue(data_p); }
/*! \internal \since 4.5 Adds the given \a object to the front of this context's scope chain. If \a object is not an object, this function does nothing. */ void QScriptContext::pushScope(const QScriptValue &object) { Q_D(QScriptContext); if (!object.isObject()) { return; } else if (object.engine() != engine()) { qWarning("QScriptContext::pushScope() failed: " "cannot push an object created in " "a different engine"); return; } QScriptEnginePrivate *eng_p = QScriptEnginePrivate::get(engine()); if (!d->m_scopeChain.isValid()) { d->m_scopeChain = eng_p->toImpl(object); } else { QScriptValueImpl withObject; eng_p->newObject(&withObject, eng_p->toImpl(object), eng_p->m_class_with); withObject.m_object_value->m_scope = d->m_scopeChain; withObject.setInternalValue(1); // to differentiate from with-statement objects d->m_scopeChain = withObject; } }