Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(262)

Issue 43070: Fix exception propagation problem where undefined was returned instead... (Closed)

Created:
11 years, 9 months ago by Mads Ager (chromium)
Modified:
9 years, 7 months ago
CC:
v8-dev
Visibility:
Public.

Description

Fix exception propagation problem where undefined was returned instead of an empty handle in case of an exception. This problem can break C++ programs that are not interested in catching exceptions and just want to propagate them out by testing for empty handles. The issue is that exceptions are not rescheduled if they are externally caught. Externally caught exceptions have to be rescheduled if there is a JavaScript frame on the way to the C++ frame that holds the external handler. Committed: http://code.google.com/p/v8/source/detail?r=1487

Patch Set 1 #

Total comments: 2
Unified diffs Side-by-side diffs Delta from patch set Stats (+40 lines, -15 lines) Patch
M src/top.h View 1 chunk +6 lines, -4 lines 2 comments Download
M src/top.cc View 1 chunk +29 lines, -9 lines 0 comments Download
M test/cctest/test-api.cc View 3 chunks +5 lines, -2 lines 0 comments Download

Messages

Total messages: 4 (0 generated)
Mads Ager (chromium)
11 years, 9 months ago (2009-03-11 10:29:26 UTC) #1
Søren Thygesen Gjesse
LGTM Maybe extend the ExceptionOrder test in test-api, as it should have caught this. http://codereview.chromium.org/43070/diff/1/4 ...
11 years, 9 months ago (2009-03-11 10:44:18 UTC) #2
Christian Plesner Hansen
Lgtm
11 years, 9 months ago (2009-03-11 10:53:35 UTC) #3
Mads Ager (chromium)
11 years, 9 months ago (2009-03-11 11:09:52 UTC) #4
http://codereview.chromium.org/43070/diff/1/4
File src/top.h (right):

http://codereview.chromium.org/43070/diff/1/4#newcode161
Line 161: if (!thread_local_.external_caught_exception_) {
The external_caught_exception flag has to be sticky while propagating the
exception out.  It will be explicitly cleared when it is OK to do so.

Powered by Google App Engine
This is Rietveld 408576698