From cd44813bae38b75261a22e755e4e5fed7114751f Mon Sep 17 00:00:00 2001 From: Aurindam Jana Date: Tue, 13 Dec 2011 14:05:13 +0100 Subject: Update V8 Update V8 with fix for Issue 1853 (http://code.google.com/p/v8/issues/detail?id=1853) Change-Id: I10f652228ab1421b280b433eb2a59aeb83a7699f Reviewed-by: Kai Koehne Reviewed-by: Aaron Kennedy --- ...shing-and-comparison-methods-to-v8-String.patch | 8 +-- ...back-mode-for-named-property-interceptors.patch | 6 +- ...0003-Generalize-external-object-resources.patch | 6 +- src/v8/0004-Introduce-a-QML-compilation-mode.patch | 8 +-- ...5-Allow-access-to-the-calling-script-data.patch | 6 +- .../0006-Add-custom-object-compare-callback.patch | 6 +- ...07-Allow-a-script-to-be-flagged-as-native.patch | 6 +- ...-Add-new-v8-api-to-check-if-a-value-is-an.patch | 7 +-- src/v8/0009-Fix-deprecated-Python-code.patch | 6 +- .../0010-Remove-execute-flag-from-v8-debug.h.patch | 6 +- src/v8/0011-Fix-warnings.patch | 6 +- ...2-Add-flag-to-avoid-breakpoint-relocation.patch | 6 +- ...Update-ScriptBreakPoints-for-ScriptRegExp.patch | 68 ++++++++++++++++++++++ 13 files changed, 106 insertions(+), 39 deletions(-) create mode 100644 src/v8/0013-Update-ScriptBreakPoints-for-ScriptRegExp.patch (limited to 'src/v8') 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 cb9f4a255c..dd6374a9cb 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 0a86a97f554c4aaa727da1c4481ca6368c68bf85 Mon Sep 17 00:00:00 2001 +From d97195f011cdaa8b859d759f8a34dd50c3092f30 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Tue, 4 Oct 2011 15:04:21 +1000 -Subject: [PATCH 01/12] Add hashing and comparison methods to v8::String +Subject: [PATCH 01/13] Add hashing and comparison methods to v8::String This allows us to more rapidly search for a v8::String inside a hash of QStrings. @@ -303,7 +303,7 @@ index 9a87ac5..2946d02 100644 class SubStringAsciiSymbolKey : public HashTableKey { diff --git a/src/objects.h b/src/objects.h -index f7d21802..d96e5f9 100644 +index f7d2180..d96e5f9 100644 --- a/src/objects.h +++ b/src/objects.h @@ -6201,6 +6201,9 @@ class String: public HeapObject { @@ -332,5 +332,5 @@ index f7d21802..d96e5f9 100644 private: DISALLOW_IMPLICIT_CONSTRUCTORS(SeqString); -- -1.7.7.3 +1.7.4.1 diff --git a/src/v8/0002-Add-a-fallback-mode-for-named-property-interceptors.patch b/src/v8/0002-Add-a-fallback-mode-for-named-property-interceptors.patch index 35db5c2ca5..7ee05caea2 100644 --- a/src/v8/0002-Add-a-fallback-mode-for-named-property-interceptors.patch +++ b/src/v8/0002-Add-a-fallback-mode-for-named-property-interceptors.patch @@ -1,7 +1,7 @@ -From 20eca1d4ce4c56b599a052d496f4660f9ca9c978 Mon Sep 17 00:00:00 2001 +From e30b202d683e36731d9674ebf75803990a33816e Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Thu, 27 Oct 2011 11:31:56 +0100 -Subject: [PATCH 02/12] Add a "fallback" mode for named property interceptors +Subject: [PATCH 02/13] 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 @@ -357,5 +357,5 @@ index 9c23c2c..0e256c1 100644 return isolate->heap()->undefined_value(); } -- -1.7.7.3 +1.7.4.1 diff --git a/src/v8/0003-Generalize-external-object-resources.patch b/src/v8/0003-Generalize-external-object-resources.patch index ba384a62ee..580b8f0f24 100644 --- a/src/v8/0003-Generalize-external-object-resources.patch +++ b/src/v8/0003-Generalize-external-object-resources.patch @@ -1,7 +1,7 @@ -From 74974cee335e6c22ea99fd9a4bbb9c7fa7323d80 Mon Sep 17 00:00:00 2001 +From 501255df9cb6241a1f6c8d8a3361b9582fa481ef Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Tue, 4 Oct 2011 16:06:09 +1000 -Subject: [PATCH 03/12] Generalize external object resources +Subject: [PATCH 03/13] Generalize external object resources V8 was already able to manage and finalize an external string resource. This change generalizes that mechanism to handle a @@ -591,5 +591,5 @@ index ed40061..c38d461 100644 -- -1.7.7.3 +1.7.4.1 diff --git a/src/v8/0004-Introduce-a-QML-compilation-mode.patch b/src/v8/0004-Introduce-a-QML-compilation-mode.patch index 712c710df2..84823ca4a7 100644 --- a/src/v8/0004-Introduce-a-QML-compilation-mode.patch +++ b/src/v8/0004-Introduce-a-QML-compilation-mode.patch @@ -1,7 +1,7 @@ -From ae1c497cf2235df9d73d3c5d3c2b40bcde7e534f Mon Sep 17 00:00:00 2001 +From c49c39afa016b176c933ff01e748a2eddb26e131 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Thu, 27 Oct 2011 13:34:16 +0100 -Subject: [PATCH 04/12] Introduce a QML compilation mode +Subject: [PATCH 04/13] 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 @@ -2058,7 +2058,7 @@ index 3167c4d..6503d07 100644 case DYNAMIC_LOOKUP: diff --git a/src/scopes.h b/src/scopes.h -index a1418874..41e5f5c 100644 +index a141887..41e5f5c 100644 --- a/src/scopes.h +++ b/src/scopes.h @@ -228,6 +228,11 @@ class Scope: public ZoneObject { @@ -2351,5 +2351,5 @@ index f5f81b1..5caa6cf 100644 static inline Operand StackSpaceOperand(int index) { #ifdef _WIN64 -- -1.7.7.3 +1.7.4.1 diff --git a/src/v8/0005-Allow-access-to-the-calling-script-data.patch b/src/v8/0005-Allow-access-to-the-calling-script-data.patch index 3c41a036ee..596e9573fc 100644 --- a/src/v8/0005-Allow-access-to-the-calling-script-data.patch +++ b/src/v8/0005-Allow-access-to-the-calling-script-data.patch @@ -1,7 +1,7 @@ -From d01b0fc24542eb6128bcbd3a8a02da9659b8433e Mon Sep 17 00:00:00 2001 +From 2081f6baaab81d60564680de600b4dcf03de6cd4 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Fri, 14 Oct 2011 17:03:06 +1000 -Subject: [PATCH 05/12] Allow access to the calling script data +Subject: [PATCH 05/13] Allow access to the calling script data --- include/v8.h | 1 + @@ -44,5 +44,5 @@ index 2d3d97a..54df40d 100644 v8::Local Context::Global() { if (IsDeadCheck(i::Isolate::Current(), "v8::Context::Global()")) { -- -1.7.7.3 +1.7.4.1 diff --git a/src/v8/0006-Add-custom-object-compare-callback.patch b/src/v8/0006-Add-custom-object-compare-callback.patch index 51c933580f..0ffe0b6dfc 100644 --- a/src/v8/0006-Add-custom-object-compare-callback.patch +++ b/src/v8/0006-Add-custom-object-compare-callback.patch @@ -1,7 +1,7 @@ -From 59b3da4073971aa725eea8f303f37948dc3bb376 Mon Sep 17 00:00:00 2001 +From d2d3c19a32e2f7a5586811bb10ea75a79a11f52f Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Thu, 27 Oct 2011 13:40:00 +0100 -Subject: [PATCH 06/12] Add custom object compare callback +Subject: [PATCH 06/13] Add custom object compare callback A global custom object comparison callback can be set with: V8::SetUserObjectComparisonCallbackFunction() @@ -544,5 +544,5 @@ index f30221f..ff8337f 100644 ASSERT(GetCondition() == equal); __ subq(rax, rdx); -- -1.7.7.3 +1.7.4.1 diff --git a/src/v8/0007-Allow-a-script-to-be-flagged-as-native.patch b/src/v8/0007-Allow-a-script-to-be-flagged-as-native.patch index b6380b1b8e..e3b65f5ee2 100644 --- a/src/v8/0007-Allow-a-script-to-be-flagged-as-native.patch +++ b/src/v8/0007-Allow-a-script-to-be-flagged-as-native.patch @@ -1,7 +1,7 @@ -From 519fec2ddc92193760dc2a6599f91ff4eb11563c Mon Sep 17 00:00:00 2001 +From 1ecd533461383671ea465b37f2cad84a0aad3d52 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Fri, 9 Sep 2011 14:16:12 +1000 -Subject: [PATCH 07/12] Allow a script to be flagged as "native" +Subject: [PATCH 07/13] 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 @@ -42,5 +42,5 @@ index 4902e72..cabca74 100644 } if (!script_name.is_null()) { -- -1.7.7.3 +1.7.4.1 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 index 5e36024232..8c072d901e 100644 --- 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 @@ -1,8 +1,7 @@ -From de3e14564f163d808a3d10397a3018e6aaeb727b Mon Sep 17 00:00:00 2001 +From c7850561fcdf333a5b80a50623c7d4507757b315 Mon Sep 17 00:00:00 2001 From: Jedrzej Nowacki Date: Tue, 7 Dec 2010 11:56:42 +0100 -Subject: [PATCH 08/12] QtScript/V8: Add new v8 api to check if a value is an - error. +Subject: [PATCH 08/13] QtScript/V8: Add new v8 api to check if a value is an error. New function v8::Value::IsError was created. @@ -60,5 +59,5 @@ index 5e90964..6166cde 100644 V(to_string_symbol, "toString") \ V(char_at_symbol, "CharAt") \ -- -1.7.7.3 +1.7.4.1 diff --git a/src/v8/0009-Fix-deprecated-Python-code.patch b/src/v8/0009-Fix-deprecated-Python-code.patch index c0ca24a9ff..2c34e20321 100644 --- a/src/v8/0009-Fix-deprecated-Python-code.patch +++ b/src/v8/0009-Fix-deprecated-Python-code.patch @@ -1,7 +1,7 @@ -From 7084bd94a99db246baa4f1d050a6f23cfd6adc14 Mon Sep 17 00:00:00 2001 +From 4a9995fd141e40df2493dc2ef12d91f0a946629a Mon Sep 17 00:00:00 2001 From: Kent Hansen Date: Fri, 2 Sep 2011 12:03:09 +0200 -Subject: [PATCH 09/12] Fix deprecated Python code +Subject: [PATCH 09/13] Fix deprecated Python code Needed to make the scripts run on Python 3, which is the default python interpreter on some newer distros. @@ -47,5 +47,5 @@ index 646bf14..395441b 100644 if identifier_second_char != 0: new_identifier = ( -- -1.7.7.3 +1.7.4.1 diff --git a/src/v8/0010-Remove-execute-flag-from-v8-debug.h.patch b/src/v8/0010-Remove-execute-flag-from-v8-debug.h.patch index 243692e9ee..92ef7af9cd 100644 --- a/src/v8/0010-Remove-execute-flag-from-v8-debug.h.patch +++ b/src/v8/0010-Remove-execute-flag-from-v8-debug.h.patch @@ -1,7 +1,7 @@ -From 04779c9a6f99fc097af68cf75a27b1d6a76c3e9d Mon Sep 17 00:00:00 2001 +From 8498e4b40d8355aa51dd8f4641dd1fdd4704e7bd Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Thu, 25 Aug 2011 11:09:58 +1000 -Subject: [PATCH 10/12] Remove execute flag from v8-debug.h +Subject: [PATCH 10/13] Remove execute flag from v8-debug.h --- 0 files changed, 0 insertions(+), 0 deletions(-) @@ -11,5 +11,5 @@ diff --git a/include/v8-debug.h b/include/v8-debug.h old mode 100755 new mode 100644 -- -1.7.7.3 +1.7.4.1 diff --git a/src/v8/0011-Fix-warnings.patch b/src/v8/0011-Fix-warnings.patch index 39b5438e23..40261df358 100644 --- a/src/v8/0011-Fix-warnings.patch +++ b/src/v8/0011-Fix-warnings.patch @@ -1,7 +1,7 @@ -From eb7bb4628dc4480210818e371934a76ae1f7fb91 Mon Sep 17 00:00:00 2001 +From 6643bd52181d51570bb1f9806dd06ff3b66c4251 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Fri, 27 May 2011 13:04:15 +1000 -Subject: [PATCH 11/12] Fix warnings +Subject: [PATCH 11/13] Fix warnings --- include/v8.h | 16 ++++++++-------- @@ -42,5 +42,5 @@ index d995e54..a7b5c8a 100644 } // namespace internal -- -1.7.7.3 +1.7.4.1 diff --git a/src/v8/0012-Add-flag-to-avoid-breakpoint-relocation.patch b/src/v8/0012-Add-flag-to-avoid-breakpoint-relocation.patch index 922b011776..0b6895657d 100644 --- a/src/v8/0012-Add-flag-to-avoid-breakpoint-relocation.patch +++ b/src/v8/0012-Add-flag-to-avoid-breakpoint-relocation.patch @@ -1,7 +1,7 @@ -From d28b6a024826aaa48a8b3e69c096d01c91aff2c9 Mon Sep 17 00:00:00 2001 +From f37d702159f3e606610b74fb2b56ece63d510a6e Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Thu, 10 Nov 2011 16:00:37 +0100 -Subject: [PATCH 12/12] Add flag to avoid breakpoint relocation +Subject: [PATCH 12/13] Add flag to avoid breakpoint relocation Add a flag that prevents v8 from relocating breakpoints across line boundaries. @@ -143,5 +143,5 @@ index cf723ba..7e51c34 100644 // Test that it is possible to remove the last break point for a function // inside the break handling of that break point. -- -1.7.7.3 +1.7.4.1 diff --git a/src/v8/0013-Update-ScriptBreakPoints-for-ScriptRegExp.patch b/src/v8/0013-Update-ScriptBreakPoints-for-ScriptRegExp.patch new file mode 100644 index 0000000000..2945ff5f07 --- /dev/null +++ b/src/v8/0013-Update-ScriptBreakPoints-for-ScriptRegExp.patch @@ -0,0 +1,68 @@ +From f02e75f4f2fdffcac78317dff38c6ca6e679cf5c Mon Sep 17 00:00:00 2001 +From: Aurindam Jana +Date: Tue, 13 Dec 2011 13:43:23 +0100 +Subject: [PATCH 13/13] Update ScriptBreakPoints for ScriptRegExp + +Update breakpoints of type ScriptRegExpwhen a new script +is compiled. Solves Issue 1853 +(http://code.google.com/p/v8/issues/detail?id=1853) + +Reviewed-by: aaron.kennedy@nokia.com +--- + src/debug-debugger.js | 3 ++- + test/mjsunit/debug-setbreakpoint.js | 12 ++++++++++-- + 2 files changed, 12 insertions(+), 3 deletions(-) + +diff --git a/src/debug-debugger.js b/src/debug-debugger.js +index d254ee5..6f80a8b 100644 +--- a/src/debug-debugger.js ++++ b/src/debug-debugger.js +@@ -477,7 +477,8 @@ ScriptBreakPoint.prototype.clear = function () { + // break points set in this script. + function UpdateScriptBreakPoints(script) { + for (var i = 0; i < script_break_points.length; i++) { +- if (script_break_points[i].type() == Debug.ScriptBreakPointType.ScriptName && ++ if ((script_break_points[i].type() == Debug.ScriptBreakPointType.ScriptName || ++ script_break_points[i].type() == Debug.ScriptBreakPointType.ScriptRegExp) && + script_break_points[i].matchesScript(script)) { + script_break_points[i].set(script); + } +diff --git a/test/mjsunit/debug-setbreakpoint.js b/test/mjsunit/debug-setbreakpoint.js +index 90dfcd1..03ba28e 100644 +--- a/test/mjsunit/debug-setbreakpoint.js ++++ b/test/mjsunit/debug-setbreakpoint.js +@@ -49,14 +49,17 @@ function safeEval(code) { + } + } + +-function testArguments(dcp, arguments, success, is_script) { ++function testArguments(dcp, arguments, success, is_script, is_script_reg_exp) { + var request = '{' + base_request + ',"arguments":' + arguments + '}' + var json_response = dcp.processDebugJSONRequest(request); + var response = safeEval(json_response); + if (success) { + assertTrue(response.success, request + ' -> ' + json_response); + if (is_script) { +- assertEquals('scriptName', response.body.type, request + ' -> ' + json_response); ++ if (is_script_reg_exp) ++ assertEquals('scriptRegExp', response.body.type, request + ' -> ' + json_response); ++ else ++ assertEquals('scriptName', response.body.type, request + ' -> ' + json_response); + } else { + assertEquals('scriptId', response.body.type, request + ' -> ' + json_response); + } +@@ -108,6 +111,11 @@ function listener(event, exec_state, event_data, data) { + testArguments(dcp, '{"type":"script","target":"test","line":1}', true, true); + testArguments(dcp, '{"type":"script","target":"test","column":1}', true, true); + ++ testArguments(dcp, '{"type":"scriptRegExp","target":"test"}', true, true, true); ++ testArguments(dcp, '{"type":"scriptRegExp","target":"test"}', true, true, true); ++ testArguments(dcp, '{"type":"scriptRegExp","target":"test","line":1}', true, true, true); ++ testArguments(dcp, '{"type":"scriptRegExp","target":"test","column":1}', true, true, true); ++ + testArguments(dcp, '{"type":"scriptId","target":' + f_script_id + ',"line":' + f_line + '}', true, false); + testArguments(dcp, '{"type":"scriptId","target":' + g_script_id + ',"line":' + g_line + '}', true, false); + testArguments(dcp, '{"type":"scriptId","target":' + h_script_id + ',"line":' + h_line + '}', true, false); +-- +1.7.4.1 + -- cgit v1.2.3