Merged r12434, r12435, r12440, r12441, r12443, r12444, r12445, r12446 into trunk branch.

Support register as right operand in min/max support.

Fixed test expectation.

Add build system infrastructure for ENABLE_EXTRA_CHECKS flag (not used yet)

Fix missing colon in common.gypi

Push stacktrace and die if the receiver is of unknown type.

Disable accessor inlining (due to broken deopts)

Add empty-handle checks to API functions (#ifdef ENABLE_EXTRA_CHECKS)

Check the return value of API calls on ia32 and x64.

R=yangguo@chromium.org

Review URL: https://chromiumcodereview.appspot.com/10910093

git-svn-id: http://v8.googlecode.com/svn/trunk@12448 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
diff --git a/src/isolate.cc b/src/isolate.cc
index 7d31029..75e15a4 100644
--- a/src/isolate.cc
+++ b/src/isolate.cc
@@ -535,6 +535,24 @@
 }
 
 
+void Isolate::PushStackTraceAndDie(unsigned int magic,
+                                   Object* object,
+                                   Map* map,
+                                   unsigned int magic2) {
+  const int kMaxStackTraceSize = 8192;
+  Handle<String> trace = StackTraceString();
+  char buffer[kMaxStackTraceSize];
+  int length = Min(kMaxStackTraceSize - 1, trace->length());
+  String::WriteToFlat(*trace, buffer, 0, length);
+  buffer[length] = '\0';
+  OS::PrintError("Stacktrace (%x-%x) %p %p: %s\n",
+                 magic, magic2,
+                 static_cast<void*>(object), static_cast<void*>(map),
+                 buffer);
+  OS::Abort();
+}
+
+
 void Isolate::CaptureAndSetCurrentStackTraceFor(Handle<JSObject> error_object) {
   if (capture_stack_trace_for_uncaught_exceptions_) {
     // Capture stack trace for a detailed exception message.