From bcd16f9453e543ba819385d87bd7061a4caeb325 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Tue, 11 Oct 2011 15:06:25 +1000 Subject: Update V8 Change-Id: Ic239ef1e55bed06260e4a04cc2199f64c2d30059 Reviewed-by: Kent Hansen --- ...-Add-new-v8-api-to-check-if-a-value-is-an.patch | 64 ++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 src/v8/0008-QtScript-V8-Add-new-v8-api-to-check-if-a-value-is-an.patch (limited to 'src/v8/0008-QtScript-V8-Add-new-v8-api-to-check-if-a-value-is-an.patch') diff --git a/src/v8/0008-QtScript-V8-Add-new-v8-api-to-check-if-a-value-is-an.patch b/src/v8/0008-QtScript-V8-Add-new-v8-api-to-check-if-a-value-is-an.patch new file mode 100644 index 0000000000..ea87da9431 --- /dev/null +++ b/src/v8/0008-QtScript-V8-Add-new-v8-api-to-check-if-a-value-is-an.patch @@ -0,0 +1,64 @@ +From 8e095c6171d6be5ac3c90fd2a8707579050d5e47 Mon Sep 17 00:00:00 2001 +From: Jedrzej Nowacki +Date: Tue, 7 Dec 2010 11:56:42 +0100 +Subject: [PATCH 08/11] 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. +--- + include/v8.h | 5 +++++ + src/api.cc | 6 ++++++ + src/heap.h | 1 + + 3 files changed, 12 insertions(+), 0 deletions(-) + +diff --git a/include/v8.h b/include/v8.h +index 229ddbd..d995e54 100644 +--- a/include/v8.h ++++ b/include/v8.h +@@ -967,6 +967,11 @@ class Value : public Data { + */ + V8EXPORT bool IsRegExp() const; + ++ /** ++ * Returns true if this value is an Error. ++ */ ++ V8EXPORT bool IsError() const; ++ + V8EXPORT Local ToBoolean() const; + V8EXPORT Local ToNumber() const; + V8EXPORT Local ToString() const; +diff --git a/src/api.cc b/src/api.cc +index 974d702..a16ef65 100644 +--- a/src/api.cc ++++ b/src/api.cc +@@ -2316,6 +2316,12 @@ bool Value::IsRegExp() const { + return obj->IsJSRegExp(); + } + ++bool Value::IsError() const { ++ if (IsDeadCheck(i::Isolate::Current(), "v8::Value::IsError()")) return false; ++ i::Handle obj = Utils::OpenHandle(this); ++ return obj->HasSpecificClassOf(HEAP->Error_symbol()); ++} ++ + + Local Value::ToString() const { + i::Handle obj = Utils::OpenHandle(this); +diff --git a/src/heap.h b/src/heap.h +index 5e90964..6166cde 100644 +--- a/src/heap.h ++++ b/src/heap.h +@@ -190,6 +190,7 @@ inline Heap* _inline_get_heap_(); + 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") \ +-- +1.7.4.4 + -- cgit v1.2.3