From eb57d1b9b197a0d5be6047c0d5e653468f73cac7 Mon Sep 17 00:00:00 2001 From: Ryan Dahl Date: Sat, 30 Apr 2011 11:38:25 -0700 Subject: [PATCH] Upgrade V8 to 3.1.8.14 --- deps/v8/src/arm/code-stubs-arm.cc | 8 +++++++- deps/v8/src/builtins.cc | 4 ++-- deps/v8/src/runtime.cc | 2 +- deps/v8/src/version.cc | 2 +- 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/deps/v8/src/arm/code-stubs-arm.cc b/deps/v8/src/arm/code-stubs-arm.cc index 84ef53d4dc..e8f217d276 100644 --- a/deps/v8/src/arm/code-stubs-arm.cc +++ b/deps/v8/src/arm/code-stubs-arm.cc @@ -3425,6 +3425,8 @@ void TypeRecordingBinaryOpStub::GenerateInt32Stub(MacroAssembler* masm) { // Save the left value on the stack. __ Push(r5, r4); + Label pop_and_call_runtime; + // Allocate a heap number to store the result. heap_number_result = r5; GenerateHeapResultAllocation(masm, @@ -3432,7 +3434,7 @@ void TypeRecordingBinaryOpStub::GenerateInt32Stub(MacroAssembler* masm) { heap_number_map, scratch1, scratch2, - &call_runtime); + &pop_and_call_runtime); // Load the left value from the value saved on the stack. __ Pop(r1, r0); @@ -3440,6 +3442,10 @@ void TypeRecordingBinaryOpStub::GenerateInt32Stub(MacroAssembler* masm) { // Call the C function to handle the double operation. FloatingPointHelper::CallCCodeForDoubleOperation( masm, op_, heap_number_result, scratch1); + + __ bind(&pop_and_call_runtime); + __ Drop(2); + __ b(&call_runtime); } break; diff --git a/deps/v8/src/builtins.cc b/deps/v8/src/builtins.cc index 01e8deb4e1..ff073883c7 100644 --- a/deps/v8/src/builtins.cc +++ b/deps/v8/src/builtins.cc @@ -818,8 +818,8 @@ BUILTIN(ArraySplice) { const int delta = actual_delete_count - item_count; if (actual_start > 0) { - Object** start = elms->data_start(); - memmove(start + delta, start, actual_start * kPointerSize); + AssertNoAllocation no_gc; + MoveElements(&no_gc, elms, delta, elms, 0, actual_start); } elms = LeftTrimFixedArray(elms, delta); diff --git a/deps/v8/src/runtime.cc b/deps/v8/src/runtime.cc index 4fe0e82b32..dd49d727e3 100644 --- a/deps/v8/src/runtime.cc +++ b/deps/v8/src/runtime.cc @@ -2625,7 +2625,7 @@ MUST_USE_RESULT static MaybeObject* StringReplaceRegExpWithEmptyString( end = RegExpImpl::GetCapture(match_info_array, 1); } - int length = subject->length(); + int length = subject_handle->length(); int new_length = length - (end - start); if (new_length == 0) { return Heap::empty_string(); diff --git a/deps/v8/src/version.cc b/deps/v8/src/version.cc index 39328dcb7e..0673517eb0 100644 --- a/deps/v8/src/version.cc +++ b/deps/v8/src/version.cc @@ -35,7 +35,7 @@ #define MAJOR_VERSION 3 #define MINOR_VERSION 1 #define BUILD_NUMBER 8 -#define PATCH_LEVEL 10 +#define PATCH_LEVEL 14 #define CANDIDATE_VERSION false // Define SONAME to have the SCons build the put a specific SONAME into the