v8/test/mjsunit/regress/wasm/regress-1180690.js
Thibaud Michaud 55fe15dc17 [wasm] Fix thread_in_wasm_flag in exception handling
The flag should not be set after an exception is thrown in a runtime
function. The unwinder still runs after the destructor, and should take
care of setting the flag depending on the catching frame.

R=ahaas@chromium.org,jkummerow@chromium.org

Bug: chromium:1180690
Change-Id: I0013c90f759a5145309f6e08d61ed36aeecbac63
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2713103
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72972}
2021-02-23 17:43:33 +00:00

30 lines
843 B
JavaScript

// Copyright 2021 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: --wasm-test-streaming --wasm-lazy-compilation --wasm-lazy-validation
load('test/mjsunit/wasm/wasm-module-builder.js');
(function f1() {
const builder = new WasmModuleBuilder();
builder.addMemory(1, 1);
builder.addFunction('main', kSig_i_i).addBody([
kExprLocalGet, 0,
kExprI32LoadMem, 0, 0
]).exportFunc();
const instance = builder.instantiate();
instance.exports.main();
})();
(function f2() {
const builder = new WasmModuleBuilder();
builder.addFunction('id', kSig_i_i).addBody([]).exportFunc();
const buffer = builder.toBuffer();
const instance = builder.instantiate();
try {
instance.exports.id();
} catch {}
})();