Chromium Code Reviews| Index: gin/arguments.cc |
| diff --git a/gin/arguments.cc b/gin/arguments.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..15802b8eaa0fa202b42aa573983b0a5bc1bc1444 |
| --- /dev/null |
| +++ b/gin/arguments.cc |
| @@ -0,0 +1,36 @@ |
| +// Copyright 2013 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "gin/arguments.h" |
| + |
| +#include <sstream> |
| +#include "gin/converter.h" |
| + |
| +namespace gin { |
| + |
| +Arguments::Arguments(const v8::FunctionCallbackInfo<v8::Value>& info) |
| + : isolate_(info.GetIsolate()), |
| + info_(info), |
| + next_(0), |
| + insufficient_arguments_(false) { |
| +} |
| + |
| +Arguments::~Arguments() { |
| +} |
| + |
| +void Arguments::ThrowError() { |
| + if (insufficient_arguments_) |
| + return ThrowTypeError("Insufficient number of arguments."); |
| + |
| + std::stringstream stream; |
| + stream << "Error processing argument " << next_ - 1 << "."; |
|
Aaron Boodman
2013/11/11 21:37:32
This will do the wrong thing when the client calls
Aaron Boodman
2013/11/11 21:38:59
Nevermind. LGTM.
|
| + ThrowTypeError(stream.str()); |
| +} |
| + |
| +void Arguments::ThrowTypeError(const std::string& message) { |
| + isolate_->ThrowException(v8::Exception::TypeError( |
| + StringToV8(isolate_, message))); |
| +} |
| + |
| +} // namespace gin |