From d22bd9e3c48bccb9c21980a88a24b7914dd47943 Mon Sep 17 00:00:00 2001 From: Fedor Indutny Date: Sat, 12 Jan 2013 00:10:45 +0400 Subject: [PATCH] deps: update v8 to 3.15.11.7 --- deps/v8/build/common.gypi | 11 ++++++++- deps/v8/src/deoptimizer.cc | 5 ++-- deps/v8/src/string.js | 1 + deps/v8/src/version.cc | 2 +- deps/v8/test/mjsunit/regress/regress-166553.js | 33 ++++++++++++++++++++++++++ 5 files changed, 48 insertions(+), 4 deletions(-) create mode 100644 deps/v8/test/mjsunit/regress/regress-166553.js diff --git a/deps/v8/build/common.gypi b/deps/v8/build/common.gypi index 44bebae..e68ee15 100644 --- a/deps/v8/build/common.gypi +++ b/deps/v8/build/common.gypi @@ -160,7 +160,7 @@ [ 'v8_use_arm_eabi_hardfloat=="true"', { 'defines': [ 'USE_EABI_HARDFLOAT=1', - 'CAN_USE_VFP2_INSTRUCTIONS', + 'CAN_USE_VFP3_INSTRUCTIONS', ], 'target_conditions': [ ['_toolset=="target"', { @@ -399,6 +399,15 @@ }], ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd" \ or OS=="android"', { + 'cflags!': [ + '-O2', + '-Os', + ], + 'cflags': [ + '-fdata-sections', + '-ffunction-sections', + '-O3', + ], 'conditions': [ [ 'gcc_version==44 and clang==0', { 'cflags': [ diff --git a/deps/v8/src/deoptimizer.cc b/deps/v8/src/deoptimizer.cc index 8f17111..48b1d3f 100644 --- a/deps/v8/src/deoptimizer.cc +++ b/deps/v8/src/deoptimizer.cc @@ -1411,8 +1411,9 @@ void Deoptimizer::EnsureCodeForDeoptimizationEntry(BailoutType type, ? data->eager_deoptimization_entry_code_entries_ : data->lazy_deoptimization_entry_code_entries_; if (max_entry_id < entry_count) return; - entry_count = Min(Max(entry_count * 2, Deoptimizer::kMinNumberOfEntries), - Deoptimizer::kMaxNumberOfEntries); + entry_count = Max(entry_count, Deoptimizer::kMinNumberOfEntries); + while (max_entry_id >= entry_count) entry_count *= 2; + ASSERT(entry_count <= Deoptimizer::kMaxNumberOfEntries); MacroAssembler masm(Isolate::Current(), NULL, 16 * KB); masm.set_emit_debug_code(false); diff --git a/deps/v8/src/string.js b/deps/v8/src/string.js index badfad3..d9ca035 100644 --- a/deps/v8/src/string.js +++ b/deps/v8/src/string.js @@ -824,6 +824,7 @@ function StringFromCharCode(code) { for (i = 0; i < n; i++) { var code = %_Arguments(i); if (!%_IsSmi(code)) code = ToNumber(code) & 0xffff; + if (code < 0) code = code & 0xffff; if (code > 0x7f) break; %_OneByteSeqStringSetChar(one_byte, i, code); } diff --git a/deps/v8/src/version.cc b/deps/v8/src/version.cc index aa55c1b..34ba3fe 100644 --- a/deps/v8/src/version.cc +++ b/deps/v8/src/version.cc @@ -35,7 +35,7 @@ #define MAJOR_VERSION 3 #define MINOR_VERSION 15 #define BUILD_NUMBER 11 -#define PATCH_LEVEL 5 +#define PATCH_LEVEL 7 // Use 1 for candidates and 0 otherwise. // (Boolean macro values are not supported by all preprocessors.) #define IS_CANDIDATE_VERSION 0 diff --git a/deps/v8/test/mjsunit/regress/regress-166553.js b/deps/v8/test/mjsunit/regress/regress-166553.js new file mode 100644 index 0000000..acaf34f --- /dev/null +++ b/deps/v8/test/mjsunit/regress/regress-166553.js @@ -0,0 +1,33 @@ +// Copyright 2012 the V8 project authors. All rights reserved. +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Flags: --expose_gc + +JSON.stringify(String.fromCharCode(1, -11).toString()) +gc(); +var s = String.fromCharCode(1, -11) +assertEquals(65525, s.charCodeAt(1)) -- 2.7.4