blob: 15802b8eaa0fa202b42aa573983b0a5bc1bc1444 [file] [log] [blame]
[email protected]e87f3122013-11-12 00:41:271// 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.
4
5#include "gin/arguments.h"
6
7#include <sstream>
8#include "gin/converter.h"
9
10namespace gin {
11
12Arguments::Arguments(const v8::FunctionCallbackInfo<v8::Value>& info)
13 : isolate_(info.GetIsolate()),
14 info_(info),
15 next_(0),
16 insufficient_arguments_(false) {
17}
18
19Arguments::~Arguments() {
20}
21
22void Arguments::ThrowError() {
23 if (insufficient_arguments_)
24 return ThrowTypeError("Insufficient number of arguments.");
25
26 std::stringstream stream;
27 stream << "Error processing argument " << next_ - 1 << ".";
28 ThrowTypeError(stream.str());
29}
30
31void Arguments::ThrowTypeError(const std::string& message) {
32 isolate_->ThrowException(v8::Exception::TypeError(
33 StringToV8(isolate_, message)));
34}
35
36} // namespace gin