diff options
author | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-13 23:55:25 +0000 |
---|---|---|
committer | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-13 23:55:25 +0000 |
commit | 481d2498a8c07fd290ae0e9d6b25dcaf6198c05f (patch) | |
tree | 06ea7653f8bb06fb1c56b696712b4e6834beca90 /gin | |
parent | e1b0a04002b316835b3d2ee4b10eaef1425d450a (diff) | |
download | chromium_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.cc | 6 | ||||
-rw-r--r-- | gin/arguments.h | 6 | ||||
-rw-r--r-- | gin/handle.h | 9 |
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; } }; |