示例#1
0
String Node::tryGetString(Graph& graph)
{
    if (hasConstant())
        return constant()->tryGetString(graph);
    if (hasLazyJSValue())
        return lazyJSValue().tryGetString(graph);
    return String();
}
示例#2
0
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;
}
示例#3
0
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;
}
示例#4
0
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;
}
示例#5
0
bool Engine::hasValue(QString n) const
{
	return hasVariable(n) || hasConstant(n);
}
示例#6
0
QVariant Engine::getValue(QString n) const
{
	if(hasConstant(n))return getConstant(n);
	if(hasVariable(n))return getVariable(n);
	return QVariant();
}