示例#1
0
JSValue iteratorStep(ExecState* exec, JSValue iterator)
{
    JSValue result = iteratorNext(exec, iterator);
    if (exec->hadException())
        return jsUndefined();
    bool done = iteratorComplete(exec, result);
    if (exec->hadException())
        return jsUndefined();
    if (done)
        return jsBoolean(false);
    return result;
}
JSValue iteratorStep(ExecState* exec, IterationRecord iterationRecord)
{
    VM& vm = exec->vm();
    auto scope = DECLARE_THROW_SCOPE(vm);

    JSValue result = iteratorNext(exec, iterationRecord);
    RETURN_IF_EXCEPTION(scope, JSValue());
    bool done = iteratorComplete(exec, result);
    RETURN_IF_EXCEPTION(scope, JSValue());
    if (done)
        return jsBoolean(false);
    return result;
}