String Node::tryGetString(Graph& graph) { if (hasConstant()) return constant()->tryGetString(graph); if (hasLazyJSValue()) return lazyJSValue().tryGetString(graph); return String(); }
bool Engine::setVariable(QString n, QVariant v) { if(!d->cclass.isName(n))return false; if(hasConstant(n))return false; if(d->funcs.contains(n))return false; d->vars.insert(n,autoCast(v)); return true; }
bool Engine::setFunction(QString n, ELAM::Function p) { if(p==0)return false; if(!d->cclass.isName(n))return false; if(hasConstant(n))return false; if(hasVariable(n))return false; d->funcs.insert(n,p); return true; }
MinifiedNode MinifiedNode::fromNode(Node* node) { ASSERT(belongsInMinifiedGraph(node->op())); MinifiedNode result; result.m_id = MinifiedID(node); result.m_op = node->op(); if (hasConstant(node->op())) result.m_info = JSValue::encode(node->asJSValue()); else { ASSERT(node->op() == PhantomDirectArguments || node->op() == PhantomClonedArguments); result.m_info = bitwise_cast<uintptr_t>(node->origin.semantic.inlineCallFrame); } return result; }
bool Engine::hasValue(QString n) const { return hasVariable(n) || hasConstant(n); }
QVariant Engine::getValue(QString n) const { if(hasConstant(n))return getConstant(n); if(hasVariable(n))return getVariable(n); return QVariant(); }