summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron Kennedy <aaron.kennedy@nokia.com>2011-10-11 14:27:48 +1000
committerQt by Nokia <qt-info@nokia.com>2011-10-11 07:02:14 +0200
commit27833629c6099fea4b7d59eb283748a12cb0d1da (patch)
treedc9ac17ff4e93129d784ce21d301ad9a5acd2fd3
parent1fb5600c5eb2ee2af8a766dea5b325aee6dd43b4 (diff)
Update V8
Change-Id: I359ec3f57a120ebd02d03c56d0944397b5407ed8 Reviewed-on: http://codereview.qt-project.org/6386 Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com> Sanity-Review: Aaron Kennedy <aaron.kennedy@nokia.com> Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com>
m---------src/3rdparty/v80
-rw-r--r--src/v8/0001-Add-hashing-and-comparison-methods-to-v8-String.patch2
-rw-r--r--src/v8/0002-Add-a-bit-field-3-to-Map.patch2
-rw-r--r--src/v8/0003-Add-a-fallback-mode-for-named-property-interceptors.patch2
-rw-r--r--src/v8/0004-Generalize-external-object-resources.patch2
-rw-r--r--src/v8/0005-Introduce-a-QML-compilation-mode.patch2
-rw-r--r--src/v8/0006-Allow-access-to-the-calling-script-data.patch2
-rw-r--r--src/v8/0007-Fix-warnings.patch2
-rw-r--r--src/v8/0008-Add-custom-object-compare-callback.patch2
-rw-r--r--src/v8/0009-Add-CallAsFunction-method-to-the-Object-class-in-the.patch2
-rw-r--r--src/v8/0010-Implement-CallAsConstructor-method-for-Object-in-the.patch2
-rw-r--r--src/v8/0011-QtScript-V8-Add-new-v8-api-to-check-if-a-value-is-an.patch2
-rw-r--r--src/v8/0012-Add-IsCallable-method-for-Object-in-the-API.patch2
-rw-r--r--src/v8/0013-Remove-execute-flag-from-v8-debug.h.patch2
-rw-r--r--src/v8/0014-Fix-deprecated-Python-code.patch2
-rw-r--r--src/v8/0015-Allow-a-script-to-be-flagged-as-native.patch2
-rw-r--r--src/v8/0016-Move-external-resource-to-the-last-hidden-field.patch61
17 files changed, 76 insertions, 15 deletions
diff --git a/src/3rdparty/v8 b/src/3rdparty/v8
-Subproject 523f03f03b1ac16d272a13389f8a5654d9ff12e
+Subproject 8f15248619bb3bf49473dc3ede8a4e631bd5d19
diff --git a/src/v8/0001-Add-hashing-and-comparison-methods-to-v8-String.patch b/src/v8/0001-Add-hashing-and-comparison-methods-to-v8-String.patch
index fefdd79baa..8a844f5f25 100644
--- a/src/v8/0001-Add-hashing-and-comparison-methods-to-v8-String.patch
+++ b/src/v8/0001-Add-hashing-and-comparison-methods-to-v8-String.patch
@@ -1,7 +1,7 @@
From 3dff2e903674d8ab5310d44281b57de36db659c9 Mon Sep 17 00:00:00 2001
From: Aaron Kennedy <aaron.kennedy@nokia.com>
Date: Mon, 23 May 2011 15:47:20 +1000
-Subject: [PATCH 01/15] Add hashing and comparison methods to v8::String
+Subject: [PATCH 01/16] Add hashing and comparison methods to v8::String
This allows us to more rapidly search for a v8::String inside
a hash of QStrings.
diff --git a/src/v8/0002-Add-a-bit-field-3-to-Map.patch b/src/v8/0002-Add-a-bit-field-3-to-Map.patch
index 7124021029..59dbad3135 100644
--- a/src/v8/0002-Add-a-bit-field-3-to-Map.patch
+++ b/src/v8/0002-Add-a-bit-field-3-to-Map.patch
@@ -1,7 +1,7 @@
From 01f7bd262fb1be893fe4bdc6b98a1b43c5a0bb7d Mon Sep 17 00:00:00 2001
From: Aaron Kennedy <aaron.kennedy@nokia.com>
Date: Mon, 23 May 2011 15:55:26 +1000
-Subject: [PATCH 02/15] Add a bit field 3 to Map
+Subject: [PATCH 02/16] Add a bit field 3 to Map
Bit field 3 will be used to add QML specific map flags.
---
diff --git a/src/v8/0003-Add-a-fallback-mode-for-named-property-interceptors.patch b/src/v8/0003-Add-a-fallback-mode-for-named-property-interceptors.patch
index 5c80fcf4b8..78184f6f9d 100644
--- a/src/v8/0003-Add-a-fallback-mode-for-named-property-interceptors.patch
+++ b/src/v8/0003-Add-a-fallback-mode-for-named-property-interceptors.patch
@@ -1,7 +1,7 @@
From 530ded6ea634bccb96652cd3e0cf67725449ed63 Mon Sep 17 00:00:00 2001
From: Aaron Kennedy <aaron.kennedy@nokia.com>
Date: Mon, 23 May 2011 16:21:02 +1000
-Subject: [PATCH 03/15] Add a "fallback" mode for named property interceptors
+Subject: [PATCH 03/16] Add a "fallback" mode for named property interceptors
By default interceptors are called before the normal property
resolution on objects. When an interceptor is installed as a
diff --git a/src/v8/0004-Generalize-external-object-resources.patch b/src/v8/0004-Generalize-external-object-resources.patch
index 004380168d..ece0f197d8 100644
--- a/src/v8/0004-Generalize-external-object-resources.patch
+++ b/src/v8/0004-Generalize-external-object-resources.patch
@@ -1,7 +1,7 @@
From f9368b52060c31e9532ef26f6cca1a2cb0283f51 Mon Sep 17 00:00:00 2001
From: Aaron Kennedy <aaron.kennedy@nokia.com>
Date: Mon, 23 May 2011 16:55:35 +1000
-Subject: [PATCH 04/15] Generalize external object resources
+Subject: [PATCH 04/16] Generalize external object resources
V8 was already able to manage and finalize an external string
resource. This change generalizes that mechanism to handle a
diff --git a/src/v8/0005-Introduce-a-QML-compilation-mode.patch b/src/v8/0005-Introduce-a-QML-compilation-mode.patch
index 4904969a83..c5c36a1f95 100644
--- a/src/v8/0005-Introduce-a-QML-compilation-mode.patch
+++ b/src/v8/0005-Introduce-a-QML-compilation-mode.patch
@@ -1,7 +1,7 @@
From 60c1a26bf89d3b06bcdd8408fcee89a018120f32 Mon Sep 17 00:00:00 2001
From: Aaron Kennedy <aaron.kennedy@nokia.com>
Date: Mon, 23 May 2011 18:26:19 +1000
-Subject: [PATCH 05/15] Introduce a QML compilation mode
+Subject: [PATCH 05/16] Introduce a QML compilation mode
In QML mode, there is a second global object - known as the QML
global object. During property resolution, if a property is not
diff --git a/src/v8/0006-Allow-access-to-the-calling-script-data.patch b/src/v8/0006-Allow-access-to-the-calling-script-data.patch
index 5c81fcfb7b..356142d654 100644
--- a/src/v8/0006-Allow-access-to-the-calling-script-data.patch
+++ b/src/v8/0006-Allow-access-to-the-calling-script-data.patch
@@ -1,7 +1,7 @@
From 1209b88e96f253cdc19aa4c95e011c84597844f0 Mon Sep 17 00:00:00 2001
From: Aaron Kennedy <aaron.kennedy@nokia.com>
Date: Wed, 25 May 2011 10:36:13 +1000
-Subject: [PATCH 06/15] Allow access to the calling script data
+Subject: [PATCH 06/16] Allow access to the calling script data
---
include/v8.h | 1 +
diff --git a/src/v8/0007-Fix-warnings.patch b/src/v8/0007-Fix-warnings.patch
index 56be7b8091..b4e39cc521 100644
--- a/src/v8/0007-Fix-warnings.patch
+++ b/src/v8/0007-Fix-warnings.patch
@@ -1,7 +1,7 @@
From 2a5cf85d7fd7912e516138db03e4cda47cc2a1ab Mon Sep 17 00:00:00 2001
From: Aaron Kennedy <aaron.kennedy@nokia.com>
Date: Fri, 27 May 2011 13:04:15 +1000
-Subject: [PATCH 07/15] Fix warnings
+Subject: [PATCH 07/16] Fix warnings
---
include/v8.h | 16 ++++++++--------
diff --git a/src/v8/0008-Add-custom-object-compare-callback.patch b/src/v8/0008-Add-custom-object-compare-callback.patch
index 528af62f12..125668805e 100644
--- a/src/v8/0008-Add-custom-object-compare-callback.patch
+++ b/src/v8/0008-Add-custom-object-compare-callback.patch
@@ -1,7 +1,7 @@
From a7c491e6e533110a17fe9f7d47cf92a1b2263180 Mon Sep 17 00:00:00 2001
From: Aaron Kennedy <aaron.kennedy@nokia.com>
Date: Mon, 27 Jun 2011 14:57:28 +1000
-Subject: [PATCH 08/15] Add custom object compare callback
+Subject: [PATCH 08/16] Add custom object compare callback
A global custom object comparison callback can be set with:
V8::SetUserObjectComparisonCallbackFunction()
diff --git a/src/v8/0009-Add-CallAsFunction-method-to-the-Object-class-in-the.patch b/src/v8/0009-Add-CallAsFunction-method-to-the-Object-class-in-the.patch
index 68862312e6..b89f152a04 100644
--- a/src/v8/0009-Add-CallAsFunction-method-to-the-Object-class-in-the.patch
+++ b/src/v8/0009-Add-CallAsFunction-method-to-the-Object-class-in-the.patch
@@ -1,7 +1,7 @@
From 15ce2909579aef8c8f6b0c2c07fdebbaf0f4d611 Mon Sep 17 00:00:00 2001
From: ager@chromium.org <ager@chromium.org>
Date: Wed, 4 May 2011 13:03:08 +0000
-Subject: [PATCH 09/15] Add CallAsFunction method to the Object class in the
+Subject: [PATCH 09/16] Add CallAsFunction method to the Object class in the
API
Patch by Peter Varga.
diff --git a/src/v8/0010-Implement-CallAsConstructor-method-for-Object-in-the.patch b/src/v8/0010-Implement-CallAsConstructor-method-for-Object-in-the.patch
index 7efc358c76..847cb8657e 100644
--- a/src/v8/0010-Implement-CallAsConstructor-method-for-Object-in-the.patch
+++ b/src/v8/0010-Implement-CallAsConstructor-method-for-Object-in-the.patch
@@ -1,7 +1,7 @@
From 3ba270e3b93d292dc53a675a21479bdb0b50bbbe Mon Sep 17 00:00:00 2001
From: ager@chromium.org <ager@chromium.org>
Date: Fri, 6 May 2011 11:07:52 +0000
-Subject: [PATCH 10/15] Implement CallAsConstructor method for Object in the
+Subject: [PATCH 10/16] Implement CallAsConstructor method for Object in the
API
Patch by Peter Varga.
diff --git a/src/v8/0011-QtScript-V8-Add-new-v8-api-to-check-if-a-value-is-an.patch b/src/v8/0011-QtScript-V8-Add-new-v8-api-to-check-if-a-value-is-an.patch
index fdec7a1baa..7cbc2d474b 100644
--- a/src/v8/0011-QtScript-V8-Add-new-v8-api-to-check-if-a-value-is-an.patch
+++ b/src/v8/0011-QtScript-V8-Add-new-v8-api-to-check-if-a-value-is-an.patch
@@ -1,7 +1,7 @@
From 5f3e5dd6901b54707ea4f868d8fa7317c4ab3852 Mon Sep 17 00:00:00 2001
From: Jedrzej Nowacki <jedrzej.nowacki@nokia.com>
Date: Tue, 7 Dec 2010 11:56:42 +0100
-Subject: [PATCH 11/15] QtScript/V8: Add new v8 api to check if a value is an
+Subject: [PATCH 11/16] QtScript/V8: Add new v8 api to check if a value is an
error.
New function v8::Value::IsError was created.
diff --git a/src/v8/0012-Add-IsCallable-method-for-Object-in-the-API.patch b/src/v8/0012-Add-IsCallable-method-for-Object-in-the-API.patch
index b1cfa8ebda..412cebd4d7 100644
--- a/src/v8/0012-Add-IsCallable-method-for-Object-in-the-API.patch
+++ b/src/v8/0012-Add-IsCallable-method-for-Object-in-the-API.patch
@@ -1,7 +1,7 @@
From a338d96fe138fbffd4b45c7d13a54e068daa6e12 Mon Sep 17 00:00:00 2001
From: ager@chromium.org <ager@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Date: Mon, 9 May 2011 15:24:48 +0000
-Subject: [PATCH 12/15] Add IsCallable method for Object in the API
+Subject: [PATCH 12/16] Add IsCallable method for Object in the API
Patch by Peter Varga.
diff --git a/src/v8/0013-Remove-execute-flag-from-v8-debug.h.patch b/src/v8/0013-Remove-execute-flag-from-v8-debug.h.patch
index 24ff160675..9d987dd3c1 100644
--- a/src/v8/0013-Remove-execute-flag-from-v8-debug.h.patch
+++ b/src/v8/0013-Remove-execute-flag-from-v8-debug.h.patch
@@ -1,7 +1,7 @@
From c36be227e9d7952a1952caa529c78ecdc376bd55 Mon Sep 17 00:00:00 2001
From: Aaron Kennedy <aaron.kennedy@nokia.com>
Date: Thu, 25 Aug 2011 11:09:58 +1000
-Subject: [PATCH 13/15] Remove execute flag from v8-debug.h
+Subject: [PATCH 13/16] Remove execute flag from v8-debug.h
---
0 files changed, 0 insertions(+), 0 deletions(-)
diff --git a/src/v8/0014-Fix-deprecated-Python-code.patch b/src/v8/0014-Fix-deprecated-Python-code.patch
index b33e6f5cb6..9745a5c129 100644
--- a/src/v8/0014-Fix-deprecated-Python-code.patch
+++ b/src/v8/0014-Fix-deprecated-Python-code.patch
@@ -1,7 +1,7 @@
From ed5cc903d70f73780e5985e7d2de33f6b8d86402 Mon Sep 17 00:00:00 2001
From: Kent Hansen <kent.hansen@nokia.com>
Date: Fri, 2 Sep 2011 12:03:09 +0200
-Subject: [PATCH 14/15] Fix deprecated Python code
+Subject: [PATCH 14/16] Fix deprecated Python code
Needed to make the scripts run on Python 3, which is the
default python interpreter on some newer distros.
diff --git a/src/v8/0015-Allow-a-script-to-be-flagged-as-native.patch b/src/v8/0015-Allow-a-script-to-be-flagged-as-native.patch
index 204aadafee..d66e370217 100644
--- a/src/v8/0015-Allow-a-script-to-be-flagged-as-native.patch
+++ b/src/v8/0015-Allow-a-script-to-be-flagged-as-native.patch
@@ -1,7 +1,7 @@
From 523f03f03b1ac16d272a13389f8a5654d9ff12e6 Mon Sep 17 00:00:00 2001
From: Aaron Kennedy <aaron.kennedy@nokia.com>
Date: Fri, 9 Sep 2011 14:16:12 +1000
-Subject: [PATCH 15/15] Allow a script to be flagged as "native"
+Subject: [PATCH 15/16] Allow a script to be flagged as "native"
Native scripts do not appear in backtraces, or in the source and
line number when exceptions are thrown from within them. This is
diff --git a/src/v8/0016-Move-external-resource-to-the-last-hidden-field.patch b/src/v8/0016-Move-external-resource-to-the-last-hidden-field.patch
new file mode 100644
index 0000000000..b6dde1e024
--- /dev/null
+++ b/src/v8/0016-Move-external-resource-to-the-last-hidden-field.patch
@@ -0,0 +1,61 @@
+From 8f15248619bb3bf49473dc3ede8a4e631bd5d199 Mon Sep 17 00:00:00 2001
+From: Aaron Kennedy <aaron.kennedy@nokia.com>
+Date: Tue, 4 Oct 2011 14:22:54 +1000
+Subject: [PATCH 16/16] Move external resource to the last hidden field
+
+---
+ src/objects-inl.h | 10 +++++-----
+ 1 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/src/objects-inl.h b/src/objects-inl.h
+index 1765441..c02e037 100644
+--- a/src/objects-inl.h
++++ b/src/objects-inl.h
+@@ -1398,7 +1398,7 @@ int JSObject::GetInternalFieldCount() {
+
+ int JSObject::GetInternalFieldOffset(int index) {
+ ASSERT(index < GetInternalFieldCount() && index >= 0);
+- return GetHeaderSize() + (kPointerSize * (index + map()->has_external_resource()?1:0));
++ return GetHeaderSize() + (kPointerSize * index);
+ }
+
+
+@@ -1407,7 +1407,7 @@ Object* JSObject::GetInternalField(int index) {
+ // Internal objects do follow immediately after the header, whereas in-object
+ // properties are at the end of the object. Therefore there is no need
+ // to adjust the index here.
+- return READ_FIELD(this, GetHeaderSize() + (kPointerSize * (index + map()->has_external_resource()?1:0)));
++ return READ_FIELD(this, GetHeaderSize() + (kPointerSize * index));
+ }
+
+
+@@ -1416,7 +1416,7 @@ void JSObject::SetInternalField(int index, Object* value) {
+ // Internal objects do follow immediately after the header, whereas in-object
+ // properties are at the end of the object. Therefore there is no need
+ // to adjust the index here.
+- int offset = GetHeaderSize() + (kPointerSize * (index + map()->has_external_resource()?1:0));
++ int offset = GetHeaderSize() + (kPointerSize * index);
+ WRITE_FIELD(this, offset, value);
+ WRITE_BARRIER(this, offset);
+ }
+@@ -1424,7 +1424,7 @@ void JSObject::SetInternalField(int index, Object* value) {
+
+ void JSObject::SetExternalResourceObject(Object *value) {
+ ASSERT(map()->has_external_resource());
+- int offset = GetHeaderSize();
++ int offset = GetHeaderSize() + kPointerSize * GetInternalFieldCount();
+ WRITE_FIELD(this, offset, value);
+ WRITE_BARRIER(this, offset);
+ }
+@@ -1432,7 +1432,7 @@ void JSObject::SetExternalResourceObject(Object *value) {
+
+ Object *JSObject::GetExternalResourceObject() {
+ if (map()->has_external_resource()) {
+- return READ_FIELD(this, GetHeaderSize());
++ return READ_FIELD(this, GetHeaderSize() + kPointerSize * GetInternalFieldCount());
+ } else {
+ return GetHeap()->undefined_value();
+ }
+--
+1.7.4.4
+