@Override public Object[] getIds() { return data.getCompound().keySet().toArray(); }
@Override public boolean has(int index, Scriptable start) { return data.getArray().size() > index; }
@Override public boolean has(String name, Scriptable start) { return data.hasKey(name); }
@Override public Object get(int index, Scriptable start) { if (data.getArray().size() > index) return unwrap(data.item(index)); return NOT_FOUND; }
@Override public Object get(String name, Scriptable start) { if (data.hasKey(name)) return unwrap(data.at(name)); return NOT_FOUND; }
public Object unwrap(Data data) { if (data.getAtom().length() > 0) { return data.getAtom(); } return new ECMAData(data); }