Fixed building on Mac OS X by recognizing i386 and friends as IA-32 platforms.
Added propagation of stack overflow exceptions that occur while compiling nested functions.
Improved debugger with support for recursive break points and handling of exceptions that occur in the debugger JavaScript code.
Renamed GetInternal to GetInternalField and SetInternal to SetInternalField in the API and moved InternalFieldCount and SetInternalFieldCount from FunctionTemplate to ObjectTemplate.
git-svn-id: http://v8.googlecode.com/svn/trunk@5 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
diff --git a/src/codegen-arm.cc b/src/codegen-arm.cc
index 25f165f..ac870fb 100644
--- a/src/codegen-arm.cc
+++ b/src/codegen-arm.cc
@@ -346,7 +346,7 @@
ArmCodeGenerator cgen(initial_buffer_size, script, is_eval);
cgen.GenCode(flit);
if (cgen.HasStackOverflow()) {
- Top::StackOverflow();
+ ASSERT(!Top::has_pending_exception());
return Handle<Code>::null();
}
@@ -546,6 +546,9 @@
} else {
Comment cmnt(masm_, "[ declarations");
ProcessDeclarations(scope->declarations());
+ // Bail out if a stack-overflow exception occured when
+ // processing declarations.
+ if (HasStackOverflow()) return;
}
if (FLAG_trace) __ CallRuntime(Runtime::kTraceEnter, 1);
@@ -2903,6 +2906,8 @@
// Build the function boilerplate and instantiate it.
Handle<JSFunction> boilerplate = BuildBoilerplate(node);
+ // Check for stack-overflow exception.
+ if (HasStackOverflow()) return;
InstantiateBoilerplate(boilerplate);
}