Version 3.12.17

Always set the callee's context when calling a function from optimized code. (Chromium issue 138887)

Fixed building with GCC 3.x (issue 2016, 2017)

Improved API calls that return empty handles. (issue 2245)

Performance and stability improvements on all platforms.

git-svn-id: http://v8.googlecode.com/svn/trunk@12207 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
diff --git a/src/objects-inl.h b/src/objects-inl.h
index f4e0767..e47b44b 100644
--- a/src/objects-inl.h
+++ b/src/objects-inl.h
@@ -3523,7 +3523,7 @@
     }
   }
 
-  ASSERT(len == 0 ||
+  ASSERT((len == 0 && LastAdded() == kNoneAdded) ||
          len == descriptors->GetDetails(LastAdded()).index());
 }
 
@@ -3582,6 +3582,14 @@
 }
 
 
+bool Map::CanHaveMoreTransitions() {
+  if (!HasTransitionArray()) return true;
+  return FixedArray::SizeFor(transitions()->length() +
+                             TransitionArray::kTransitionSize)
+      <= Page::kMaxNonCodeHeapObjectSize;
+}
+
+
 MaybeObject* Map::AddTransition(String* key, Map* target) {
   if (HasTransitionArray()) return transitions()->CopyInsert(key, target);
   return TransitionArray::NewWith(key, target);