void ArgumentsEditor::accept() { QStringList argNames = m_call->argNames(); QVector<QVariant> originalValues = m_call->arguments(); QVector<QVariant> newValues; bool changed = false; for (int i = 0; i < argNames.count(); ++i) { bool valChanged = false; QString argName = argNames[i]; QVariant argValue = originalValues[i]; QVariant editorValue = valueForName(argName, argValue, &valChanged); newValues.append(editorValue); #if 0 qDebug()<<"Arg = "<<argName; qDebug()<<"\toriginal = "<<argValue; qDebug()<<"\teditor = "<<editorValue; qDebug()<<"\tchanged = "<<valChanged; #endif if (valChanged) changed = true; } if (changed) m_call->setEditedValues(newValues); QDialog::accept(); }
bool ScriptCustomElementDefinitionBuilder::checkPrototype() { v8::Local<v8::Value> prototypeValue; if (!valueForName(m_constructor, "prototype", prototypeValue)) return false; if (!prototypeValue->IsObject()) { m_exceptionState.throwTypeError("constructor prototype is not an object"); return false; } m_prototype = prototypeValue.As<v8::Object>(); // If retrieving the prototype destroyed the context, indicate that // defining the element should not proceed. return true; }
bool ScriptCustomElementDefinitionBuilder::callableForName(const String& name, v8::Local<v8::Function>& callback) const { v8::Local<v8::Value> value; if (!valueForName(m_prototype, name, value)) return false; // "undefined" means "omitted", so return true. if (value->IsUndefined()) return true; if (!value->IsFunction()) { m_exceptionState.throwTypeError( String::format("\"%s\" is not a callable object", name.ascii().data())); return false; } callback = value.As<v8::Function>(); return true; }
bool ScriptCustomElementDefinitionBuilder::retrieveObservedAttributes() { v8::Local<v8::Value> observedAttributesValue; if (!valueForName(m_constructor, "observedAttributes", observedAttributesValue)) return false; if (observedAttributesValue->IsUndefined()) return true; Vector<AtomicString> list = toImplSequence<Vector<AtomicString>>( m_scriptState->isolate(), observedAttributesValue, m_exceptionState); if (m_exceptionState.hadException()) return false; if (list.isEmpty()) return true; m_observedAttributes.reserveCapacityForSize(list.size()); for (const auto& attribute : list) m_observedAttributes.add(attribute); return true; }