From 78e3d88bd99386f73b7586da3c06879d3ff1ccd4 Mon Sep 17 00:00:00 2001 From: Zidong Jiang Date: Tue, 5 Sep 2017 12:22:15 +0800 Subject: [PATCH] [unix-main] call jerry_run_all_enqueued_jobs before cleanup Related Issue: #1995 JerryScript-DCO-1.0-Signed-off-by: Zidong Jiang zidong.jiang@intel.com --- jerry-main/main-unix.c | 18 ++++++------- .../es2015/regression-test-issue-1995.js | 26 +++++++++++++++++++ 2 files changed, 35 insertions(+), 9 deletions(-) create mode 100644 tests/jerry/es2015/regression-test-issue-1995.js diff --git a/jerry-main/main-unix.c b/jerry-main/main-unix.c index 5613a3f14..42e98db81 100644 --- a/jerry-main/main-unix.c +++ b/jerry-main/main-unix.c @@ -817,17 +817,17 @@ main (int argc, ret_code = JERRY_STANDALONE_EXIT_CODE_FAIL; } - else - { - jerry_release_value (ret_value); - ret_value = jerry_run_all_enqueued_jobs (); - if (jerry_value_has_error_flag (ret_value)) - { - print_unhandled_exception (ret_value); - ret_code = JERRY_STANDALONE_EXIT_CODE_FAIL; - } + jerry_release_value (ret_value); + + ret_value = jerry_run_all_enqueued_jobs (); + + if (jerry_value_has_error_flag (ret_value)) + { + print_unhandled_exception (ret_value); + ret_code = JERRY_STANDALONE_EXIT_CODE_FAIL; } + jerry_release_value (ret_value); if (start_debug_server) diff --git a/tests/jerry/es2015/regression-test-issue-1995.js b/tests/jerry/es2015/regression-test-issue-1995.js new file mode 100644 index 000000000..88b5ff905 --- /dev/null +++ b/tests/jerry/es2015/regression-test-issue-1995.js @@ -0,0 +1,26 @@ +// Copyright JS Foundation and other contributors, http://js.foundation +// +// 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. + +var name = ""; + +try +{ + Promise.race([""]).$() +} +catch (e) +{ + name = e.name; +} + +assert(name === "TypeError");