Skip to content

Commit cbcecc2

Browse files
sigurdschneiderCommit Bot
authored andcommitted
[test] Add a simple repro for the referenced bug
Bug: v8:7659 Change-Id: Ib4a44eef02398482a969084f5004d6096e1fd979 Reviewed-on: https://chromium-review.googlesource.com/1017100 Reviewed-by: Georg Neis <[email protected]> Reviewed-by: Yang Guo <[email protected]> Commit-Queue: Sigurd Schneider <[email protected]> Cr-Commit-Position: refs/heads/master@{#52675}
1 parent 9a9fdbf commit cbcecc2

1 file changed

Lines changed: 29 additions & 0 deletions

File tree

test/cctest/test-api.cc

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17786,6 +17786,35 @@ TEST(PromiseRejectCallback) {
1778617786
CHECK_EQ(7, promise_reject_msg_column_number);
1778717787
}
1778817788

17789+
void PromiseRejectCallbackConstructError(
17790+
v8::PromiseRejectMessage reject_message) {
17791+
v8::Local<v8::Context> context = CcTest::isolate()->GetCurrentContext();
17792+
CHECK_EQ(v8::Promise::PromiseState::kRejected,
17793+
reject_message.GetPromise()->State());
17794+
USE(v8::Script::Compile(context, v8_str("new Error('test')"))
17795+
.ToLocalChecked()
17796+
->Run(context));
17797+
}
17798+
17799+
TEST(PromiseRejectCallbackConstructError) {
17800+
i::FLAG_allow_natives_syntax = true;
17801+
LocalContext env;
17802+
v8::Isolate* isolate = env->GetIsolate();
17803+
v8::HandleScope scope(isolate);
17804+
17805+
isolate->SetPromiseRejectCallback(PromiseRejectCallbackConstructError);
17806+
17807+
ResetPromiseStates();
17808+
CompileRun(
17809+
"function f(p) {"
17810+
" p.catch(() => {});"
17811+
"}"
17812+
"f(Promise.reject());"
17813+
"f(Promise.reject());"
17814+
"%OptimizeFunctionOnNextCall(f);"
17815+
"let p = Promise.reject();"
17816+
"f(p);");
17817+
}
1778917818

1779017819
void AnalyzeStackOfEvalWithSourceURL(
1779117820
const v8::FunctionCallbackInfo<v8::Value>& args) {

0 commit comments

Comments
 (0)