예제 #1
0
파일: hm-stubs.cpp 프로젝트: AdiKo/avmplus
Atom Stubs::do_abc_getpropnsx(MethodFrame* f, const Multiname* name, Atom ns,
                              Atom index, Atom object) {
  Multiname tempname;
  initnamensx(env(f), name, ns, index, &tempname);
  Toplevel* t = toplevel(f);
  return t->getproperty(object, &tempname, toVTable(t, object));
}
예제 #2
0
파일: ScriptObject.cpp 프로젝트: bsdf/trx
 uint32_t ScriptObject::getLengthProperty()
 {
     Toplevel* toplevel = this->toplevel();
     AvmCore* core = toplevel->core();
     Multiname mname(core->getAnyPublicNamespace(), core->klength);
     Atom lenAtm = toplevel->getproperty(this->atom(), &mname, this->vtable);
     return AvmCore::toUInt32(lenAtm);
 }
예제 #3
0
파일: hm-stubs.cpp 프로젝트: AdiKo/avmplus
Atom Stubs::do_abc_getpropx(MethodFrame* f, const Multiname* name, Atom index,
                            Atom object) {
  assert(!AvmCore::isNullOrUndefined(object));
  if (!AvmCore::isDictionaryLookup(index, object)) {
    Multiname tempname;
    initnamex(core(f), name, index, &tempname);
    Toplevel* t = toplevel(f);
    return t->getproperty(object, &tempname, toVTable(t, object));
  } else {
    // = dictionary[index]
    return AvmCore::atomToScriptObject(object)->getAtomProperty(index);
  }
}