summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBert Belder <bertbelder@gmail.com>2012-08-21 03:04:16 +0200
committerBert Belder <bertbelder@gmail.com>2012-08-21 03:04:16 +0200
commit2d9239359db7ba8d23761ca18cef9455f812f111 (patch)
tree9e498ffa5ad73111b1e354d4518478973b23f8a3
parentd38d7bea6c08ba9b1367ebd44f9ade1154e3d04d (diff)
downloadnode-new-2d9239359db7ba8d23761ca18cef9455f812f111.tar.gz
v8: upgrade to v3.11.10.19
-rw-r--r--deps/v8/build/common.gypi11
-rw-r--r--deps/v8/src/code-stubs.cc12
-rw-r--r--deps/v8/src/heap.h3
-rw-r--r--deps/v8/src/version.cc2
-rw-r--r--deps/v8/test/mjsunit/regress/regress-2291.js36
-rw-r--r--deps/v8/tools/gyp/v8.gyp3
6 files changed, 57 insertions, 10 deletions
diff --git a/deps/v8/build/common.gypi b/deps/v8/build/common.gypi
index 1609197876..7f084b8c1d 100644
--- a/deps/v8/build/common.gypi
+++ b/deps/v8/build/common.gypi
@@ -239,6 +239,7 @@
'WIN32',
],
'msvs_configuration_attributes': {
+ 'OutputDirectory': '<(DEPTH)\\build\\$(ConfigurationName)',
'IntermediateDirectory': '$(OutDir)\\obj\\$(ProjectName)',
'CharacterSet': '1',
},
@@ -270,7 +271,7 @@
'target_conditions': [
['_toolset=="host"', {
'variables': {
- 'm32flag': '<!((echo | $(echo ${CXX_host:-$(which g++)}) -m32 -E - > /dev/null 2>&1) && echo "-m32" || true)',
+ 'm32flag': '<!((echo | $(echo ${CXX_host:-$(which g++)}) -m32 -E - > /dev/null 2>&1) && echo -n "-m32" || true)',
},
'cflags': [ '<(m32flag)' ],
'ldflags': [ '<(m32flag)' ],
@@ -280,7 +281,7 @@
}],
['_toolset=="target"', {
'variables': {
- 'm32flag': '<!((echo | $(echo ${CXX_target:-${CXX:-$(which g++)}}) -m32 -E - > /dev/null 2>&1) && echo "-m32" || true)',
+ 'm32flag': '<!((echo | $(echo ${CXX_target:-${CXX:-$(which g++)}}) -m32 -E - > /dev/null 2>&1) && echo -n "-m32" || true)',
},
'cflags': [ '<(m32flag)' ],
'ldflags': [ '<(m32flag)' ],
@@ -323,7 +324,7 @@
},
'conditions': [
['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd"', {
- 'cflags': [ '-Wno-unused-parameter',
+ 'cflags': [ '-Wall', '<(werror)', '-W', '-Wno-unused-parameter',
'-Wnon-virtual-dtor', '-Woverloaded-virtual' ],
}],
],
@@ -332,6 +333,10 @@
'conditions': [
['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd" \
or OS=="android"', {
+ 'cflags!': [
+ '-O2',
+ '-Os',
+ ],
'cflags': [
'-fdata-sections',
'-ffunction-sections',
diff --git a/deps/v8/src/code-stubs.cc b/deps/v8/src/code-stubs.cc
index 8f316606c2..7d4f23ce94 100644
--- a/deps/v8/src/code-stubs.cc
+++ b/deps/v8/src/code-stubs.cc
@@ -172,7 +172,9 @@ void ICCompareStub::AddToSpecialCache(Handle<Code> new_object) {
Isolate* isolate = new_object->GetIsolate();
Factory* factory = isolate->factory();
return Map::UpdateCodeCache(known_map_,
- factory->compare_ic_symbol(),
+ strict() ?
+ factory->strict_compare_ic_symbol() :
+ factory->compare_ic_symbol(),
new_object);
}
@@ -183,10 +185,16 @@ bool ICCompareStub::FindCodeInSpecialCache(Code** code_out) {
Code::Flags flags = Code::ComputeFlags(
static_cast<Code::Kind>(GetCodeKind()),
UNINITIALIZED);
+ ASSERT(op_ == Token::EQ || op_ == Token::EQ_STRICT);
Handle<Object> probe(
- known_map_->FindInCodeCache(*factory->compare_ic_symbol(), flags));
+ known_map_->FindInCodeCache(
+ strict() ?
+ *factory->strict_compare_ic_symbol() :
+ *factory->compare_ic_symbol(),
+ flags));
if (probe->IsCode()) {
*code_out = Code::cast(*probe);
+ ASSERT(op_ == (*code_out)->compare_operation());
return true;
}
return false;
diff --git a/deps/v8/src/heap.h b/deps/v8/src/heap.h
index dd1f710b25..f80f2a7804 100644
--- a/deps/v8/src/heap.h
+++ b/deps/v8/src/heap.h
@@ -240,7 +240,8 @@ namespace internal {
V(use_strict, "use strict") \
V(dot_symbol, ".") \
V(anonymous_function_symbol, "(anonymous function)") \
- V(compare_ic_symbol, ".compare_ic") \
+ V(compare_ic_symbol, "==") \
+ V(strict_compare_ic_symbol, "===") \
V(infinity_symbol, "Infinity") \
V(minus_infinity_symbol, "-Infinity") \
V(hidden_stack_trace_symbol, "v8::hidden_stack_trace") \
diff --git a/deps/v8/src/version.cc b/deps/v8/src/version.cc
index f6afc47cca..2da80cc678 100644
--- a/deps/v8/src/version.cc
+++ b/deps/v8/src/version.cc
@@ -35,7 +35,7 @@
#define MAJOR_VERSION 3
#define MINOR_VERSION 11
#define BUILD_NUMBER 10
-#define PATCH_LEVEL 18
+#define PATCH_LEVEL 19
// 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-2291.js b/deps/v8/test/mjsunit/regress/regress-2291.js
new file mode 100644
index 0000000000..96627fc6f0
--- /dev/null
+++ b/deps/v8/test/mjsunit/regress/regress-2291.js
@@ -0,0 +1,36 @@
+// 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.
+
+function StrictCompare(x) { return x === Object(x); }
+
+var obj = new Object();
+var obj2 = new Object();
+obj == obj; // Populate IC cache with non-strict comparison.
+
+StrictCompare(obj); // Set IC in StrictCompare from IC cache.
+
+assertFalse(StrictCompare('foo')); // Use == stub for === operation.
diff --git a/deps/v8/tools/gyp/v8.gyp b/deps/v8/tools/gyp/v8.gyp
index f742cc6f3c..ea82d31814 100644
--- a/deps/v8/tools/gyp/v8.gyp
+++ b/deps/v8/tools/gyp/v8.gyp
@@ -721,9 +721,6 @@
'../../src/win32-math.h',
],
'msvs_disabled_warnings': [4351, 4355, 4800],
- 'direct_dependent_settings': {
- 'msvs_disabled_warnings': [4351, 4355, 4800],
- },
'link_settings': {
'libraries': [ '-lwinmm.lib', '-lws2_32.lib' ],
},