Ejemplo n.º 1
0
EncodedJSValue JSC_HOST_CALL MapIteratorPrototypeFuncNext(CallFrame* callFrame)
{
    JSMapIterator* iterator = jsDynamicCast<JSMapIterator*>(callFrame->thisValue());
    if (!iterator)
        return JSValue::encode(throwTypeError(callFrame, ASCIILiteral("Cannot call MapIterator.next() on a non-MapIterator object")));

    JSValue result;
    if (iterator->next(callFrame, result))
        return JSValue::encode(createIteratorResultObject(callFrame, result, false));
    iterator->finish();
    return JSValue::encode(createIteratorResultObject(callFrame, jsUndefined(), true));
}
Ejemplo n.º 2
0
EncodedJSValue JSC_HOST_CALL propertyNameIteratorFuncNext(ExecState* exec)
{
    VM& vm = exec->vm();
    auto scope = DECLARE_THROW_SCOPE(vm);

    JSPropertyNameIterator* iterator = jsDynamicCast<JSPropertyNameIterator*>(exec->thisValue());
    if (!iterator)
        return JSValue::encode(throwTypeError(exec, scope, ASCIILiteral("Cannot call PropertyNameIterator.next() on a non-PropertyNameIterator object")));

    JSValue result;
    if (iterator->next(exec, result))
        return JSValue::encode(createIteratorResultObject(exec, result, false));
    return JSValue::encode(createIteratorResultObject(exec, jsUndefined(), true));
}