summaryrefslogtreecommitdiff
path: root/deps/v8/src/interface.cc
diff options
context:
space:
mode:
authorisaacs <i@izs.me>2012-09-18 15:20:38 -0700
committerBert Belder <bertbelder@gmail.com>2012-09-21 01:52:24 +0200
commit3411a03dd114d635800cc50749d2351cd734eb2a (patch)
tree0ba1e52ab2236286894b33400302181ece91b63a /deps/v8/src/interface.cc
parentcc1b09d6b7c3cc6b8729804cbf644634ba5d0815 (diff)
downloadnode-new-3411a03dd114d635800cc50749d2351cd734eb2a.tar.gz
V8: Upgrade to 3.13.7.1
Diffstat (limited to 'deps/v8/src/interface.cc')
-rw-r--r--deps/v8/src/interface.cc14
1 files changed, 12 insertions, 2 deletions
diff --git a/deps/v8/src/interface.cc b/deps/v8/src/interface.cc
index 86bb9d0bf4..336be82c60 100644
--- a/deps/v8/src/interface.cc
+++ b/deps/v8/src/interface.cc
@@ -124,8 +124,16 @@ void Interface::Unify(Interface* that, Zone* zone, bool* ok) {
*ok = true;
if (this == that) return;
- if (this->IsValue()) return that->MakeValue(ok);
- if (that->IsValue()) return this->MakeValue(ok);
+ if (this->IsValue()) {
+ that->MakeValue(ok);
+ if (*ok && this->IsConst()) that->MakeConst(ok);
+ return;
+ }
+ if (that->IsValue()) {
+ this->MakeValue(ok);
+ if (*ok && that->IsConst()) this->MakeConst(ok);
+ return;
+ }
#ifdef DEBUG
if (FLAG_print_interface_details) {
@@ -214,6 +222,8 @@ void Interface::Print(int n) {
if (IsUnknown()) {
PrintF("unknown\n");
+ } else if (IsConst()) {
+ PrintF("const\n");
} else if (IsValue()) {
PrintF("value\n");
} else if (IsModule()) {