@Override
	public XValue invoke(XRuntime runtime, XExec exec, int id, XValue thiz, XValue[] params, List<XValue> list, Map<String, XValue> map){
		XObjectDataMap m = (XObjectDataMap)runtime.getObject(thiz).getData();
		switch(id){
		case 0:
			return getIndex(runtime, m, params[0]);
		case 1:
			return length(m);
		case 2:
			return setIndex(runtime, m, params[0], params[1]);
		case 3:
			return delIndex(runtime, m, params[0]);
		case 4:
			return getItem(runtime, m, thiz, params[0]);
		case 5:
			return getKeys(runtime, m);
		}
		return super.invoke(runtime, exec, id, thiz, params, list, map);
	}