From 9be937e6edaebfa26aa524d90d56841c163d25b4 Mon Sep 17 00:00:00 2001 From: "palfia@homejinni.com" Date: Mon, 11 Mar 2013 13:30:39 +0000 Subject: [PATCH] MIPS: fix NaN handling of Isolate::StackOverflow() The mjsunit/stack-traces-overflow.js test fails on MIPS target as Error.stackTraceLimit = NaN; should disable stack trace messages and Isolate::StackOverflow() assumes static_cast(double NaN) < 0. MIPS has a different NaN representation than other architectures so the NaN value casted to int is positive. This patch adds an isnan() check to make the handling of NaN uniform on all architectures. BUG= Review URL: https://codereview.chromium.org/12600003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13900 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/isolate.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/isolate.cc b/src/isolate.cc index f56f99b..5f7b3f2 100644 --- a/src/isolate.cc +++ b/src/isolate.cc @@ -1042,7 +1042,8 @@ Failure* Isolate::StackOverflow() { Handle stack_trace_limit = GetProperty(Handle::cast(error), "stackTraceLimit"); if (!stack_trace_limit->IsNumber()) return Failure::Exception(); - int limit = static_cast(stack_trace_limit->Number()); + double dlimit = stack_trace_limit->Number(); + int limit = isnan(dlimit) ? 0 : static_cast(dlimit); Handle stack_trace = CaptureSimpleStackTrace( exception, factory()->undefined_value(), limit); -- 2.7.4