Source Code (Use browser search to find items of interest.)

Class Index

kdelibs'BitOperNode (./kdelibs/kjs/nodes.h:376)

  class BitOperNode : public Node {
  public:
    BitOperNode(Node *e1, Operator o, Node *e2) :
      expr1(e1), expr2(e2), oper(o) {}
    KJSO *evaluate();
  private:
    Node *expr1, *expr2;
    Operator oper;
  };


kdelibs'BitOperNode::evaluate() (./kdelibs/kjs/nodes.cpp:329)

KJSO *BitOperNode::evaluate()
{
  Ptr e1 = expr1->evaluate();
  Ptr v1 = e1->getValue();
  Ptr e2 = expr2->evaluate();
  Ptr v2 = e2->getValue();
  int i1 = toInt32(v1);
  int i2 = toInt32(v2);
  int result;
  if (oper == OpBitAnd)
    result = i1 & i2;
  else if (oper == OpBitXOr)
    result = i1 ^ i2;
  else
    result = i1 | i2;

  return KJSO::newNumber(result);
}

// ECMA 11.11