summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJedrzej Nowacki <jedrzej.nowacki@nokia.com>2010-12-07 11:56:42 +0100
committerQt by Nokia <qt-info@nokia.com>2012-06-13 09:57:09 +0200
commit86c51f7835a350a5d0cd8b09405feb5e8c03cb4c (patch)
tree750dc0d731a80b338dd387122658b00252b7d93b
parentf7d784789656ab94077c29dcb7816a5cb945e049 (diff)
downloadqtjsbackend-86c51f7835a350a5d0cd8b09405feb5e8c03cb4c.tar.gz
[V8] QtScript/V8: Add new v8 api to check if a value is an error.
New function v8::Value::IsError was created. This API is experimental and added only for the purposes of our research. Change-Id: Id2f5a6728d15fc02ae3c03e6b49928afed0f62fa Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
-rw-r--r--src/3rdparty/v8/include/v8.h5
-rw-r--r--src/3rdparty/v8/src/api.cc6
-rw-r--r--src/3rdparty/v8/src/heap.h1
3 files changed, 12 insertions, 0 deletions
diff --git a/src/3rdparty/v8/include/v8.h b/src/3rdparty/v8/include/v8.h
index fbb348f..5be96f6 100644
--- a/src/3rdparty/v8/include/v8.h
+++ b/src/3rdparty/v8/include/v8.h
@@ -970,6 +970,11 @@ class Value : public Data {
*/
V8EXPORT bool IsRegExp() const;
+ /**
+ * Returns true if this value is an Error.
+ */
+ V8EXPORT bool IsError() const;
+
V8EXPORT Local<Boolean> ToBoolean() const;
V8EXPORT Local<Number> ToNumber() const;
V8EXPORT Local<String> ToString() const;
diff --git a/src/3rdparty/v8/src/api.cc b/src/3rdparty/v8/src/api.cc
index d681328..1becc61 100644
--- a/src/3rdparty/v8/src/api.cc
+++ b/src/3rdparty/v8/src/api.cc
@@ -2366,6 +2366,12 @@ bool Value::IsRegExp() const {
return obj->IsJSRegExp();
}
+bool Value::IsError() const {
+ if (IsDeadCheck(i::Isolate::Current(), "v8::Value::IsError()")) return false;
+ i::Handle<i::Object> obj = Utils::OpenHandle(this);
+ return obj->HasSpecificClassOf(HEAP->Error_symbol());
+}
+
Local<String> Value::ToString() const {
i::Handle<i::Object> obj = Utils::OpenHandle(this);
diff --git a/src/3rdparty/v8/src/heap.h b/src/3rdparty/v8/src/heap.h
index ba53909..0e744e4 100644
--- a/src/3rdparty/v8/src/heap.h
+++ b/src/3rdparty/v8/src/heap.h
@@ -197,6 +197,7 @@ namespace internal {
V(string_symbol, "string") \
V(String_symbol, "String") \
V(Date_symbol, "Date") \
+ V(Error_symbol, "Error") \
V(this_symbol, "this") \
V(to_string_symbol, "toString") \
V(char_at_symbol, "CharAt") \