summaryrefslogtreecommitdiffstats
path: root/gin/arguments.h
diff options
context:
space:
mode:
Diffstat (limited to 'gin/arguments.h')
-rw-r--r--gin/arguments.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/gin/arguments.h b/gin/arguments.h
index 1882640..1d59d34 100644
--- a/gin/arguments.h
+++ b/gin/arguments.h
@@ -31,6 +31,22 @@ class Arguments {
}
template<typename T>
+ bool GetRemaining(std::vector<T>* out) {
+ if (next_ >= info_.Length()) {
+ insufficient_arguments_ = true;
+ return false;
+ }
+ int remaining = info_.Length() - next_;
+ out->resize(remaining);
+ for (int i = 0; i < remaining; ++i) {
+ v8::Handle<v8::Value> val = info_[next_++];
+ if (!ConvertFromV8(val, &out->at(i)))
+ return false;
+ }
+ return true;
+ }
+
+ template<typename T>
void Return(T val) {
info_.GetReturnValue().Set(ConvertToV8(isolate_, val));
}