6d0a420298
This is in preparation to implementing exception prediction for async functions. Each handler table entry can now predict "caught", "uncaught", or "promise". The latter indicates that the exception will lead to a promise rejection. To mark the relevant try-catch blocks, we add a new native syntax. try { } %catch (e) { } indicates a TryCatchStatement with the "promise" prediction. The previous implementation of using the function to tell the relevant try-catch apart from inner try-catch blocks will not work for async functions since these can have inner try-catch blocks inside the same function. BUG=v8:5167 Review-Url: https://codereview.chromium.org/2161263003 Cr-Commit-Position: refs/heads/master@{#37966}
21 lines
459 B
JavaScript
21 lines
459 B
JavaScript
// Copyright 2014 the V8 project authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
// Flags: --allow-natives-syntax --expose-debug-as debug
|
|
|
|
Debug = debug.Debug;
|
|
Debug.setListener(function() {});
|
|
Debug.setBreakOnException();
|
|
|
|
try {
|
|
try {
|
|
%DebugPushPromise(new Promise(function() {}));
|
|
} catch (e) {
|
|
}
|
|
throw new Error();
|
|
} catch (e) {
|
|
}
|
|
|
|
Debug.setListener(null);
|