Index: src/compiler.cc |
=================================================================== |
--- src/compiler.cc (revision 915) |
+++ src/compiler.cc (working copy) |
@@ -74,6 +74,11 @@ |
// Generate code and return it. |
Handle<Code> result = CodeGenerator::MakeCode(literal, script, is_eval); |
+ // Check for stack-overflow exception. |
+ if (result.is_null()) { |
+ Top::StackOverflow(); |
+ Top::ReportPendingMessages(); |
+ } |
return result; |
} |
@@ -101,6 +106,7 @@ |
// Check for parse errors. |
if (lit == NULL) { |
ASSERT(Top::has_pending_exception()); |
+ Top::ReportPendingMessages(); |
return Handle<JSFunction>::null(); |
} |
@@ -117,7 +123,6 @@ |
// Check for stack-overflow exceptions. |
if (code.is_null()) { |
- Top::StackOverflow(); |
return Handle<JSFunction>::null(); |
} |
@@ -206,6 +211,8 @@ |
} |
} |
+ if (result.is_null()) Top::ReportPendingMessages(); |
+ |
return result; |
} |
@@ -235,6 +242,9 @@ |
CompilationCache::PutFunction(source, entry, result); |
} |
} |
+ |
+ if (result.is_null()) Top::ReportPendingMessages(); |
+ |
return result; |
} |
@@ -269,6 +279,7 @@ |
// Check for parse errors. |
if (lit == NULL) { |
ASSERT(Top::has_pending_exception()); |
+ Top::ReportPendingMessages(); |
return false; |
} |
@@ -283,9 +294,7 @@ |
// Compile the code. |
Handle<Code> code = MakeCode(lit, script, false); |
- // Check for stack-overflow exception. |
if (code.is_null()) { |
- Top::StackOverflow(); |
return false; |
} |