Reviewers: Mads Ager, Vitaly Repeshko,

Message:
Guys,

may you have a look?

It is rebaselined version of http://code.google.com/p/v8/source/detail?r=7258
modulo two changes:

1) do not recurse in MessageHandler::ReportMessage (implemented with static
in_progress guard): that solves the principal reason for rollback---we exhausted
stack on many platforms (alas, ia32 Linux was almost fine---we hit
stack-overflow check which allowed to properly unroll ReportMessage chain;

2) external_caught_exception_ is removed from ExceptionScope---we actually
always recalculate it before usage AFAIK; I'll clean it up when this CL stays
for some time in Chromium.

Description:
Make exception thrown via v8 public API propagate to v8::TryCatch as JS thrown
exceptions do.

Correctly process failures which can be returned by Object::GetProperty
when performing GetRealNamedProperty* queries.

Callback properties can produce exceptions so we need to wrap access to them
into exception checks. However, despite of many other methods with exception
checks, property access doesn't mandatroy go via JavaScript and hence we
need to inject code to propagate exception to public API TryCatch handlers.


Please review this at http://codereview.chromium.org/6685087/

SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge

Affected files:
  M src/api.cc
  M src/handles.h
  M src/handles.cc
  M src/messages.cc
  M src/top.h
  M src/top.cc
  M test/cctest/test-api.cc


--
v8-dev mailing list
v8-dev@googlegroups.com
http://groups.google.com/group/v8-dev

Reply via email to