1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef GIN_ARGUMENTS_H_
6 #define GIN_ARGUMENTS_H_
8 #include "base/basictypes.h"
9 #include "gin/converter.h"
15 explicit Arguments(const v8::FunctionCallbackInfo
<v8::Value
>& info
);
20 return ConvertFromV8(info_
.Holder(), out
);
24 bool GetNext(T
* out
) {
25 if (next_
>= info_
.Length()) {
26 insufficient_arguments_
= true;
29 v8::Handle
<v8::Value
> val
= info_
[next_
++];
30 return ConvertFromV8(val
, out
);
35 info_
.GetReturnValue().Set(ConvertToV8(isolate_
, val
));
39 void ThrowTypeError(const std::string
& message
);
41 v8::Isolate
* isolate() const { return isolate_
; }
44 v8::Isolate
* isolate_
;
45 const v8::FunctionCallbackInfo
<v8::Value
>& info_
;
47 bool insufficient_arguments_
;
49 DISALLOW_COPY_AND_ASSIGN(Arguments
);
54 #endif // GIN_ARGUMENTS_H_