diff --git a/tests/checked/CMakeLists.txt b/tests/checked/CMakeLists.txt index 73ab5a00d605ad274f455daec90e8cd09adf4400..63f9e3c5dbfafaedb1fbd4c941302a310670ace1 100644 --- a/tests/checked/CMakeLists.txt +++ b/tests/checked/CMakeLists.txt @@ -95,4 +95,8 @@ if (NOT PANDA_TARGET_ARM32) if (PANDA_ENABLE_BYTECODE_PROFILING) panda_add_checked_test_ecma(FILE ${CMAKE_CURRENT_SOURCE_DIR}/ecma_profiling.js SUPPORT_RELEASE true) endif() + # there is flaky bug when turning on TSAN + if (NOT PANDA_ENABLE_THREAD_SANITIZER) + panda_add_checked_test_ecma(FILE ${CMAKE_CURRENT_SOURCE_DIR}/acc_after_deopt.js SUPPORT_RELEASE true) + endif() endif() diff --git a/tests/checked/acc_after_deopt.js b/tests/checked/acc_after_deopt.js new file mode 100644 index 0000000000000000000000000000000000000000..5e8d898210565c33f21644173ad8e3877cf185b5 --- /dev/null +++ b/tests/checked/acc_after_deopt.js @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2021-2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +//! CHECKER Test accumulator value after deoptimization +//! RUN options: "--interpreter-type=irtoc --compiler-profiling-threshold=100001 --compiler-regex='_GLOBAL::test_acc'", entry: "_GLOBAL::func_main_0" + +//! EVENT /Compilation,_GLOBAL::test_acc +//! EVENT /Deoptimization,_GLOBAL::func_test_acc_1 + +function test_acc() { + var a = new Number(42); + if (a != 42) { + throw "invalid value: " + a + } +} + +for (var i = 0; i < 100000; ++i) { + test_acc() +}