Source Code (Use browser search to find items of interest.)
Class Index
kdelibs'TypeOfNode (./kdelibs/kjs/nodes.h:279)
class TypeOfNode : public Node {
public:
TypeOfNode(Node *e) : expr(e) {}
KJSO *evaluate();
private:
Node *expr;
};
kdelibs'TypeOfNode::evaluate() (./kdelibs/kjs/nodes.cpp:438)
KJSO *TypeOfNode::evaluate()
{
const char *s = 0L;
Ptr e = expr->evaluate();
if (e->isA(ReferenceType)) {
Ptr b = e->getBase();
if (b->isA(NullType))
return KJSO::newUndefined();
}
Ptr v = e->getValue();
switch (v->type())
{
case UndefinedType:
s = "undefined";
break;
case NullType:
s = "object";
break;
case BooleanType:
s = "boolean";
break;
case NumberType:
s = "number";
break;
case StringType:
s = "string";
break;
default:
if (v->implementsCall())
s = "function";
else
s = "object";
break;
}
return KJSO::newString(s);
}
// ECMA 11.4.4 and 11.4.5