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.