summaryrefslogtreecommitdiffstats
path: root/gin
diff options
context:
space:
mode:
authoraa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-12-13 23:55:25 +0000
committeraa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-12-13 23:55:25 +0000
commit481d2498a8c07fd290ae0e9d6b25dcaf6198c05f (patch)
tree06ea7653f8bb06fb1c56b696712b4e6834beca90 /gin
parente1b0a04002b316835b3d2ee4b10eaef1425d450a (diff)
downloadchromium_src-481d2498a8c07fd290ae0e9d6b25dcaf6198c05f.zip
chromium_src-481d2498a8c07fd290ae0e9d6b25dcaf6198c05f.tar.gz
chromium_src-481d2498a8c07fd290ae0e9d6b25dcaf6198c05f.tar.bz2
Beginning of JS Mojo API to GL.
R=abarth@chromium.org Review URL: https://codereview.chromium.org/111083005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@240807 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'gin')
-rw-r--r--gin/arguments.cc6
-rw-r--r--gin/arguments.h6
-rw-r--r--gin/handle.h9
3 files changed, 12 insertions, 9 deletions
diff --git a/gin/arguments.cc b/gin/arguments.cc
index ee57897..c43ff28 100644
--- a/gin/arguments.cc
+++ b/gin/arguments.cc
@@ -26,13 +26,13 @@ Arguments::Arguments(const v8::FunctionCallbackInfo<v8::Value>& info)
Arguments::~Arguments() {
}
-v8::Handle<v8::Value> Arguments::PeekNext() {
+v8::Handle<v8::Value> Arguments::PeekNext() const {
if (next_ >= info_->Length())
return v8::Handle<v8::Value>();
return (*info_)[next_];
}
-void Arguments::ThrowError() {
+void Arguments::ThrowError() const {
if (insufficient_arguments_)
return ThrowTypeError("Insufficient number of arguments.");
@@ -40,7 +40,7 @@ void Arguments::ThrowError() {
"Error processing argument %d.", next_ - 1));
}
-void Arguments::ThrowTypeError(const std::string& message) {
+void Arguments::ThrowTypeError(const std::string& message) const {
isolate_->ThrowException(v8::Exception::TypeError(
StringToV8(isolate_, message)));
}
diff --git a/gin/arguments.h b/gin/arguments.h
index 104152a..ec4ae80 100644
--- a/gin/arguments.h
+++ b/gin/arguments.h
@@ -61,10 +61,10 @@ class GIN_EXPORT Arguments {
info_->GetReturnValue().Set(ConvertToV8(isolate_, val));
}
- v8::Handle<v8::Value> PeekNext();
+ v8::Handle<v8::Value> PeekNext() const;
- void ThrowError();
- void ThrowTypeError(const std::string& message);
+ void ThrowError() const;
+ void ThrowTypeError(const std::string& message) const;
v8::Isolate* isolate() const { return isolate_; }
diff --git a/gin/handle.h b/gin/handle.h
index 7178bb37..da1de34 100644
--- a/gin/handle.h
+++ b/gin/handle.h
@@ -31,7 +31,7 @@ class Handle {
}
T* operator->() const { return object_; }
- v8::Handle<v8::Value> ToV8() { return wrapper_; }
+ v8::Handle<v8::Value> ToV8() const { return wrapper_; }
T* get() const { return object_; }
private:
@@ -48,8 +48,11 @@ struct Converter<gin::Handle<T> > {
static bool FromV8(v8::Isolate* isolate, v8::Handle<v8::Value> val,
gin::Handle<T>* out) {
T* object = NULL;
- Converter<T*>::FromV8(isolate, val, &object);
- return gin::Handle<T>(val, object);
+ if (!Converter<T*>::FromV8(isolate, val, &object)) {
+ return false;
+ }
+ *out = gin::Handle<T>(val, object);
+ return true;
}
};