JsVar *jsvIteratorGetValue(JsvIterator *it) { switch (it->type) { case JSVI_OBJECT : return jsvObjectIteratorGetValue(&it->it.obj); case JSVI_STRING : { char buf[2] = {jsvStringIteratorGetChar(&it->it.str),0}; return jsvNewFromString(buf); } case JSVI_ARRAYBUFFER : return jsvArrayBufferIteratorGetValueAndRewind(&it->it.buf); default: assert(0); return 0; } }
JsVar *jsvIteratorGetValue(JsvIterator *it) { switch (it->type) { case JSVI_FULLARRAY: if (jsvIsIntegerish(it->it.obj.it.var) && jsvGetInteger(it->it.obj.it.var) == it->it.obj.index) return jsvObjectIteratorGetValue(&it->it.obj.it); return 0; case JSVI_OBJECT : return jsvObjectIteratorGetValue(&it->it.obj.it); case JSVI_STRING : { char buf[2] = {jsvStringIteratorGetChar(&it->it.str),0}; return jsvNewFromString(buf); } case JSVI_ARRAYBUFFER : return jsvArrayBufferIteratorGetValueAndRewind(&it->it.buf); default: assert(0); return 0; } }