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

Class Index

kdelibs'ArrayObject (./kdelibs/kjs/array_object.h:28)

  class ArrayObject : public Constructor {
  public:
    ArrayObject(Object *p) : Constructor(p, 1) { }
    KJSO* execute(const List &);
    Object* construct(const List &);
  };


kdelibs'ArrayObject::execute() (./kdelibs/kjs/array_object.cpp:27)

KJSO* ArrayObject::execute(const List &args)
{
  // equivalent to 'new Array(....)'
  Ptr result = construct(args);

  return newCompletion(Normal, result);
}

// ECMA 15.6.2

kdelibs'ArrayObject::construct() (./kdelibs/kjs/array_object.cpp:36)

Object* ArrayObject::construct(const List &args)
{
  Object *result = Object::create(ArrayClass);

  unsigned int len;
  ListIterator it = args.begin();
  // a single argument might denote the array size
  if (args.size() == 1 && it->isA(NumberType))
    len = toUInt32(it);
  else {
    // initialize array
    len = args.size();
    for (unsigned int u = 0; it != args.end(); it++, u++)
      result->put(UString::from(u), it);
  }

  // array size
  result->put("length", len, DontEnum | DontDelete);

  return result;
}

// ECMA 15.6.4