The Function class has provided the NewInstance which support variable
amount of arguments
class V8EXPORT Function : public Object {
public:
Local<Object> NewInstance() const;
Local<Object> NewInstance(int argc, Handle<Value> argv[]) const;
...
};
You could fill your actual arguments in a array, and pass the length
and pointer to the second one.
Here is some sample code in pyv8, <http://code.google.com/p/pyv8/
source/browse/trunk/src/Wrapper.cpp#1039>
std::vector< v8::Handle<v8::Value> > params(::PyList_Size(args.ptr
()));
for (size_t i=0; i<params.size(); i++)
{
params[i] = CPythonObject::Wrap(args[i]);
}
v8::Handle<v8::Value> result;
Py_BEGIN_ALLOW_THREADS
result = func->Call(
self.IsEmpty() ? v8::Context::GetCurrent()->Global() : self,
params.size(), params.empty() ? NULL : ¶ms[0]);
Py_END_ALLOW_THREADS
On 1月18日, 下午4时18分, ondras <[email protected]> wrote:
> Hi,
>
> I have some troubles implementing a js class/function which can fix
> itself when not called with "new". What is my aim:
>
> ...
> if (!args.IsConstructCall()) {
> return args.Callee()->NewInstance(args.Length(), ???);}
>
> ...
>
> However, I do not want this routine to be dependent on the actual
> number of arguments passed. Can you please provide some help on this
> topic?
>
> Thanks,
> Ondrej
--
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users