ArgumentsIteratorPrototype.cpp [plain text]
#include "config.h"
#include "ArgumentsIteratorPrototype.h"
#include "JSArgumentsIterator.h"
#include "JSCInlines.h"
namespace JSC {
const ClassInfo ArgumentsIteratorPrototype::s_info = { "ArgumentsIterator", &Base::s_info, 0, 0, CREATE_METHOD_TABLE(ArgumentsIteratorPrototype) };
static EncodedJSValue JSC_HOST_CALL argumentsIteratorPrototypeFuncIterator(ExecState*);
static EncodedJSValue JSC_HOST_CALL argumentsIteratorPrototypeFuncNext(ExecState*);
void ArgumentsIteratorPrototype::finishCreation(VM& vm, JSGlobalObject* globalObject)
{
Base::finishCreation(vm);
ASSERT(inherits(info()));
vm.prototypeMap.addPrototype(this);
JSC_NATIVE_FUNCTION(vm.propertyNames->iteratorPrivateName, argumentsIteratorPrototypeFuncIterator, DontEnum, 0);
JSC_NATIVE_FUNCTION(vm.propertyNames->iteratorNextPrivateName, argumentsIteratorPrototypeFuncNext, DontEnum, 0);
}
EncodedJSValue JSC_HOST_CALL argumentsIteratorPrototypeFuncIterator(CallFrame* callFrame)
{
return JSValue::encode(callFrame->thisValue());
}
EncodedJSValue JSC_HOST_CALL argumentsIteratorPrototypeFuncNext(CallFrame* callFrame)
{
JSValue result;
if (jsCast<JSArgumentsIterator*>(callFrame->thisValue())->next(callFrame, result))
return JSValue::encode(result);
return JSValue::encode(callFrame->vm().iterationTerminator.get());
}
}